<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.3.3">Jekyll</generator><link href="https://www.unixtutorial.ru/atom.xml" rel="self" type="application/atom+xml" /><link href="https://www.unixtutorial.ru/" rel="alternate" type="text/html" /><updated>2025-11-09T12:22:56+00:00</updated><id>https://www.unixtutorial.ru/atom.xml</id><title type="html">Unix Tutorial по-русски</title><subtitle>Советы по Unix/Linux для новичков и не только</subtitle><entry><title type="html">Linux Mint как OS для десктопа</title><link href="https://www.unixtutorial.ru/linux-mint-as-desktop-os/" rel="alternate" type="text/html" title="Linux Mint как OS для десктопа" /><published>2022-09-19T08:45:00+00:00</published><updated>2022-09-19T08:45:00+00:00</updated><id>https://www.unixtutorial.ru/linux-mint-as-desktop-os</id><content type="html" xml:base="https://www.unixtutorial.ru/linux-mint-as-desktop-os/"><![CDATA[<p><img src="/images/software/linux-mint.png" alt="Linux Mint" />
<em>Linux Mint</em></p>

<p>Решил таки перевести мою мартовкую заметку с основого блога.</p>

<p>Я задался идеей использовать Linux Mint 20.3 как оснвное окружение для домашнего пользования.</p>

<p>Не уврен, что Mint полностью заменит мне десктоп macOS (которого у меня теперь временно нету), но вообще-то я приятно удивлён тому, как Линукс десктоп и доступный софт хорошо продвинулись за прошлые пару лет.</p>

<p>Если успею, то сделаю этот десктоп темой для очередного проекта в рамках <a href="/projects">Unix Tutorial projects</a>.</p>

<h2 id="улучшения-в-linux-mint">Улучшения в Linux Mint</h2>
<ul>
  <li><strong>Поддержка уровня батареи в Bluetooth устройствах</strong> - стандартный виджет Bluetooh теперь показывает уровни заряда батарей в моих мышке и клавиатуре от Logitech. Замечательно!</li>
  <li><strong>Режим HiDPI</strong> - наконец-то появилась нормальная поддержка разрешения 4K - правильное масштабирование, большинство приложений корректно отображают интерфейс (раньше были мелкие и почти не читаемые шрифты в некоторых приложениях). Я больше не пользуюсь монитором LG 5K на домашнем компе, поэтому проверить поддержку 5K не получилось.</li>
  <li><strong>Аудио-видео драйверы и кодеки</strong> - прям отлично, что даже сравнительно свежий чипсет Z390 на моей материнке поддерживается и большинство устройств просто работают без дополнительных настроек!</li>
</ul>

<h2 id="улучшения-в-приложениях-доступных-в-linux">Улучшения в приложениях, доступных в Linux</h2>

<ul>
  <li><strong>Telegram</strong> - за прошлый год приложение хорошо развилось - прям нативное теперь в Линукс десктопе</li>
  <li><strong>Sublime Text 4</strong> - редактор тоже улучшился, теперь больше нету никаких глюков с GUI</li>
</ul>

<h1 id="вещи-на-которые-я-и-не-надеялся">Вещи, На Которые я и не Надеялся</h1>

<p>Оказывается, пара приложений из моего постоянного списка на [[macoOS]] теперь и в Линуксе имеются:</p>
<ul>
  <li><strong>1Password</strong> - наконец-то появилось нормальное приложение, а не расширение для браузеров - стало реально удобно работать</li>
  <li><strong>ProtonVPN</strong> - у меня на всех устройствах практически постоянно активирован этот клиент, но раьнше в Линуксах приходилось извращаться с настройкой OpenVPN под каждого конкрнтного VPN провайдера. А теперь есть замечательное приложение от ProtonVPN, так что отслеживание статуса коннекта и переключение профилей стало намного проще</li>
</ul>

<h2 id="ссылки">Ссылки</h2>
<ul>
  <li><a href="/software/ubuntu">Ubuntu Releases</a></li>
  <li><a href="/ubuntu-21-04-hirsute-hippo">Ubuntu 21.04 - Hirsute Hippo</a></li>
</ul>]]></content><author><name></name></author><category term="news,linux-mint" /><summary type="html"><![CDATA[Linux Mint]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.unixtutorial.ru/images/software/linux-mint.png" /><media:content medium="image" url="https://www.unixtutorial.ru/images/software/linux-mint.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">rsync over SSH</title><link href="https://www.unixtutorial.ru/rsync-over-ssh/" rel="alternate" type="text/html" title="rsync over SSH" /><published>2021-07-08T07:45:00+00:00</published><updated>2021-07-08T07:45:00+00:00</updated><id>https://www.unixtutorial.ru/rsync-over-ssh</id><content type="html" xml:base="https://www.unixtutorial.ru/rsync-over-ssh/"><![CDATA[<p><img src="/images/posts/rsync-over-ssh.png" alt="rsync over ssh" />
<em>rsync over SSH</em></p>

<p>Я тут недавно мигрировал старые заметки по <strong>rsync</strong> на основном сайте <a href="https://www.unixtutorial.org">Unix Tutorial</a>, и вспомнил: вот про копирование <strong>rsync</strong> с помощью ssh я так ещё и не рассказывал.</p>

<p>Изначально <strong>rsync</strong> был создан для синхронизации локальных каталогов, потом его расширили для работы с внешними устройствами и файловыми системами, потом добавили поддержку сетевых устройств и в конце концов реализовали собственный протокол синхронизации с удалёнными серверами (который так и назывался: <strong>rsync</strong> protocol).</p>

<h2 id="зачем-нужна-синхронизация-rsync-через-ssh">Зачем Нужна Синхронизация rsync Через SSH</h2>

<p>Подавляющее большинство современных Linux систем поддерживают протокол удалённого доступа SSH. И все более-менее современные реализации поддерживают <strong>rsync</strong> через SSH, ведь это даёт вам лучшее из двух миров: можно сихнронизировать удалённые сервера И ПРИ ЭТОМ передача данных будет надёжно защищена стандартными методами SSH.</p>

<p>В дополнение ко всему этому, использование транспорта SSH для <strong>rsync</strong> даёт ещё два преимущества по сравнению с протоколом <strong>rsync</strong>:</p>

<ol>
  <li>На удалённом сервере не нужно запускать никаких демонов rsyncd</li>
  <li>Как следствие из предыдущего пункта, открывать дополнительный порт на файрволах тоже не придётся (речь о порте 873/tcp дя rsyncd) - потому что можно обойтись стандартным портом <a href="https://www.unixtutorial.orga/ssh-port/">SSH port 22</a>.</li>
</ol>

<h2 id="как-работать-с-rsync-через-ssh">Как Работать с rsync через SSH</h2>

<p>В большинстве случаев, никаких дополнительных движений и опций не нужно - <strong>rsync</strong> сам всё сообразит. Но если уж очень важно, то стоит указать ssh транспорт с помощью опции -e:</p>

<figure class="highlight"><pre><code class="language-console" data-lang="console"><span class="go">rsync -avhz -e ssh newscripts becky:/home/greys/scripts</span></code></pre></figure>

<p>В этой командной строке:</p>

<ul>
  <li><code class="language-plaintext highlighter-rouge">newscripts</code> имя локльного каталога, который я хочу скопировать</li>
  <li><code class="language-plaintext highlighter-rouge">becky</code> это удалённый сервер - одна из моих систем на базе Raspberry Pi</li>
  <li><code class="language-plaintext highlighter-rouge">/home/greys/scripts</code> это название удалённого каталога на сервере <strong>becky</strong></li>
</ul>

<p>Поведение <strong>rsync</strong> в данной ситуации будет такого: полная копия содержимого локального каталога newscripts окажется в каталоге /home/greys/scripts на удалённой системе <strong>becky</strong>.</p>

<p>Ну, давайте запустим:</p>

<figure class="highlight"><pre><code class="language-console" data-lang="console"><span class="gp">$</span><span class="w"> </span>rsync <span class="nt">-avhz</span> <span class="nt">-e</span> ssh newscripts becky:/home/greys/scripts
<span class="go">sending incremental file list
created directory /home/greys/scripts
newscripts/
newscripts/automount.sh
newscripts/backups.sh
newscripts/jkl.sh
newscripts/mtime-capto.sh
newscripts/mtime-capto2.sh
newscripts/mtime-screenshot.sh
newscripts/mtime-voila.sh
newscripts/mtime.sh
newscripts/plex-mpv.sh

sent 3.75K bytes received 233 bytes 1.14K bytes/sec
total size is 7.44K speedup is 1.87</span></code></pre></figure>

<h2 id="основная-польза-от-rsync">Основная Польза от RSync</h2>

<p>Естетсвенно, основная польза - это синхронизация двух указанных катлогов с файлами. Если я изменю какие-то файлы у меня в местном каталоге newscripts, мне не придётся копировать заново всю папку на удалённый сервер - rsync сверит файлы по имени, размеру и содержимому - и скопирует только то, что действительно нужно обновить на удалённой системе.</p>

<p>Мой каталог newscripts содержит следующие файлы:</p>

<figure class="highlight"><pre><code class="language-console" data-lang="console"><span class="gp">$</span><span class="w"> </span><span class="nb">ls</span> <span class="nt">-al</span> newscripts
<span class="go">total 72
drwxr-xr-x 11 greys staff 352 9 Jul 20:07 .
drwxr-xr-x+ 97 greys staff 3104 9 Jul 20:25 ..
-rwxr-xr-x 1 greys staff 1348 9 Jul 20:07 automount.sh
-rwxr-xr-x 1 greys staff 2153 9 Jul 20:07 backups.sh
-rwxr-xr-x 1 greys staff 283 9 Jul 20:07 jkl.sh
-rwxr-xr-x 1 greys staff 634 9 Jul 20:07 mtime-capto.sh
-rwxr-xr-x 1 greys staff 641 9 Jul 20:07 mtime-capto2.sh
-rwxr-xr-x 1 greys staff 645 9 Jul 20:07 mtime-screenshot.sh
-rwxr-xr-x 1 greys staff 632 9 Jul 20:07 mtime-voila.sh
-rwxr-xr-x 1 greys staff 583 9 Jul 20:07 mtime.sh
-rwxr-xr-x 1 greys staff 522 9 Jul 20:07 plex-mpv.sh</span></code></pre></figure>

<p>Давайте теперь поменяем пару файлов:</p>

<figure class="highlight"><pre><code class="language-console" data-lang="console"><span class="gp">echo "test" &gt;</span><span class="o">&gt;</span> newscripts/jkl.sh
<span class="gp">echo "test" &gt;</span><span class="o">&gt;</span> newscripts/mtime.sh</code></pre></figure>

<p>И перезапустим <code class="language-plaintext highlighter-rouge">rsync</code>. Как видно, теперь команда спорировала не всё, а только новые файлы:</p>

<figure class="highlight"><pre><code class="language-console" data-lang="console"><span class="gp">$</span><span class="w"> </span>rsync <span class="nt">-avhz</span> <span class="nt">-e</span> ssh newscripts becky:/home/greys/scripts
<span class="go">sending incremental file list
newscripts/jkl.sh
newscripts/mtime.sh

sent 814 bytes received 67 bytes 195.78 bytes/sec
total size is 7.45K speedup is 8.46</span></code></pre></figure>

<p>Надеюсь, это когда-нибудь вам пригодится! До скорого!</p>

<h2 id="ссылки">Ссылки</h2>
<ul>
  <li><a href="https://www.unixtutorial.org">Unix Tutorial</a></li>
  <li><a href="https://www.unixtutorial.org/commands/rsync">rsync command</a></li>
  <li><a href="/commands/">Команды Unix</a></li>
  <li><a href="https://www.unixtutorial.org/basic-unix-commands/">Basic Unix commands</a></li>
  <li><a href="https://www.unixtutorial.orga/ssh-port/">SSH port</a></li>
  <li><a href="https://www.unixtutorial.org/tracking-the-progress-of-rsync-transfers/">Tracking progress of rsync</a></li>
  <li><a href="https://www.unixtutorial.org/how-to-synchronize-directories-with-rsync/">Synchronise Two Directories with rsync</a></li>
</ul>]]></content><author><name></name></author><category term="rsync" /><summary type="html"><![CDATA[rsync over SSH]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.unixtutorial.ru/images/posts/rsync-over-ssh.png" /><media:content medium="image" url="https://www.unixtutorial.ru/images/posts/rsync-over-ssh.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Вышла CentOS 8.4</title><link href="https://www.unixtutorial.ru/centos-8-4-released/" rel="alternate" type="text/html" title="Вышла CentOS 8.4" /><published>2021-06-18T08:45:00+00:00</published><updated>2021-06-18T08:45:00+00:00</updated><id>https://www.unixtutorial.ru/centos-8-4-released</id><content type="html" xml:base="https://www.unixtutorial.ru/centos-8-4-released/"><![CDATA[<p><img src="/images/software/centos-linux.png" alt="CentOS Linux" />
<em>CentOS Linux</em></p>

<p>Выбрал момент отметить факт выхода операционной системы <strong>CentOS 8.4</strong> - эта версия появилась пару недель назад.
Естественно, сначала случился релиз <strong><a href="/software/redhat-linux">RHEL</a> 8.4</strong> - и в этот раз CentOS появилась довольно быстро.</p>

<p>Очень хочу попробовать апдейты <strong>CentOS Stream</strong> 8.4, особенно функционал отката на предыдущие версии пакетов (и операционной системы) чере <strong>dnf downgrade</strong> - но пока похоже на то, что нужно будет начать с более раннего релиза <strong>CentOS Stream</strong>, который нужно будет апгрейднуть и потом откатить обратно.</p>

<p>А вы уже попробовали <strong>CentOS 8.4</strong>? Кто-то ещё использует CentOS, или все уже переключились на <a href="https://almalinux.org/">AlmaLinux</a> и <a href="https://rockylinux.org/">Rocky Linux</a>?</p>

<h2 id="see-also">See Also</h2>

<ul>
  <li><a href="/software/centos">CentOS</a></li>
  <li>5 Способов Узнать Версию CentOS</li>
  <li><a href="/software/redhat-linux">Red Hat Enterprise Linux</a></li>
  <li>RHEL 8</li>
  <li>dnf package manager</li>
  <li><a href="/centos-8-and-centos-stream-released">CentOS 8 and CentOS Stream Released</a></li>
</ul>]]></content><author><name></name></author><category term="centos" /><summary type="html"><![CDATA[CentOS Linux]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.unixtutorial.ru/images/software/centos-linux.png" /><media:content medium="image" url="https://www.unixtutorial.ru/images/software/centos-linux.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Клавиатура Keychron K3</title><link href="https://www.unixtutorial.ru/keychron-k3-keyboard/" rel="alternate" type="text/html" title="Клавиатура Keychron K3" /><published>2021-05-28T10:00:00+00:00</published><updated>2021-05-28T10:00:00+00:00</updated><id>https://www.unixtutorial.ru/keychron-k3-keyboard</id><content type="html" xml:base="https://www.unixtutorial.ru/keychron-k3-keyboard/"><![CDATA[<p><img src="/images/posts/keychron-k3.jpeg" alt="Keychron K3" />
<em>Клавиатура Keychron K3</em></p>

<p>Ура! После изнурительно (20 дней!) долгой доставки, моя новая клавиатура <a href="https://www.unixtutorial.org/keychron-k3/">Keychron K3</a> наконец-то прибыла!</p>

<p><img src="/images/posts/keychron-k3-packaging.jpeg" alt="Keychron K3 в упаковке" /></p>

<p>Последние года три я использовал <strong>Apple Magic Keyboard</strong> и с недавних пор <strong>Logitech MX Keys</strong>, но уже давно хотел попробовать вернуться к механическим клавиатурам - тактильность таки помогает с точностью и скоростью набора текста.</p>

<h2 id="keychron-k3">Keychron K3</h2>

<p>Вот как эта клавиатура выглядит:</p>

<p><img src="/images/posts/keychron-k3-keyboard.jpeg" alt="Клавиатура Keychron K3" /></p>

<p>Я взял себе модель с низко-профильными коричневыми переключателями. Хотел брать красные или голубые переключатели, но не дождался - их нет в продаже и не было все два месяца, что я ждал. По-моему, это был правильный выбор. Очень удобно и приятно печатать, но жуткого треска-шума от кликов каждой клавиши не замечено.</p>

<p>Выбор именно <a href="https://www.unixtutorial.org/keychron-k3/">Keychron K3</a> - не случаен:</p>
<ul>
  <li>очень маленькие размеры - клава не является полноразмерной, поэтому занимает очень мало места на столе</li>
  <li>беспроводное подключение (Bluetooth, естественно) - по-моему это маст-хэв для всех, кроме геймеров</li>
  <li>расположение клавиш (особенно стрелок) - они полного размера и стоят там и так, как и ожидается</li>
  <li>поддержка нескольких устройств macOS/Windows - я планирую довольно часто переключаться между рабочим Windows лаптопом и моим макбуком</li>
</ul>

<h2 id="keychron-k3---первые-впечатления">Keychron K3 - первые впечатления</h2>

<p>Я никогда раньше не пользовался продукцией Keychron, и здесь тоже буквально через 5 минут после распаковки приступил к написанию этой заметки. Ощущения от печати - даже после моей любимой Apple Magic Keyboard - просто фантастические!</p>

<p>Очень доволен покупкой. Привыкну немного, и через пару недель попробую тесты на набор текста - очень интересно, насколько быстрее получится печатать на такой клавиатуре.</p>

<p>Поверить не могу, какая компактная клавиатура:
<img src="/images/posts/keychron-k3-compared-logitech-mx-keys.jpeg" alt="Keychron K3 рядом с Logitech MX Keys" />
<em>Keychron K3 рядом с Logitech MX Keys</em></p>

<h2 id="ссылки">Ссылки</h2>
<ul>
  <li><a href="https://www.keychron.com">Вебсайт Keychron</a></li>
  <li><a href="https://www.unixtutorial.org/keychron-k3/">Keychron K3 keyboard</a></li>
  <li><a href="https://www.keychron.com/products/keychron-k3-wireless-mechanical-keyboard">Модель Keychron K3 на сайте</a></li>
</ul>]]></content><author><name></name></author><summary type="html"><![CDATA[Клавиатура Keychron K3]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.unixtutorial.ru/images/posts/keychron-k3.jpeg" /><media:content medium="image" url="https://www.unixtutorial.ru/images/posts/keychron-k3.jpeg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Ошибка: mkdir - Cannot Create Directory</title><link href="https://www.unixtutorial.ru/mkdir-cannot-create-directory/" rel="alternate" type="text/html" title="Ошибка: mkdir - Cannot Create Directory" /><published>2021-05-13T05:00:00+00:00</published><updated>2021-05-13T05:00:00+00:00</updated><id>https://www.unixtutorial.ru/mkdir-cannot-create-directory</id><content type="html" xml:base="https://www.unixtutorial.ru/mkdir-cannot-create-directory/"><![CDATA[<p>Новички в Linux часто не понимают, что делать при получении ошибки “<a href="https://www.unixtutorial.org/mkdir-cannot-create-directory/">mkdir: cannot create directory</a>” во время работы с командной строкой. Есть несколько причин возникновения такой ошибки, и в этом переводе своей англоязычной статьи с сайта <a href="https://www.unixtutorial.org">Unix Tutorial</a> я покажу эти причины и их устрание на примерах.</p>

<h2 id="mkdir-cannot-create-directory--file-exists">mkdir: cannot create directory – File exists</h2>

<p>В переводе с английского сообщение означает: невозможно создать каталог - файл уже существует.</p>

<p>ФАЙЛ существует? А при чём тут проблема создания каталога? И почему ошибка говорить “существует файл”, когда мы вообще пытаемся создавать каталог, а не файл?</p>

<p>На самом деле всё просто: большинство объектов в Linux являются файлами и структурами в файловой системе. Поэтому эта ошибка означает, что там, где вы пытаетесь выполнить команду создания нового каталога, уже существует другой объект с таким же именем. В данном случае - это файл, а не каталог. Но у файла такое же имя, как у желаемого каталога, так что создать второй объект с таким же именем не получится.</p>

<p>Например, ошибка</p>

<figure class="highlight"><pre><code class="language-command" data-lang="command">greys@vps1:~$ mkdir /tmp/try
mkdir: cannot create directory – File exists</code></pre></figure>

<p>намекает, что у нас уже есть файл с именем <strong>/tmp/try</strong>.</p>

<p>Очень просто проверить эту гипотезу с помощью команды ls:</p>

<figure class="highlight"><pre><code class="language-command" data-lang="command">greys@vps1:~$ ls -ald /tmp/try
drwxr-xr-x 2 greys root 4096 Nov 5 18:55 /tmp/try</code></pre></figure>

<p>Так и есть, у нас существует файл с таким именем.</p>

<h2 id="возможные-решения-проблем-mkdir-cannot-create-directory">Возможные решения проблем mkdir: cannot create directory</h2>

<h3 id="сценарий-file-exists">Сценарий file exists</h3>

<p>Если файл с таким именем уже существует, а каталог всё же очень хочется создать, то есть решения.</p>

<h3 id="переименовать-или-переместить-существующий-файл">Переименовать (или переместить) существующий файл</h3>

<p>Используем команду mv для перемещения <strong>/tmp/try</strong> в другой каталог (или просто сменим имя try на другое, оставив файл в том же каталоге /tmp).
Вот как можно переименовать файл в имя oldtry:</p>

<figure class="highlight"><pre><code class="language-command" data-lang="command">greys@vps1:~$ mv /tmp/try /tmp/oldtry</code></pre></figure>

<p>Теперь давайте попробуем ту же команду mkdir:</p>

<figure class="highlight"><pre><code class="language-command" data-lang="command">greys@vps1:~$ mkdir /tmp/try</code></pre></figure>

<p>…и всё замечательно работает! Никаких ошибок, и создался новый каталог под названием /tmp/try. 
Подтверждаем это с помощью команды ls:</p>

<figure class="highlight"><pre><code class="language-command" data-lang="command">greys@vps1:~$ ls -ald /tmp/try /tmp/oldtry
drwxr-xr-x 2 greys root 4096 Nov 5 18:55 /tmp/oldtry
drwxrwxr-x 2 greys greys 4096 Nov 5 19:08 /tmp/try</code></pre></figure>

<h3 id="удалить-существующий-файл">Удалить существующий файл</h3>

<p>Ещё одна опция, которая напрашивается сама собой - можно просто удалить неугодный файл, который мешает созаднию нашего нового каталога.</p>

<p>Для этого примера создадим новый пустой файл с названием /tmp/newtry</p>

<figure class="highlight"><pre><code class="language-command" data-lang="command">greys@vps1:~$ touch /tmp/newtry
greys@vps1:~$ ls -lad /tmp/newtry
-rw-rw-r-- 1 greys greys 0 Nov 5 20:50 /tmp/newtry</code></pre></figure>

<p>Если попробовать mkdir, то получится ожидаемая ошибка:</p>

<figure class="highlight"><pre><code class="language-command" data-lang="command">greys@vps1:~$ mkdir /tmp/newtry
mkdir: cannot create directory '/tmp/newtry': File exists</code></pre></figure>

<p>А теперь мы просто удалим неугодный файл и попробуем mkdir снова:</p>

<figure class="highlight"><pre><code class="language-command" data-lang="command">greys@vps1:~$ rm /tmp/newtry
greys@vps1:~$ mkdir /tmp/newtry</code></pre></figure>

<p>В этот раз нет никаких ошибок, всё снова сработало:</p>

<figure class="highlight"><pre><code class="language-command" data-lang="command">greys@vps1:~$ ls -lad /tmp/newtry
drwxrwxr-x 2 greys greys 4096 Nov 5 20:50 /tmp/newtry</code></pre></figure>

<p>##mkdir: cannot create directory – Permission denied</p>

<p>Это - ещё один распространённый сценарий при создании каталогов.</p>

<p>В переводе на русский, сообщение говорит: невозможно создать каталог - недостаточно прав доступа.
То есть файлов с таким же именем нет, но текущий пользователь, под которым мы пытаемся создать каталог, не имеет прав в текущем месте файловой системы для создания новых каталогов (и файлов).</p>

<p>Основной подход к такой ошибке - проверка прав доступа в каталоге, где получена ошибка. Команда ls и здесь поможет.
You should use ls command on the higher level directory to confirm permissions.</p>

<p>Например:</p>

<figure class="highlight"><pre><code class="language-command" data-lang="command">greys@vps1:/tmp$ mkdir try2018
greys@vps1:/tmp$ mkdir try2018/anotherone
greys@vps1:/tmp$ ls -ald try2018
drwxrwxr-x 3 greys greys 4096 Nov 5 21:04 try2018</code></pre></figure>

<p>Все эти команды сработали без ошибок, и ls показывает, что у меня есть полные права доступа к каталогу try2018 - rwx для меня, rwx для моей группы и r-x для всех остальных (это я читаю фрагмент drwxrwxr-x в строке с try2018).</p>

<p>Теперь давайте уберём права на запись (и создание новых объектов) в каталоге try2018:</p>

<figure class="highlight"><pre><code class="language-command" data-lang="command">greys@vps1:/tmp$ chmod a-w try2018
greys@vps1:/tmp$ ls -ald try2018
dr-xr-xr-x 3 greys greys 4096 Nov 5 21:04 try2018</code></pre></figure>

<p>Теперь мои права к этому каталогу сменились с полных (rwx - read/write/execute) на только чтение (r-x - read/execute).
Так что если я попробую создать в try2018 какой-то подкаталог, выйдет та самая ошибка про недостаток прав доступа:</p>

<figure class="highlight"><pre><code class="language-command" data-lang="command">greys@vps1:/tmp$ mkdir try2018/yetanotherone
mkdir: cannot create directory 'try2018/yetanotherone': Permission denied</code></pre></figure>

<p>Чтобы исправить проблему, нужно исправить права доступа на каталоге, где мы видим ошибку. И пробуем mkdir снова:</p>

<figure class="highlight"><pre><code class="language-command" data-lang="command">greys@vps1:/tmp$ chmod a+w try2018
greys@vps1:/tmp$ mkdir try2018/yetanotherone</code></pre></figure>

<p>Вот теперь - порядок, всё создалось,</p>

<figure class="highlight"><pre><code class="language-command" data-lang="command">greys@vps1:/tmp$ ls -ald try2018/yetanotherone
drwxrwxr-x 2 greys greys 4096 Nov 5 21:05 try2018/yetanotherone</code></pre></figure>

<p>На сегодня - всё! Будут ещё вопросы по самым основам Linux - обращайтесь!</p>]]></content><author><name></name></author><category term="basics" /><category term="troubleshooting" /><summary type="html"><![CDATA[Новички в Linux часто не понимают, что делать при получении ошибки “mkdir: cannot create directory” во время работы с командной строкой. Есть несколько причин возникновения такой ошибки, и в этом переводе своей англоязычной статьи с сайта Unix Tutorial я покажу эти причины и их устрание на примерах.]]></summary></entry><entry><title type="html">Изучаем tmux</title><link href="https://www.unixtutorial.ru/learning-tmux/" rel="alternate" type="text/html" title="Изучаем tmux" /><published>2021-05-11T05:00:00+00:00</published><updated>2021-05-11T05:00:00+00:00</updated><id>https://www.unixtutorial.ru/learning-tmux</id><content type="html" xml:base="https://www.unixtutorial.ru/learning-tmux/"><![CDATA[<p><img src="/images/pages/tmux-28-macos-unixtutorial.png" alt="tmux" />
<strong>tmux</strong></p>

<p>Я тут на основном сайте Unix Tutorial всё ещё переношу заметки после переезда на новый хостинг и новый движок (я с 2020го перешёл на Jekyll).
Вчера целую кучу контента по доброму старому <a href="https://www.unixtutorial.org/software/tmux/">tmux</a> добавил:</p>

<ul>
  <li><a href="https://www.unixtutorial.org/tmux-basic-configuration/">basic tmux configuration</a> - пока без перевода</li>
  <li><a href="https://www.unixtutorial.org/software/tmux/">tmux software</a> - пока без перевода</li>
  <li><a href="https://www.unixtutorial.org/upgrading-tmux-in-macos">Upgrading tmux in macOS</a> - пока без перевода</li>
  <li><a href="https://www.unixtutorial.org/reference/tmux/">tmux reference</a> - пока без перевода</li>
  <li><a href="https://www.unixtutorial.org/preview-windows-and-sessions-in-tmux/">Preview Windows and Sessions in tmux</a> - пока без перевода</li>
  <li><a href="https://www.unixtutorial.org/how-to-get-started-with-tmux/">Getting Started with tmux</a> - пока без перевода</li>
  <li><a href="https://www.unixtutorial.org/windows-preview-in-tmux/">Windows preview in tmux (choose mode)</a> - пока без перевода</li>
</ul>

<p>По мере возможностей буду эти статьи переводить и обновлять эту заметку.</p>

<p>Пишите, если что-то ещё из этой темы интересует - научимся вместе!</p>

<h2 id="ссылки">Ссылки</h2>
<ul>
  <li><a href="https://www.unixtutorial.org/software/tmux/">tmux</a></li>
  <li><a href="https://www.unixtutorial.org/reference/tmux/">tmux reference</a></li>
</ul>]]></content><author><name></name></author><category term="tmux" /><category term="macos" /><summary type="html"><![CDATA[tmux]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.unixtutorial.ru/images/pages/tmux-28-macos-unixtutorial.png" /><media:content medium="image" url="https://www.unixtutorial.ru/images/pages/tmux-28-macos-unixtutorial.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Новые Расценки в Docker Hub</title><link href="https://www.unixtutorial.ru/new-docker-hub-pricing/" rel="alternate" type="text/html" title="Новые Расценки в Docker Hub" /><published>2020-08-01T06:45:00+00:00</published><updated>2020-08-01T06:45:00+00:00</updated><id>https://www.unixtutorial.ru/new-docker-hub-pricing</id><content type="html" xml:base="https://www.unixtutorial.ru/new-docker-hub-pricing/"><![CDATA[<p><img src="/images/software/docker-hub.png" alt="Docker Hub" />
<em>Docker Hub</em></p>

<p>Надо же! Совершенно пропустил новость о новых расценках в <a href="https://hub.docker.com">Docker Hub</a>, они поменяли прайсинг в мае 2020.</p>

<h2 id="новый-прайсинг-в-docker-hub">Новый Прайсинг в Docker Hub</h2>
<p><img src="/images/posts/docker-hub-pricing.png" alt="Docker Hub Princing" />
<em>Стоимость Pro плана в Docker Hub с мая 2020</em></p>

<p>Наконец-то индивидуальный план Про предоставляет именно то, что мне нужно:</p>
<ul>
  <li>неограниченное количество приватных репов - раньше можно было только 5 образов заводить</li>
  <li>есть разумная скидка при оплате за целый год - $60/год, а это $5/месяц вместо $7/месяц</li>
</ul>

<p>Торжественно активировал Pro план для моего <a href="https://www.techstack.ie"><strong>технического консалтинга</strong></a>:
<img src="/images/posts/docker-hub-techstack.png" alt="Docker Hub - Tech Stack Solutions" />
<em>Docker Hub - Tech Stack Solutions</em></p>

<h2 id="за-что-я-люблю-docker-hub">За Что я Люблю Docker Hub</h2>

<p>Я уже и собтсвенный container registry хостил, и у конкурентов различных проверял, но лучше нативного Docker Hub ничего не придумано:</p>

<h3 id="1-удобные-короткие-именя-реестра-имиджей-docker">1. Удобные, короткие именя реестра имиджей Docker</h3>
<p>В качестве имении рестра образов докера можно использовать просто имя пользователя с хаба, а во всех других решения придётся указывать полное имя хоста:</p>

<p><strong>unixtutorial/db</strong> использовать гораздо проще, чем <strong>dcr.techstack.ie/db</strong>, А у некоторых провайдеров имя хоста вот такое: <strong>rg.fr-par.scw.cloud/unixtutorial/db</strong>, так себе удовольствие.</p>

<h3 id="2-прайсинг-без-скрытых-наценок">2. Прайсинг без скрытых наценок</h3>
<p>У конкурентов очень уж легко попасть на дополнителньные траты: кто-то берёт деньги за трафик загрузки образов, кто-то за трафик выгрузки (то есть каждый новый деплоймент в вашу инфраструктуру), ну и почти все берут деньги за гигабайтовый объём ваших образов.</p>

<p>В Docker Hub традиционно фиксированная цена - никаких подводных камней.</p>

<h3 id="3-дополнительные-фишки">3. Дополнительные фишки</h3>
<p><a href="https://hub.docker.com">Docker Hub</a> предоставляет всё непобходимое для энтузиастов и профессионалов CI/CD. Я только начинаю в эти темы втягиваться.</p>

<p>Планирую пользоваться вот этим:</p>

<ul>
  <li>автоматические билды</li>
  <li>автоматические тесты образов</li>
  <li>webhooks</li>
  <li>build triggers</li>
</ul>

<h2 id="see-also">See Also</h2>
<ul>
  <li><a href="/software/docker">Docker Software</a></li>
  <li>Docker for Mac</li>
  <li><a href="/docker-desktop-vs-docker-machine">Docker Desktop vs Docker Machine</a></li>
  <li><a href="/reviewing-docker-logs">Reviewing Docker Logs</a></li>
  <li><a href="/TODO">List containers in Docker</a></li>
  <li>Tagging Docker Images</li>
  <li><a href="/docker-stop-all-containers">Stop All Docker Containers</a></li>
  <li><a href="/restart-stopped-containers-in-docker">Restart Stopped Docker containers</a></li>
  <li><a href="/TODO">Docker Inspect</a></li>
  <li><a href="/TODO">Remove Unused Docker volumes</a></li>
</ul>]]></content><author><name></name></author><category term="docker,ansible" /><summary type="html"><![CDATA[Docker Hub]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.unixtutorial.ru/images/software/docker-hub.png" /><media:content medium="image" url="https://www.unixtutorial.ru/images/software/docker-hub.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">screenFetch в Linux Mint 20.0 Ульяна (Ulyana)</title><link href="https://www.unixtutorial.ru/screenfetch-linux-mint-20-ulyana/" rel="alternate" type="text/html" title="screenFetch в Linux Mint 20.0 Ульяна (Ulyana)" /><published>2020-07-29T08:45:00+00:00</published><updated>2020-07-29T08:45:00+00:00</updated><id>https://www.unixtutorial.ru/screenfetch-linux-mint-20-ulyana</id><content type="html" xml:base="https://www.unixtutorial.ru/screenfetch-linux-mint-20-ulyana/"><![CDATA[<p>Я сподвигся на замену <a href="/software/linux-mint">Linux Mint</a> Debian Edition 4 - установил на свой Dell XPS лаптоп свежую версию <a href="/linux-mint-20-0-released">Linux Mint 20 - Ульяна (Ulyana)</a>, так что вот традиционный скриншот из утилиты screenFetch:</p>

<p><img src="/images/posts/screenfetch-linux-mint-20-ulyana.png" alt="Linux Mint 20" />
<em>Linux Mint 20 (Ульяна)</em></p>

<h2 id="полезные-ссылки">Полезные ссылки</h2>
<ul>
  <li><a href="/software/linux-mint">Linux Mint</a></li>
  <li>Linux Mint Debian Edition 4</li>
  <li><a href="/screenfetch-in-linux-mint-lmde4">LMDE4 screenFetch</a></li>
  <li><a href="/linux-mint-19-2-released">Linux Mint 19.2 Released</a></li>
  <li><a href="/upgrading-lmde4-to-latest-linux-kernel">Upgrading to latest kernel in LMDE 4</a></li>
  <li><a href="/linux-mint-20-0-released">Linux Mint 20.0 Ulyana released</a></li>
</ul>]]></content><author><name></name></author><category term="linux,mint" /><summary type="html"><![CDATA[Я сподвигся на замену Linux Mint Debian Edition 4 - установил на свой Dell XPS лаптоп свежую версию Linux Mint 20 - Ульяна (Ulyana), так что вот традиционный скриншот из утилиты screenFetch:]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.unixtutorial.ru/images/posts/screenfetch-linux-mint-20-ulyana.png" /><media:content medium="image" url="https://www.unixtutorial.ru/images/posts/screenfetch-linux-mint-20-ulyana.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Raspberry Pi 4 8GB</title><link href="https://www.unixtutorial.ru/raspberry-pi-4-8gb/" rel="alternate" type="text/html" title="Raspberry Pi 4 8GB" /><published>2020-05-28T08:45:00+00:00</published><updated>2020-05-28T08:45:00+00:00</updated><id>https://www.unixtutorial.ru/raspberry-pi-4-8gb</id><content type="html" xml:base="https://www.unixtutorial.ru/raspberry-pi-4-8gb/"><![CDATA[<p><img src="/images/posts/raspberry-pi-4-8gb.png" alt="Raspberry Pi 4 - 8GB" />
<em>Raspberry Pi 4</em>
Вот это да, <a href="https://www.raspberrypi.org/blog/8gb-raspberry-pi-4-on-sale-now-at-75/">Raspberry Pi 4 теперь имеет 8 гигов DDR4 памяти на борту</a>! Цена стала выше, но всё равно остаётся невероятной для полноценного компьютера за меньше, чем $100 (собственно малинка стоит всего $75) - при вполне приемлемых параметрах десктопа Linux.</p>

<p>Особенно доставляет новость, что Raspberry Pi OS теперь станет полностью 64-битной операционкой - так что все 8 ГБ памяти будут полностью доступны для каждого процесса. <a href="https://www.raspberrypi.org/forums/viewtopic.php?f=117&amp;t=275370">Rapsberry Pi OS 64-bit уже находится в бете</a>.</p>

<p>Я решил не заказаваь себе прям сразу же. У меня и так хватает проектов в домашнем офисе, например <a href="/kali-linux-2020-1a-raspberry-pi-4/">Kali Linux на Raspberry Pi 4</a> замечательно работает и на системе с 4 ГБ памяти. Но что-то подсказывает мне, что я в этом году буду заменять один из самых старых embedded серверов у меня - там 32 бита и всего ли 2 ГБ памяти, которые никак нельзя нарастить - так что RPi4 с 8 ГБ будет отличным апргейдом.</p>

<h2 id="ссылки-по-теме">Ссылки по теме</h2>
<ul>
  <li><a href="https://www.raspberrypi.org/blog/8gb-raspberry-pi-4-on-sale-now-at-75/">Raspberry Pi 4 with 8GB announcement</a></li>
  <li><a href="https://www.raspberrypi.org/products/raspberry-pi-4-model-b/">Raspberry Pi 4 - Model B</a></li>
  <li><a href="https://www.unixtutorial.org/command-to-confirm-raspberry-pi-model/">Command to Confirm Raspberry Pi model</a></li>
  <li><a href="https://www.jeffgeerling.com/blog/2020/raspberry-pi-4-goes-8gb-and-raspberry-pi-os-goes-64-bit">Jeff Geerling on Raspberry Pi 8GB</a></li>
  <li><a href="/kali-linux-2020-1a-raspberry-pi-4/">Kali Linux 2020.1a on RPi4</a></li>
</ul>]]></content><author><name></name></author><category term="news,raspberry" /><summary type="html"><![CDATA[Raspberry Pi 4 Вот это да, Raspberry Pi 4 теперь имеет 8 гигов DDR4 памяти на борту! Цена стала выше, но всё равно остаётся невероятной для полноценного компьютера за меньше, чем $100 (собственно малинка стоит всего $75) - при вполне приемлемых параметрах десктопа Linux.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.unixtutorial.ru/images/posts/raspberry-pi-4-8gb.png" /><media:content medium="image" url="https://www.unixtutorial.ru/images/posts/raspberry-pi-4-8gb.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Вышел релиз Grafana 7.0</title><link href="https://www.unixtutorial.ru/grafana-7/" rel="alternate" type="text/html" title="Вышел релиз Grafana 7.0" /><published>2020-05-19T08:45:00+00:00</published><updated>2020-05-19T08:45:00+00:00</updated><id>https://www.unixtutorial.ru/grafana-7</id><content type="html" xml:base="https://www.unixtutorial.ru/grafana-7/"><![CDATA[<p><img src="/images/software/grafana.png" alt="Grafana 7" />
<em>Grafana 7</em></p>

<p>Отличные новости - <a href="https://grafana.com/blog/2020/05/18/grafana-v7.0-released-new-plugin-architecture-visualizations-transformations-native-trace-support-and-more/">только что зарелизили Grafana 7</a>, похоже на солидный апргейд уже невероятно популярной системы построения графиков для временных серий, различных метрик и логов.</p>

<p>Я пользовался Grafana несколько лет назад, но потом вынужденно переключался на внутренние солюшены и облачный мониторинг. А этот релиз будет отличной возможностью заценить прогресс Grafana - особенно с учётом того, что теперь это решение разворачивается за пару секунд из стандартного Docker образа (а я ещё руками компилировал какие-то моменты и собирал собственные контейнеры для этого сервиса не так давно).</p>

<h2 id="улучшения-в-grafana-7">Улучшения в Grafana 7</h2>

<p>Пока сложно судить и тем более рекомендовать какие-то фичи - нужно будет попробовать самому и потом сделать апдейт. Но из того, что видно в пресс релизе, будет довольно много улучшений:</p>

<ul>
  <li><strong>Авто-компоновка</strong> - просто меняешь размеры панелей на странице, а весь контент и даже его типы меняются для максимально удобного предоставления информации</li>
  <li><strong>Экспорт данных</strong> - теперь инспектор панелей позволяет экспортировать все данные в формате CSV</li>
  <li><strong>Трансформации</strong> - теперь будет супер легко менять представление данных - можно на лету конвертировать метрику в различные типы и форматы, просто чтобы посмотреть и найти лучший вариант</li>
  <li><strong>AWS CloudWatch Logs</strong> - раньше можно было работать только с метриками, а теперь и облачные логи можно добавлять и анализировать с графиками</li>
  <li><strong>Улучшенная структура плагинов</strong> - теперь станет сильно проще разрабатывать плагины к Grafana: front-end или back-end теперь поддерживают улучшенный синтаксис и дополнительные типы данных</li>
</ul>

<h2 id="grafana-7-в-docker">Grafana 7 в Docker</h2>
<p>Если уже сейчас хочется попробовать новую версию Grafana в <a href="/software/docker">докере</a>, то вам повезло:</p>

<figure class="highlight"><pre><code class="language-command" data-lang="command"># docker run -d --name=grafana -p 3000:3000 grafana/grafana</code></pre></figure>

<p>Сразу после этого можно коннектиться на порт 3000 вашего сервера (только <strong>немедленно смените дефолтный пароль к админке</strong>):</p>

<p><img src="/images/posts/grafana-7-login.png" alt="Grafana 7" />
<em>Grafana 7 login</em></p>

<h2 id="ссылки">Ссылки</h2>
<ul>
  <li><a href="https://grafana.com/blog/2020/05/18/grafana-v7.0-released-new-plugin-architecture-visualizations-transformations-native-trace-support-and-more/">Grafana 7 released</a></li>
  <li><a href="/software/docker">Docker</a></li>
  <li><a href="https://grafana.com/docs/grafana/latest/installation/docker/">Install Grafana 7 with Docker</a></li>
</ul>]]></content><author><name></name></author><category term="news,releases" /><summary type="html"><![CDATA[Grafana 7]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.unixtutorial.ru/images/software/grafana.png" /><media:content medium="image" url="https://www.unixtutorial.ru/images/software/grafana.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>