<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>https://wiki.alex-master.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Vaal</id>
		<title>VAAL-WIKI - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.alex-master.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Vaal"/>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Vaal"/>
		<updated>2026-04-16T10:21:15Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.24.2</generator>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=Faq&amp;diff=713</id>
		<title>Faq</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=Faq&amp;diff=713"/>
				<updated>2023-10-31T14:14:34Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Отличие обычного пользователя Linux от профессионала заключается во времени, проведённом за изучением хитростей и приёмов, которые позволяют решать не быстрые задачи в одно мгновение. Если вы хотите увеличить скорость работы без долгого набивания шишек в консоли, здесь приводится список лёгких для изучения приёмов. Они помогут сделать вашу работу эффективной и менее трудозатратной.&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Список не ваших процессов'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для получения списка всех процессов, запущенных &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;''не текущим пользователем''&amp;lt;/span&amp;gt;, выполните команду:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ps aux | grep -v `whoami`&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для получения списка из 10 процессов, которые сильнее всего загружают систему, выполните команду:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ps aux --sort=-%cpu | grep -m 11 -v `whoami`&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Замена текста в файлах'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Если надо заменить текст не в одном файле, то имеется несколько способов. Для того, чтобы заменить текст '''''«Windows»''''' на '''''«Linux»''''' во всех файлах в текущей директории, название которой начинается с «test», введите в консоли('''''необходим интерпретатор perl'''''):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$perl -i -pe 's/Windows/Linux/;' test*&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Чтобы провести ту же операцию во всех поддиректориях:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$find. -name '*.txt' -print | xargs perl -pi -e's/Windows/Linux/ig' *.txt&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Если Вы хотите сделать то же самое для на обычных файлов со множеством переносов строк и странных символов (файл — в другой кодировке):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$find -type f -name '*.txt' -print0 | xargs --null perl -pi -e 's/Windows/Linux/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Исправить консоль'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Если использовать команду [[less]] или [[cat]] для просмотра файла, в конце которого — бинарные данные, то можно легко испортить консоль. Потому что в бинарных данных могут попасться любые сочетания управляющих кодов: компьютер будет издавать звуки «бип-бип», появятся прикольные символы, странные цветовые сочетания. В конце концов, шрифт изменится на какие-то иероглифы. Bash, очевидно, продолжает работать, но вы ничего не можете прочитать и сделать. Просто наберите в консоли команду инициализации:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$reset&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Запуск множественных X-сессий'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Если надо дать кому-нибудь доступ к Вашему компьютеру, то вы откроете для себя, что это не всегда необходимо. Если предположить, что компьютер стартует в графическом режиме (''runlevel 5''), то, одновременно нажав '''Ctrl+Alt+&amp;lt;F7&amp;gt;''', вы попадете в консоль. Введите логин и пароль, потом исполните следующий код:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$startx -- :1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;чтобы войти в графическое окружение. Чтобы вернуться в предыдущую сессию, нажмите '''Ctrl+Alt+&amp;lt;F7&amp;gt;''', для ещё одного возврата — '''Ctrl+Alt+&amp;lt;F8&amp;gt;'''. Вы можете этот трюк: клавиши с '''F1''' по '''F6''' отвечают за &amp;lt;u&amp;gt;6 сессий консоли&amp;lt;/u&amp;gt;, а клавиши с '''F7''' по '''F12''' — за &amp;lt;u&amp;gt;6 Х-сессий&amp;lt;/u&amp;gt;. Подводный камень: в разных дистрибутивах могут использоваться разные сочетания клавиш.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Лёгкое резервное копирование'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Если надо сделать резервную копию папки и скопировать только изменившиеся файлы, то можно использовать для этого rsync (вам нужен аккаунт на удалённом компьютере):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$rsync -vare ssh jono@192.168.0.2:/home/jono/importantfiles/* /home/jono/backup/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Поиск самых больших файлов в текущей директории'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Можно столкнуться с проблемой, когда надо удалить несколько больших файлов. Их можно найти в текущей директории с помощью команды:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ls -lSrh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Ключ “r” означает, что большие файлы должны выводиться в конце. Следующей командой можно найти самые большие файлы MP3/MPEG:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ls -lSrh *.mp*&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Также можно найти самые большие директории:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$du -kx | egrep -v &amp;quot;\./.+/&amp;quot; | sort -n&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Оптимизация баз данных MySQL'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;При любом изменении структуры базы данных или удалении больших объёмов данных, файлы могут стать фрагментированными, что приводит к потере производительности. Просто запомните простое правило — запускать оптимизатор базы при любом изменении базы:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#mysqloptimize -A -u&amp;lt;username&amp;gt; -p&amp;lt;password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#mysqlcheck --optimize -A -u&amp;lt;username&amp;gt; -p&amp;lt;password&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Список открытых портов'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Получить список открытых портов в состоянии ''Listen'' в Linux очень просто, для этого достаточно выполнить:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#netstat -lnp&lt;br /&gt;
 Active Internet connections (only servers)&lt;br /&gt;
 Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name &lt;br /&gt;
 tcp 0 0 0.0.0.0:5280 0.0.0.0:* LISTEN 698/perl &lt;br /&gt;
 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 217/httpd tcp&lt;br /&gt;
 0 0 10.42.3.2:53 0.0.0.0:* LISTEN 220/named tcp&lt;br /&gt;
 0 0 10.42.4.6:53 0.0.0.0:* LISTEN 220/named tcp&lt;br /&gt;
 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 220/named tcp &lt;br /&gt;
 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 200/sshd udp &lt;br /&gt;
 0 0 0.0.0.0:32768 0.0.0.0:* 220/named udp &lt;br /&gt;
 0 0 10.42.3.2:53 0.0.0.0:* 220/named udp &lt;br /&gt;
 0 0 10.42.4.6:53 0.0.0.0:* 220/named udp &lt;br /&gt;
 0 0 127.0.0.1:53 0.0.0.0:* 220/named udp &lt;br /&gt;
 0 0 0.0.0.0:67 0.0.0.0:* 222/dhcpd raw &lt;br /&gt;
 0 0 0.0.0.0:1 0.0.0.0:* 7 222/dhcpd&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;В этом примере видно, что процесс с PID'ом 698 — процесс интерпретатора Perl, который слушает порт 5280. Если вы не root в системе, то система не покажет пути к программам.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Поиск занятых устройств'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Вы наверняка сталкивались с ситуацией, когда надо отмаунтить диск, но система при попытке отключения сообщает о том, что он занят. Одной командой можно узнать, какое приложение использует его:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof +D /mnt/windows&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Она показывает PID и команду запуска любого процесса, использующего /mnt/windows.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''Поиск изменённых сегодня файлов'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Например, утром вы создали файл, который именно сейчас очень нужен. Однако, вы не можете вспомнить его название. Вручную перебирать домашнюю директорию бессмысленно, где скопилась не одна тысяча файлов. Но есть небольшой приём, показывающий эффективность пайпов и объединения нескольких команд консоли:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ls -al --time-style=+%D | grep `date +%D`&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Параметры команды [[Ls_—_Команда_печати_содержимого_каталога|ls]] требуют вывода даты в определенном формате. Хитрость в том: то, что выдаст [[Ls_—_Команда_печати_содержимого_каталога|ls]], идет на вход [[grep]]. Параметр grep сами по себе команда (заключена в обратные апострофы), которая подставляет текущую дату в шаблон для отсева. Её легко модифицировать для поиска по другим датам, размеру файла и т.д.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Поиск больших файлов в Linux'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Поиск больших файлов особенно актуален когда на диске заканчивается место и приходится искать кандидатов на удаление. Самый лучший способ чтобы найти все самые большие файлы на хосте с Linux - воспользоваться командной строкой. В принципе не существует простой команды для поиска самых больших файлов в Linux. Однако, можно с лёгкостью получить список самых больших файлов, используя комбинацию нескольких простых команд.Выполните следующую комбинацию команд для поиска десяти самых больших файлов в Linux, начиная с директории &amp;lt;DIR&amp;gt; (измените &amp;lt;DIR&amp;gt; на директорию в которой Вы хотите запустить поиск):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#find &amp;lt;DIR&amp;gt; -mount -type f -ls 2&amp;gt; /dev/null | sort -rnk7 | head -10 | awk '{printf &amp;quot;%10d MB\t%s\n&amp;quot;,($7/1024)/1024,$NF}'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 106 MB /var/lib/mysql/ibdata1 &lt;br /&gt;
 94 MB /usr/lib/locale/locale-archive &lt;br /&gt;
 41 MB /scripts/20130206-015833.tar.gz &lt;br /&gt;
 41 MB /scripts/20130206-004839.tar.gz &lt;br /&gt;
 41 MB /scripts/20130206-130400.tar.gz &lt;br /&gt;
 41 MB /scripts/20130206-000442.tar.gz &lt;br /&gt;
 41 MB /scripts/20130206-132019.tar.gz &lt;br /&gt;
 41 MB /root/20130208-133954.tar.gz &lt;br /&gt;
 33 MB /var/log/messages-20130303 &lt;br /&gt;
 32 MB /var/lib/rpm/Packages&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Найти 10 самых больших фалов, начиная с '/home'&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#find /home -mount -type f -ls 2&amp;gt; /dev/null | sort -rnk7 | head -10 | awk '{printf &amp;quot;%10d MB\t%s\n&amp;quot;,($7/1024)/1024,$NF}'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 3007 MB /home/user/Desktop/share/linux-65835.iso &lt;br /&gt;
 448 MB /home/user/Pictures/Turkey/SAM_4590.AVI &lt;br /&gt;
 266 MB /home/user/Pictures/Turkey/SAM_4588.AVI &lt;br /&gt;
 173 MB /home/user/Camera/VID_20130909_120713.mp4 &lt;br /&gt;
 152 MB /home/user/Camera/VID_20130909_115427.mp4 &lt;br /&gt;
 133 MB /home/user/Camera/VID_20130909_210904.mp4 &lt;br /&gt;
 133 MB /home/user/Pictures/Paris/VID_20130928_182431.mp4 &lt;br /&gt;
 131 MB /home/user/Pictures/Turkey/SAM_4597.AVI &lt;br /&gt;
 129 MB /home/user/Pictures/Turkey/SAM_4641.AVI&lt;br /&gt;
 127 MB /home/user/Desktop/tmp/Camera/VID_20130911_164440.mp4&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Сортировка вывода по размеру файлов командой &amp;lt;code&amp;gt;du&amp;lt;/code&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#du -k /opt/ruby_projects/* | sort -nr | cut -f2 | xargs -d '\n' du -sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Определить дату установки Linux'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Есть несколько вариантов узнать дату и время установки:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ls -clt / | tail -n 1 | awk '{ print $7, $6, $8 }'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#tune2fs -l /dev/sda1 | grep create&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#LC_TIME=&amp;quot;en_DK&amp;quot; rpm -qia |grep &amp;quot;Install Date&amp;quot;|awk '{print $3}'|uniq |sort -r|tail -n 1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Очистка КЭШа оперативной памяти в Linux'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для того, чтобы посмотреть сколько оперативной памяти занято и сколько закешировано в данный момент, можно воспользоваться командой &amp;lt;code&amp;gt;free&amp;lt;/code&amp;gt;. С параметром -g она выведет информацию об использовании памяти в гигабайтах, с параметром -m в мегабайтах:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#free -g&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для очистки кеша страниц('''pagecache''') использовать команду:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#echo 1 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для очистки directory entry('''dentries''') и index node('''inode''') использовать команду:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#echo 2 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для очистки кеша страниц('''pagecache'''), directory entry('''dentries''') и index node('''inode''') использовать команду:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#echo 3 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Проверка количества открытых файлов для процесса'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;В примере ниже описана команда получения количества открытых процессом файлов, для процесса ''line4'':&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#for pid in `pidof line4`; do echo &amp;quot;$(&amp;lt; /proc/$pid/cmdline)&amp;quot;; egrep 'files|Limit' /proc/$pid/limits; \&lt;br /&gt;
echo &amp;quot;Currently open files: $(ls -1 /proc/$pid/fd | wc -l)&amp;quot;; echo; done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Вывод представлен на скриншоте ниже:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[File:Open files.PNG|1200px|center]]&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Просмотреть краткую информацию по сетевому интерфейсу'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для просмотра выполнить команду:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ip addr show &amp;lt;NIC&amp;gt; | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Подсчитать Количество Файлов(Директорий) в Папке'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Ниже приведены лучшие способы поиска и подсчета количества файлов и папок в конкретной директории.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Подсчитать количество файлов в текущей папке:&amp;lt;/p&amp;gt;&lt;br /&gt;
* Если Вам необходимо подсчитать довольно большое количество файлов, данный метод является самым быстрым:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ls -f . | wc -l&lt;br /&gt;
#find . -type f -maxdepth 1 | wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Команда рекурсивно считает количество файлов в текущей директории и всех её поддиректориях:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#find . -type f | wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Команда рекурсивно считает количество папок в текущей директории и всех её поддиректориях:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#find . -type d | wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Команда рекурсивно считает количество файлов с расширением &amp;quot;.txt&amp;quot; в текущей директории и всех её поддиректориях:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#find . -type f -name &amp;quot;*.txt&amp;quot; | wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Настройка ssh на авторизацию по ключам'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Бывают случаи, когда необходимо настроить ssh c доступом к серверам с использованием авторизации по ключам. Для этого необходимо выполнить следующие команды(на сервере с которого планируются подключения к серверам, используя ключи):&amp;lt;/p&amp;gt;&lt;br /&gt;
Переходим в директорию .ssh, расположенную в домашней директории пользователя:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#cd ~/.ssh/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Генерируем ключи, которые будем передавать. На все вопросы нажимаем клавишу ''Enter'':&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh-keygen&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Отправляем на сервер 192.168.1.21 содержимое ~/.ssh/id_rsa.pub в файл /home/user/.ssh/authorized_keys:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#cat ~/.ssh/id_rsa.pub | ssh user@192.168.1.21 'cat &amp;gt;&amp;gt; .ssh/authorized_keys'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Отправляем на сервер 192.168.1.21 команду, которая выставит права записи и чтения на файл authorized_keys только для владельца:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@192.168.1.21 'chmod 600 ~/.ssh/authorized_keys'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Отправляем на сервер 192.168.1.21 команду, которая выставит права записи и чтения и исполнения на директорию .ssh только для владельца:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@192.168.1.21 'chmod 700 ~/.ssh'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Вводим данную команду, для проверки, что авторизации по ключам работает:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@192.168.1.21&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Следует учитывать, что на домашнюю директорию пользователя и директорию .ssh(/home/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;lt;''username''&amp;gt;&amp;lt;/span&amp;gt;/.ssh) на удалённом сервере должны быть выставлены права '''''drwx------'''''('''700'''), а на файл /home/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;lt;''username''&amp;gt;&amp;lt;/span&amp;gt;/.ssh/authorized_keys '''''-rw-------'''''('''600''').&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Ошибка &amp;quot;Broken pipe&amp;quot; при авторизации пользователя по ssh'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Бывают случаи, когда при авторизации обычным пользователем по ssh появляется ошибка &amp;quot;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Broken pipe'''&amp;lt;/span&amp;gt;&amp;quot;. При этом авторизация под root может проходить успешно. Если из-под '''root''' выполнить команду &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''''su - &amp;lt;username&amp;gt;'''''&amp;lt;/span&amp;gt; и получить результат &amp;quot;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''su: cannot set user id: Resource temporarily unavailable'''&amp;lt;/span&amp;gt;&amp;quot; или &amp;quot;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''su:невозможно установить пользовательский id: Ресурс временно недоступен'''&amp;lt;/span&amp;gt;&amp;quot;, то надо посмотреть в сторону того, какое кол-во процессов разрешено запускать пользователю и какое кол-во процессов из-под этого пользователя запущенно на данный момент. Для этого необходимо выполнить следующие команды:&amp;lt;/p&amp;gt;&lt;br /&gt;
Команда покажет сколько процессов запущено от пользователя &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''&amp;lt;username&amp;gt;'''&amp;lt;/span&amp;gt; на данный момент:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ps -eLF|grep '&amp;lt;username&amp;gt;'|wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Команда покажет сколько файлов открыто от пользователя &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''&amp;lt;username&amp;gt;'''&amp;lt;/span&amp;gt; на данный момент:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -u '&amp;lt;username&amp;gt;'|wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Команда покажет сколько процессов разрешено запускать пользователям(&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''*'''&amp;lt;/span&amp;gt; - любой пользователь) в RHEL 6.x/CentOS 6.x:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#cat /etc/security/limits.d/90-nproc.conf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Команда покажет сколько процессов разрешено запускать пользователям(&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''*'''&amp;lt;/span&amp;gt; - любой пользователь) в RHEL 7.x/CentOS 7.x:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#cat /etc/security/limits.d/20-nproc.conf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В случае, если вывод команды &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;#ps -eLF|grep '&amp;lt;username&amp;gt;'|wc -l&amp;lt;/source&amp;gt; превышает указанное в 90-nproc.conf/20-nproc.conf значение, тогда необходимо это значение увеличить или закомментировать с последующей перезагрузкой параметров командой &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;#sysctl -p&amp;lt;/source&amp;gt;('''''правка параметров и перезагрузка выполняется из-под root''''').&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Копирование директорий на удалённый сервер используя tar, ssh, cat или dd'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Архивирование директории на удалённый сервер с использованием [[cat]]:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# tar zcvfp - /home/user/sourcedir | ssh user@remote_host &amp;quot;cat &amp;gt; ~/from_somehost.tar.gz&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
То, что [[tar]] выведет на стандартный вывод, перенаправляется на удалённый сервер ('''''user@remote_host'''''), где и запускается команда &amp;quot;'''''cat &amp;gt; ~/from_somehost.tar.gz'''''&amp;quot;. [[cat]] принимает на вход то, что выдал [[tar]], а затем всё это складывает в файл '''''~/from_somehost.tar.gz'''''.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Архивирование директории на удалённый сервер с [[dd]]:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#tar zcvfp - /home/user/sourcedir | ssh user@remote_host &amp;quot;dd of=~/from_somehost.tar.gz&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В этом примере вместо [[cat]] используется [[dd]] (disk destroy ;), у которой есть параметр '''of''' (output file), то есть тот, куда нужно складывать то, что пришло от [[tar]]. Остальное по аналогии должно быть понятно.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Архивирование  с удалённой машины на локальную с использованием [[cat]]:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@remote_host &amp;quot;tar zcvfp - /home/user/sourcedir&amp;quot; | cat &amp;gt; ~/from_somehost.tar.gz&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Архивирование  с удалённой машины на локальную с использованием [[dd]]:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@remote_host &amp;quot;tar zcvfp - /home/user/sourcedir&amp;quot; | dd of=~/from_somehost.tar.gz&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Распаковка удалённого архива на локальную машину:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@remote_host &amp;quot;cat /home/user/from_somehost.tar.gz&amp;quot; |tar xvfp -&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Работа с процессами'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
Часто бывает полезным узнать разного рода параметры уже запущенных процессов, а так же манипулировать ими. Рассмотрим несколько разных примеров по работе с процессами.&lt;br /&gt;
Много информации нам предоставляет файловая система '''procfs'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''procfs''' — виртуальная файловая система, используемая в ''UNIX-like'' ОС. '''procfs''' позволяет получить доступ к информации о системных процессах из ядра, она необходима для выполнения таких команд как [[ps]], [[w]], [[top]]. Обычно её монтируют на ''/proc''. '''procfs''' создаёт двухуровневое представление пространств процессов. На верхнем уровне процессы представляют собой директории, именованные в соответствии с их ''pid''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Некоторые файлы и директории из '''ProcFS''', где '''PID''' – идентификатор процесса или ''self'':&lt;br /&gt;
* /proc/'''PID'''/cmdline – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;аргументы командной строки&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/'''PID'''/environ – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;переменные окружения для данного процесса&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/'''PID'''/status – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;статус процесса&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/'''PID'''/fd – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;директория, содержащая символьные ссылки на каждый открытый файловый дескриптор&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/cpuinfo – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;информация о процессоре (производитель, модель, поколение и т.п.)&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/cmdline – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;параметры, передаваемые ядру при загрузке&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/uptime – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;количество секунд, прошедших с момента загрузки ядра и проведенных в режиме бездействия&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/version – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;содержит информацию о версии ядра, компилятора и другую информацию, связанную с загруженным ядром&amp;lt;/span&amp;gt;.&lt;br /&gt;
Посмотрев на размер файлов в каталоге ''/proc'', можно увидеть, что они все нулевого размера. Дело в том, что в действительности все эти файлы не существуют.&lt;br /&gt;
Примеры использования '''procfs''':&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1) Текущий рабочий каталог процесса&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# ls -la /proc/3165/cwd&lt;br /&gt;
lrwxrwxrwx 1 clamav clamav 0 Авг 18 16:07 /proc/3165/cwd -&amp;gt; /var/lib/clamav&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
где 3165 — номер pid’a процесса.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2) Вывести все переменные процесса&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# cat /proc/2361/environ | strings&lt;br /&gt;
XDG_SESSION_ID=1&lt;br /&gt;
TERM=xterm&lt;br /&gt;
SHELL=/bin/bash&lt;br /&gt;
SSH_CLIENT=10.0.2.2 1383 22&lt;br /&gt;
SSH_TTY=/dev/pts/0&lt;br /&gt;
USER=vaal&lt;br /&gt;
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:&lt;br /&gt;
*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:&lt;br /&gt;
*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:&lt;br /&gt;
*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:&lt;br /&gt;
*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:&lt;br /&gt;
*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:&lt;br /&gt;
*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:&lt;br /&gt;
*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:&lt;br /&gt;
*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:&lt;br /&gt;
*.spx=00;36:*.xspf=00;36:&lt;br /&gt;
DOCKER_TLS_VERIFY=0&lt;br /&gt;
MAIL=/var/mail/vaal&lt;br /&gt;
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games&lt;br /&gt;
PWD=/home/vaal&lt;br /&gt;
LANG=ru_RU.UTF-8&lt;br /&gt;
SHLVL=1&lt;br /&gt;
HOME=/home/vaal&lt;br /&gt;
LOGNAME=vaal&lt;br /&gt;
SSH_CONNECTION=10.0.2.2 1383 10.0.2.15 22&lt;br /&gt;
LESSOPEN=| /usr/bin/lesspipe %s&lt;br /&gt;
XDG_RUNTIME_DIR=/run/user/1000&lt;br /&gt;
LESSCLOSE=/usr/bin/lesspipe %s %s&lt;br /&gt;
_=/usr/bin/mc&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3) Удалили файл, используемый процессом. Как восстановить файл?&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
Попробовать поискать файл в каталоге /proc/'''PID'''/fd&lt;br /&gt;
Почему так можно делать? Всё дело в том, что при удалении файла, который всё-таки открыт процессом, файл перестал быть виден в файловой системе, но не исчез, и окончательно удалён он будет только когда закроется последний ссылающийся на него дескриптор. Каталог /proc/'''PID'''/fd содержит символьные ссылки на все открытые процессом '''PID''' дескрипторы.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4) Связь между /proc и sysctl(взято с [http://linuxcenter.ru Linux-center])&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
'''Sysctl''' использует файлы в ''/proc/sys'' как индивидуальные переменные, которые могут быть изменены. К примеру, файл в ''/proc/sys'', который представляет максимальное количество заголовков файлов в системе, ''/proc/sys/fs/file-max'', представлен как '''fs.file-max'''. Этот пример требует некоторых дополнительных пояснений в записи '''sysctl'''. Так как '''sysctl''' может только изменять переменные в директории '''/proc/sys''', то часть имени переменной обозначающая директорию отбрасывается. Другое изменение касается слэшей, которые заменяются на точки. Вот два простых правила для преобразования файлов в ''/proc/sys'' и переменных в '''sysctl''':&amp;lt;br /&amp;gt;&lt;br /&gt;
* Отбросьте ''/proc/sys'' от начала.&lt;br /&gt;
* Замените слэши на точки в имени файла.&lt;br /&gt;
Эти два правила позволят вам преобразовать любой файл в ''/proc/sys'' в любое имя переменной в '''sysctl'''. Обычное преобразование имени файла в переменную:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/proc/sys/dir/file --&amp;gt; dir.file&lt;br /&gt;
dir1.dir2.file --&amp;gt; /proc/sys/dir1/dir2/file&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Можно отобразить все переменные, доступные для изменения, используя команду '''sysctl -a'''. Переменные могут также быть изменены с помощью '''sysctl''', которая выполняет ту же работу что и '''echo'''. Эта запись объясняет это:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sysctl -w dir.file=&amp;quot;value&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Используя пример с ''file-max'', мы можем изменить это значение на 16384, используя один из двух методов:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sysctl -w fs.file-max=&amp;quot;16384&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
или&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo &amp;quot;16384&amp;quot; &amp;gt; /proc/sys/fs/file-max&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5) Максимальное количество процессов&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
По умолчанию процессов 32768. Узнать текущее значение можно так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#sysctl kernel.pid_max&lt;br /&gt;
kernel.pid_max = 32768&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Изменить это число можно так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#sysctl kernel.pid_max=256000&lt;br /&gt;
kernel.pid_max = 256000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Это возможно только на '''64'''-битных системах. Такое ограничение связано с разрядностью '''32'''-битного числа, которое не может превышать ''32768''. А поскольку эти лимиты определены как тип '''int''', то соответственно действует такое ограничение. Если же вы попробуете изменить, то получите такое сообщение:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# sysctl kernel.pid_max=327600&lt;br /&gt;
error: &amp;quot;Invalid argument&amp;quot; setting key &amp;quot;kernel.pid_max&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6) Утилита lsof&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
Утилита, служит для вывода информации о том, какие файлы используются теми или иными процессами.Ниже будет продемонстрировано несколько полезных примеров работы этой утилиты.&lt;br /&gt;
* Список всех открытых файлов&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$lsof&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Показывает все открытые файлы текущего пользователя (если '''root''' — тогда все файлы) всеми процессами.&lt;br /&gt;
* Какие процессы используют файл file&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof /path/to/file&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Можно указать несколько файлов через пробел, тогда получите суммарный список процессов.&lt;br /&gt;
&lt;br /&gt;
* Какие процессы/файлы использует пользователь ''user''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -u user&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Если хотите узнать информацию по нескольким пользователям, разделите их имена запятой. Для групп используйте конструкцию ‘-g groupname’&lt;br /&gt;
&lt;br /&gt;
* Какие процессы открыты программой prog_name&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -c prog_name&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Можно указывать неполное имя. [lsof] будет искать по указанному буквосочетанию. Если нужно узнать информацию для нескольких приложений, разделяйте их имена пробелом и перед каждым именем должно идти ‘-c’&lt;br /&gt;
&lt;br /&gt;
* Какие файлы открыты pid’ом NNN&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -p NNN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Список всех открытых интернет сокетов&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -i&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Если нужно посмотреть только tcp сокеты, то после ‘i’ через пробел добавляем ''tcp''. Аналогично и для ''udp''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Так же можно посмотреть и список всех unix сокетов:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -U&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Просмотр ресурсов в realtime&lt;br /&gt;
Можно задать период обновления информации, например, 1 секунда:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -r 1 -u username&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
будет обновлять информацию об использованных пользователем ''username'' процессах, каждую секунду.&lt;br /&gt;
&lt;br /&gt;
* Вывод только pid’ов&lt;br /&gt;
По умолчанию, выводится таблица с колонками. Но если требуется вывести только сами pid’ы, можно воспользоваться такой командой:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -t -u username&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;7) Поиск всех pid’ов процесса&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
Есть одна замечательная утилита [[pidof]], которая позволяет найти все pid’ы связанные с определённым процессом. К примеру, найдём все pid’ы apache2:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# pidof apache2&lt;br /&gt;
9370 9369 9368 9367 9364 9362 9314 9280 9277 9268 4940&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В большинстве дистрибутивов это обычный симлинк на ''/sbin/killall5'':&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#file /bin/pidof&lt;br /&gt;
/bin/pidof: symbolic link to `../sbin/killall5'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Быстрое копирование данных при помощи Python'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Иногда необходимо быстро предоставить доступ к файлам на машине Linux. В случае, если на такой машине имеется установленный python, то можно запустить простой HTTP-сервер, который предоставит такой доступ. Для этого перейдём в директорию содержащую целевые файлы и выполним команду интерпретатора python, который откроет HTTP-сервер на порту 8080:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
$ cd &amp;lt;source_dir&amp;gt;&lt;br /&gt;
$ python -m SimpleHTTPServer 8080&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&lt;br /&gt;
или таким образом:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
$ cd &amp;lt;source_dir&amp;gt;&lt;br /&gt;
$ python3 -m http.server 8080&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ссылки ===&lt;br /&gt;
[https://nixadmin.ru/copy_on_the_fly nixadmin.ru — копирование &amp;quot;на лету&amp;quot;]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://eax.me/ssh-backup/ Резервное копирование базы данных и файлов по SSH]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://skeletor.org.ua/?p=1506 Работаем с процессами]&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=Faq&amp;diff=712</id>
		<title>Faq</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=Faq&amp;diff=712"/>
				<updated>2023-10-31T14:12:09Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Отличие обычного пользователя Linux от профессионала заключается во времени, проведённом за изучением хитростей и приёмов, которые позволяют решать не быстрые задачи в одно мгновение. Если вы хотите увеличить скорость работы без долгого набивания шишек в консоли, здесь приводится список лёгких для изучения приёмов. Они помогут сделать вашу работу эффективной и менее трудозатратной.&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Список не ваших процессов'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для получения списка всех процессов, запущенных &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;''не текущим пользователем''&amp;lt;/span&amp;gt;, выполните команду:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ps aux | grep -v `whoami`&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для получения списка из 10 процессов, которые сильнее всего загружают систему, выполните команду:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ps aux --sort=-%cpu | grep -m 11 -v `whoami`&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Замена текста в файлах'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Если надо заменить текст не в одном файле, то имеется несколько способов. Для того, чтобы заменить текст '''''«Windows»''''' на '''''«Linux»''''' во всех файлах в текущей директории, название которой начинается с «test», введите в консоли('''''необходим интерпретатор perl'''''):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$perl -i -pe 's/Windows/Linux/;' test*&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Чтобы провести ту же операцию во всех поддиректориях:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$find. -name '*.txt' -print | xargs perl -pi -e's/Windows/Linux/ig' *.txt&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Если Вы хотите сделать то же самое для на обычных файлов со множеством переносов строк и странных символов (файл — в другой кодировке):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$find -type f -name '*.txt' -print0 | xargs --null perl -pi -e 's/Windows/Linux/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Исправить консоль'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Если использовать команду [[less]] или [[cat]] для просмотра файла, в конце которого — бинарные данные, то можно легко испортить консоль. Потому что в бинарных данных могут попасться любые сочетания управляющих кодов: компьютер будет издавать звуки «бип-бип», появятся прикольные символы, странные цветовые сочетания. В конце концов, шрифт изменится на какие-то иероглифы. Bash, очевидно, продолжает работать, но вы ничего не можете прочитать и сделать. Просто наберите в консоли команду инициализации:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$reset&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Запуск множественных X-сессий'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Если надо дать кому-нибудь доступ к Вашему компьютеру, то вы откроете для себя, что это не всегда необходимо. Если предположить, что компьютер стартует в графическом режиме (''runlevel 5''), то, одновременно нажав '''Ctrl+Alt+&amp;lt;F7&amp;gt;''', вы попадете в консоль. Введите логин и пароль, потом исполните следующий код:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$startx -- :1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;чтобы войти в графическое окружение. Чтобы вернуться в предыдущую сессию, нажмите '''Ctrl+Alt+&amp;lt;F7&amp;gt;''', для ещё одного возврата — '''Ctrl+Alt+&amp;lt;F8&amp;gt;'''. Вы можете этот трюк: клавиши с '''F1''' по '''F6''' отвечают за &amp;lt;u&amp;gt;6 сессий консоли&amp;lt;/u&amp;gt;, а клавиши с '''F7''' по '''F12''' — за &amp;lt;u&amp;gt;6 Х-сессий&amp;lt;/u&amp;gt;. Подводный камень: в разных дистрибутивах могут использоваться разные сочетания клавиш.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Лёгкое резервное копирование'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Если надо сделать резервную копию папки и скопировать только изменившиеся файлы, то можно использовать для этого rsync (вам нужен аккаунт на удалённом компьютере):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$rsync -vare ssh jono@192.168.0.2:/home/jono/importantfiles/* /home/jono/backup/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Поиск самых больших файлов в текущей директории'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Можно столкнуться с проблемой, когда надо удалить несколько больших файлов. Их можно найти в текущей директории с помощью команды:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ls -lSrh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Ключ “r” означает, что большие файлы должны выводиться в конце. Следующей командой можно найти самые большие файлы MP3/MPEG:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ls -lSrh *.mp*&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Также можно найти самые большие директории:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$du -kx | egrep -v &amp;quot;\./.+/&amp;quot; | sort -n&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Оптимизация баз данных MySQL'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;При любом изменении структуры базы данных или удалении больших объёмов данных, файлы могут стать фрагментированными, что приводит к потере производительности. Просто запомните простое правило — запускать оптимизатор базы при любом изменении базы:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#mysqloptimize -A -u&amp;lt;username&amp;gt; -p&amp;lt;password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#mysqlcheck --optimize -A -u&amp;lt;username&amp;gt; -p&amp;lt;password&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Список открытых портов'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Получить список открытых портов в состоянии ''Listen'' в Linux очень просто, для этого достаточно выполнить:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#netstat -lnp&lt;br /&gt;
 Active Internet connections (only servers)&lt;br /&gt;
 Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name &lt;br /&gt;
 tcp 0 0 0.0.0.0:5280 0.0.0.0:* LISTEN 698/perl &lt;br /&gt;
 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 217/httpd tcp&lt;br /&gt;
 0 0 10.42.3.2:53 0.0.0.0:* LISTEN 220/named tcp&lt;br /&gt;
 0 0 10.42.4.6:53 0.0.0.0:* LISTEN 220/named tcp&lt;br /&gt;
 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 220/named tcp &lt;br /&gt;
 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 200/sshd udp &lt;br /&gt;
 0 0 0.0.0.0:32768 0.0.0.0:* 220/named udp &lt;br /&gt;
 0 0 10.42.3.2:53 0.0.0.0:* 220/named udp &lt;br /&gt;
 0 0 10.42.4.6:53 0.0.0.0:* 220/named udp &lt;br /&gt;
 0 0 127.0.0.1:53 0.0.0.0:* 220/named udp &lt;br /&gt;
 0 0 0.0.0.0:67 0.0.0.0:* 222/dhcpd raw &lt;br /&gt;
 0 0 0.0.0.0:1 0.0.0.0:* 7 222/dhcpd&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;В этом примере видно, что процесс с PID'ом 698 — процесс интерпретатора Perl, который слушает порт 5280. Если вы не root в системе, то система не покажет пути к программам.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Поиск занятых устройств'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Вы наверняка сталкивались с ситуацией, когда надо отмаунтить диск, но система при попытке отключения сообщает о том, что он занят. Одной командой можно узнать, какое приложение использует его:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof +D /mnt/windows&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Она показывает PID и команду запуска любого процесса, использующего /mnt/windows.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''Поиск изменённых сегодня файлов'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Например, утром вы создали файл, который именно сейчас очень нужен. Однако, вы не можете вспомнить его название. Вручную перебирать домашнюю директорию бессмысленно, где скопилась не одна тысяча файлов. Но есть небольшой приём, показывающий эффективность пайпов и объединения нескольких команд консоли:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ls -al --time-style=+%D | grep `date +%D`&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Параметры команды [[Ls_—_Команда_печати_содержимого_каталога|ls]] требуют вывода даты в определенном формате. Хитрость в том: то, что выдаст [[Ls_—_Команда_печати_содержимого_каталога|ls]], идет на вход [[grep]]. Параметр grep сами по себе команда (заключена в обратные апострофы), которая подставляет текущую дату в шаблон для отсева. Её легко модифицировать для поиска по другим датам, размеру файла и т.д.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Поиск больших файлов в Linux'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Поиск больших файлов особенно актуален когда на диске заканчивается место и приходится искать кандидатов на удаление. Самый лучший способ чтобы найти все самые большие файлы на хосте с Linux - воспользоваться командной строкой. В принципе не существует простой команды для поиска самых больших файлов в Linux. Однако, можно с лёгкостью получить список самых больших файлов, используя комбинацию нескольких простых команд.Выполните следующую комбинацию команд для поиска десяти самых больших файлов в Linux, начиная с директории &amp;lt;DIR&amp;gt; (измените &amp;lt;DIR&amp;gt; на директорию в которой Вы хотите запустить поиск):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#find &amp;lt;DIR&amp;gt; -mount -type f -ls 2&amp;gt; /dev/null | sort -rnk7 | head -10 | awk '{printf &amp;quot;%10d MB\t%s\n&amp;quot;,($7/1024)/1024,$NF}'&lt;br /&gt;
 106 MB /var/lib/mysql/ibdata1 &lt;br /&gt;
 94 MB /usr/lib/locale/locale-archive &lt;br /&gt;
 41 MB /scripts/20130206-015833.tar.gz &lt;br /&gt;
 41 MB /scripts/20130206-004839.tar.gz &lt;br /&gt;
 41 MB /scripts/20130206-130400.tar.gz &lt;br /&gt;
 41 MB /scripts/20130206-000442.tar.gz &lt;br /&gt;
 41 MB /scripts/20130206-132019.tar.gz &lt;br /&gt;
 41 MB /root/20130208-133954.tar.gz &lt;br /&gt;
 33 MB /var/log/messages-20130303 &lt;br /&gt;
 32 MB /var/lib/rpm/Packages&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Найти 10 самых больших фалов, начиная с '/home'&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#find /home -mount -type f -ls 2&amp;gt; /dev/null | sort -rnk7 | head -10 | awk '{printf &amp;quot;%10d MB\t%s\n&amp;quot;,($7/1024)/1024,$NF}'&lt;br /&gt;
 3007 MB /home/user/Desktop/share/linux-65835.iso &lt;br /&gt;
 448 MB /home/user/Pictures/Turkey/SAM_4590.AVI &lt;br /&gt;
 266 MB /home/user/Pictures/Turkey/SAM_4588.AVI &lt;br /&gt;
 173 MB /home/user/Camera/VID_20130909_120713.mp4 &lt;br /&gt;
 152 MB /home/user/Camera/VID_20130909_115427.mp4 &lt;br /&gt;
 133 MB /home/user/Camera/VID_20130909_210904.mp4 &lt;br /&gt;
 133 MB /home/user/Pictures/Paris/VID_20130928_182431.mp4 &lt;br /&gt;
 131 MB /home/user/Pictures/Turkey/SAM_4597.AVI &lt;br /&gt;
 129 MB /home/user/Pictures/Turkey/SAM_4641.AVI&lt;br /&gt;
 127 MB /home/user/Desktop/tmp/Camera/VID_20130911_164440.mp4&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Сортировка вывода по размеру файлов командой &amp;lt;code&amp;gt;du&amp;lt;/code&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#du -k /opt/ruby_projects/* | sort -nr | cut -f2 | xargs -d '\n' du -sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Определить дату установки Linux'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Есть несколько вариантов узнать дату и время установки:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ls -clt / | tail -n 1 | awk '{ print $7, $6, $8 }'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#tune2fs -l /dev/sda1 | grep create&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#LC_TIME=&amp;quot;en_DK&amp;quot; rpm -qia |grep &amp;quot;Install Date&amp;quot;|awk '{print $3}'|uniq |sort -r|tail -n 1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Очистка КЭШа оперативной памяти в Linux'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для того, чтобы посмотреть сколько оперативной памяти занято и сколько закешировано в данный момент, можно воспользоваться командой &amp;lt;code&amp;gt;free&amp;lt;/code&amp;gt;. С параметром -g она выведет информацию об использовании памяти в гигабайтах, с параметром -m в мегабайтах:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#free -g&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для очистки кеша страниц('''pagecache''') использовать команду:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#echo 1 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для очистки directory entry('''dentries''') и index node('''inode''') использовать команду:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#echo 2 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для очистки кеша страниц('''pagecache'''), directory entry('''dentries''') и index node('''inode''') использовать команду:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#echo 3 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Проверка количества открытых файлов для процесса'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;В примере ниже описана команда получения количества открытых процессом файлов, для процесса ''line4'':&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#for pid in `pidof line4`; do echo &amp;quot;$(&amp;lt; /proc/$pid/cmdline)&amp;quot;; egrep 'files|Limit' /proc/$pid/limits; \&lt;br /&gt;
echo &amp;quot;Currently open files: $(ls -1 /proc/$pid/fd | wc -l)&amp;quot;; echo; done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Вывод представлен на скриншоте ниже:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[File:Open files.PNG|1200px|center]]&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Просмотреть краткую информацию по сетевому интерфейсу'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для просмотра выполнить команду:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ip addr show &amp;lt;NIC&amp;gt; | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Подсчитать Количество Файлов(Директорий) в Папке'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Ниже приведены лучшие способы поиска и подсчета количества файлов и папок в конкретной директории.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Подсчитать количество файлов в текущей папке:&amp;lt;/p&amp;gt;&lt;br /&gt;
* Если Вам необходимо подсчитать довольно большое количество файлов, данный метод является самым быстрым:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ls -f . | wc -l&lt;br /&gt;
#find . -type f -maxdepth 1 | wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Команда рекурсивно считает количество файлов в текущей директории и всех её поддиректориях:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#find . -type f | wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Команда рекурсивно считает количество папок в текущей директории и всех её поддиректориях:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#find . -type d | wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Команда рекурсивно считает количество файлов с расширением &amp;quot;.txt&amp;quot; в текущей директории и всех её поддиректориях:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#find . -type f -name &amp;quot;*.txt&amp;quot; | wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Настройка ssh на авторизацию по ключам'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Бывают случаи, когда необходимо настроить ssh c доступом к серверам с использованием авторизации по ключам. Для этого необходимо выполнить следующие команды(на сервере с которого планируются подключения к серверам, используя ключи):&amp;lt;/p&amp;gt;&lt;br /&gt;
Переходим в директорию .ssh, расположенную в домашней директории пользователя:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#cd ~/.ssh/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Генерируем ключи, которые будем передавать. На все вопросы нажимаем клавишу ''Enter'':&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh-keygen&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Отправляем на сервер 192.168.1.21 содержимое ~/.ssh/id_rsa.pub в файл /home/user/.ssh/authorized_keys:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#cat ~/.ssh/id_rsa.pub | ssh user@192.168.1.21 'cat &amp;gt;&amp;gt; .ssh/authorized_keys'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Отправляем на сервер 192.168.1.21 команду, которая выставит права записи и чтения на файл authorized_keys только для владельца:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@192.168.1.21 'chmod 600 ~/.ssh/authorized_keys'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Отправляем на сервер 192.168.1.21 команду, которая выставит права записи и чтения и исполнения на директорию .ssh только для владельца:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@192.168.1.21 'chmod 700 ~/.ssh'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Вводим данную команду, для проверки, что авторизации по ключам работает:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@192.168.1.21&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Следует учитывать, что на домашнюю директорию пользователя и директорию .ssh(/home/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;lt;''username''&amp;gt;&amp;lt;/span&amp;gt;/.ssh) на удалённом сервере должны быть выставлены права '''''drwx------'''''('''700'''), а на файл /home/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;lt;''username''&amp;gt;&amp;lt;/span&amp;gt;/.ssh/authorized_keys '''''-rw-------'''''('''600''').&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Ошибка &amp;quot;Broken pipe&amp;quot; при авторизации пользователя по ssh'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Бывают случаи, когда при авторизации обычным пользователем по ssh появляется ошибка &amp;quot;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Broken pipe'''&amp;lt;/span&amp;gt;&amp;quot;. При этом авторизация под root может проходить успешно. Если из-под '''root''' выполнить команду &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''''su - &amp;lt;username&amp;gt;'''''&amp;lt;/span&amp;gt; и получить результат &amp;quot;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''su: cannot set user id: Resource temporarily unavailable'''&amp;lt;/span&amp;gt;&amp;quot; или &amp;quot;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''su:невозможно установить пользовательский id: Ресурс временно недоступен'''&amp;lt;/span&amp;gt;&amp;quot;, то надо посмотреть в сторону того, какое кол-во процессов разрешено запускать пользователю и какое кол-во процессов из-под этого пользователя запущенно на данный момент. Для этого необходимо выполнить следующие команды:&amp;lt;/p&amp;gt;&lt;br /&gt;
Команда покажет сколько процессов запущено от пользователя &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''&amp;lt;username&amp;gt;'''&amp;lt;/span&amp;gt; на данный момент:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ps -eLF|grep '&amp;lt;username&amp;gt;'|wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Команда покажет сколько файлов открыто от пользователя &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''&amp;lt;username&amp;gt;'''&amp;lt;/span&amp;gt; на данный момент:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -u '&amp;lt;username&amp;gt;'|wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Команда покажет сколько процессов разрешено запускать пользователям(&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''*'''&amp;lt;/span&amp;gt; - любой пользователь) в RHEL 6.x/CentOS 6.x:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#cat /etc/security/limits.d/90-nproc.conf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Команда покажет сколько процессов разрешено запускать пользователям(&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''*'''&amp;lt;/span&amp;gt; - любой пользователь) в RHEL 7.x/CentOS 7.x:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#cat /etc/security/limits.d/20-nproc.conf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В случае, если вывод команды &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;#ps -eLF|grep '&amp;lt;username&amp;gt;'|wc -l&amp;lt;/source&amp;gt; превышает указанное в 90-nproc.conf/20-nproc.conf значение, тогда необходимо это значение увеличить или закомментировать с последующей перезагрузкой параметров командой &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;#sysctl -p&amp;lt;/source&amp;gt;('''''правка параметров и перезагрузка выполняется из-под root''''').&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Копирование директорий на удалённый сервер используя tar, ssh, cat или dd'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Архивирование директории на удалённый сервер с использованием [[cat]]:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# tar zcvfp - /home/user/sourcedir | ssh user@remote_host &amp;quot;cat &amp;gt; ~/from_somehost.tar.gz&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
То, что [[tar]] выведет на стандартный вывод, перенаправляется на удалённый сервер ('''''user@remote_host'''''), где и запускается команда &amp;quot;'''''cat &amp;gt; ~/from_somehost.tar.gz'''''&amp;quot;. [[cat]] принимает на вход то, что выдал [[tar]], а затем всё это складывает в файл '''''~/from_somehost.tar.gz'''''.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Архивирование директории на удалённый сервер с [[dd]]:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#tar zcvfp - /home/user/sourcedir | ssh user@remote_host &amp;quot;dd of=~/from_somehost.tar.gz&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В этом примере вместо [[cat]] используется [[dd]] (disk destroy ;), у которой есть параметр '''of''' (output file), то есть тот, куда нужно складывать то, что пришло от [[tar]]. Остальное по аналогии должно быть понятно.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Архивирование  с удалённой машины на локальную с использованием [[cat]]:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@remote_host &amp;quot;tar zcvfp - /home/user/sourcedir&amp;quot; | cat &amp;gt; ~/from_somehost.tar.gz&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Архивирование  с удалённой машины на локальную с использованием [[dd]]:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@remote_host &amp;quot;tar zcvfp - /home/user/sourcedir&amp;quot; | dd of=~/from_somehost.tar.gz&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Распаковка удалённого архива на локальную машину:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@remote_host &amp;quot;cat /home/user/from_somehost.tar.gz&amp;quot; |tar xvfp -&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Работа с процессами'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
Часто бывает полезным узнать разного рода параметры уже запущенных процессов, а так же манипулировать ими. Рассмотрим несколько разных примеров по работе с процессами.&lt;br /&gt;
Много информации нам предоставляет файловая система '''procfs'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''procfs''' — виртуальная файловая система, используемая в ''UNIX-like'' ОС. '''procfs''' позволяет получить доступ к информации о системных процессах из ядра, она необходима для выполнения таких команд как [[ps]], [[w]], [[top]]. Обычно её монтируют на ''/proc''. '''procfs''' создаёт двухуровневое представление пространств процессов. На верхнем уровне процессы представляют собой директории, именованные в соответствии с их ''pid''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Некоторые файлы и директории из '''ProcFS''', где '''PID''' – идентификатор процесса или ''self'':&lt;br /&gt;
* /proc/'''PID'''/cmdline – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;аргументы командной строки&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/'''PID'''/environ – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;переменные окружения для данного процесса&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/'''PID'''/status – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;статус процесса&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/'''PID'''/fd – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;директория, содержащая символьные ссылки на каждый открытый файловый дескриптор&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/cpuinfo – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;информация о процессоре (производитель, модель, поколение и т.п.)&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/cmdline – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;параметры, передаваемые ядру при загрузке&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/uptime – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;количество секунд, прошедших с момента загрузки ядра и проведенных в режиме бездействия&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/version – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;содержит информацию о версии ядра, компилятора и другую информацию, связанную с загруженным ядром&amp;lt;/span&amp;gt;.&lt;br /&gt;
Посмотрев на размер файлов в каталоге ''/proc'', можно увидеть, что они все нулевого размера. Дело в том, что в действительности все эти файлы не существуют.&lt;br /&gt;
Примеры использования '''procfs''':&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1) Текущий рабочий каталог процесса&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# ls -la /proc/3165/cwd&lt;br /&gt;
lrwxrwxrwx 1 clamav clamav 0 Авг 18 16:07 /proc/3165/cwd -&amp;gt; /var/lib/clamav&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
где 3165 — номер pid’a процесса.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2) Вывести все переменные процесса&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# cat /proc/2361/environ | strings&lt;br /&gt;
XDG_SESSION_ID=1&lt;br /&gt;
TERM=xterm&lt;br /&gt;
SHELL=/bin/bash&lt;br /&gt;
SSH_CLIENT=10.0.2.2 1383 22&lt;br /&gt;
SSH_TTY=/dev/pts/0&lt;br /&gt;
USER=vaal&lt;br /&gt;
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:&lt;br /&gt;
*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:&lt;br /&gt;
*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:&lt;br /&gt;
*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:&lt;br /&gt;
*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:&lt;br /&gt;
*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:&lt;br /&gt;
*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:&lt;br /&gt;
*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:&lt;br /&gt;
*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:&lt;br /&gt;
*.spx=00;36:*.xspf=00;36:&lt;br /&gt;
DOCKER_TLS_VERIFY=0&lt;br /&gt;
MAIL=/var/mail/vaal&lt;br /&gt;
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games&lt;br /&gt;
PWD=/home/vaal&lt;br /&gt;
LANG=ru_RU.UTF-8&lt;br /&gt;
SHLVL=1&lt;br /&gt;
HOME=/home/vaal&lt;br /&gt;
LOGNAME=vaal&lt;br /&gt;
SSH_CONNECTION=10.0.2.2 1383 10.0.2.15 22&lt;br /&gt;
LESSOPEN=| /usr/bin/lesspipe %s&lt;br /&gt;
XDG_RUNTIME_DIR=/run/user/1000&lt;br /&gt;
LESSCLOSE=/usr/bin/lesspipe %s %s&lt;br /&gt;
_=/usr/bin/mc&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3) Удалили файл, используемый процессом. Как восстановить файл?&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
Попробовать поискать файл в каталоге /proc/'''PID'''/fd&lt;br /&gt;
Почему так можно делать? Всё дело в том, что при удалении файла, который всё-таки открыт процессом, файл перестал быть виден в файловой системе, но не исчез, и окончательно удалён он будет только когда закроется последний ссылающийся на него дескриптор. Каталог /proc/'''PID'''/fd содержит символьные ссылки на все открытые процессом '''PID''' дескрипторы.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4) Связь между /proc и sysctl(взято с [http://linuxcenter.ru Linux-center])&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
'''Sysctl''' использует файлы в ''/proc/sys'' как индивидуальные переменные, которые могут быть изменены. К примеру, файл в ''/proc/sys'', который представляет максимальное количество заголовков файлов в системе, ''/proc/sys/fs/file-max'', представлен как '''fs.file-max'''. Этот пример требует некоторых дополнительных пояснений в записи '''sysctl'''. Так как '''sysctl''' может только изменять переменные в директории '''/proc/sys''', то часть имени переменной обозначающая директорию отбрасывается. Другое изменение касается слэшей, которые заменяются на точки. Вот два простых правила для преобразования файлов в ''/proc/sys'' и переменных в '''sysctl''':&amp;lt;br /&amp;gt;&lt;br /&gt;
* Отбросьте ''/proc/sys'' от начала.&lt;br /&gt;
* Замените слэши на точки в имени файла.&lt;br /&gt;
Эти два правила позволят вам преобразовать любой файл в ''/proc/sys'' в любое имя переменной в '''sysctl'''. Обычное преобразование имени файла в переменную:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/proc/sys/dir/file --&amp;gt; dir.file&lt;br /&gt;
dir1.dir2.file --&amp;gt; /proc/sys/dir1/dir2/file&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Можно отобразить все переменные, доступные для изменения, используя команду '''sysctl -a'''. Переменные могут также быть изменены с помощью '''sysctl''', которая выполняет ту же работу что и '''echo'''. Эта запись объясняет это:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sysctl -w dir.file=&amp;quot;value&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Используя пример с ''file-max'', мы можем изменить это значение на 16384, используя один из двух методов:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sysctl -w fs.file-max=&amp;quot;16384&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
или&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo &amp;quot;16384&amp;quot; &amp;gt; /proc/sys/fs/file-max&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5) Максимальное количество процессов&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
По умолчанию процессов 32768. Узнать текущее значение можно так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#sysctl kernel.pid_max&lt;br /&gt;
kernel.pid_max = 32768&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Изменить это число можно так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#sysctl kernel.pid_max=256000&lt;br /&gt;
kernel.pid_max = 256000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Это возможно только на '''64'''-битных системах. Такое ограничение связано с разрядностью '''32'''-битного числа, которое не может превышать ''32768''. А поскольку эти лимиты определены как тип '''int''', то соответственно действует такое ограничение. Если же вы попробуете изменить, то получите такое сообщение:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# sysctl kernel.pid_max=327600&lt;br /&gt;
error: &amp;quot;Invalid argument&amp;quot; setting key &amp;quot;kernel.pid_max&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6) Утилита lsof&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
Утилита, служит для вывода информации о том, какие файлы используются теми или иными процессами.Ниже будет продемонстрировано несколько полезных примеров работы этой утилиты.&lt;br /&gt;
* Список всех открытых файлов&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$lsof&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Показывает все открытые файлы текущего пользователя (если '''root''' — тогда все файлы) всеми процессами.&lt;br /&gt;
* Какие процессы используют файл file&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof /path/to/file&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Можно указать несколько файлов через пробел, тогда получите суммарный список процессов.&lt;br /&gt;
&lt;br /&gt;
* Какие процессы/файлы использует пользователь ''user''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -u user&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Если хотите узнать информацию по нескольким пользователям, разделите их имена запятой. Для групп используйте конструкцию ‘-g groupname’&lt;br /&gt;
&lt;br /&gt;
* Какие процессы открыты программой prog_name&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -c prog_name&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Можно указывать неполное имя. [lsof] будет искать по указанному буквосочетанию. Если нужно узнать информацию для нескольких приложений, разделяйте их имена пробелом и перед каждым именем должно идти ‘-c’&lt;br /&gt;
&lt;br /&gt;
* Какие файлы открыты pid’ом NNN&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -p NNN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Список всех открытых интернет сокетов&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -i&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Если нужно посмотреть только tcp сокеты, то после ‘i’ через пробел добавляем ''tcp''. Аналогично и для ''udp''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Так же можно посмотреть и список всех unix сокетов:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -U&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Просмотр ресурсов в realtime&lt;br /&gt;
Можно задать период обновления информации, например, 1 секунда:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -r 1 -u username&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
будет обновлять информацию об использованных пользователем ''username'' процессах, каждую секунду.&lt;br /&gt;
&lt;br /&gt;
* Вывод только pid’ов&lt;br /&gt;
По умолчанию, выводится таблица с колонками. Но если требуется вывести только сами pid’ы, можно воспользоваться такой командой:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -t -u username&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;7) Поиск всех pid’ов процесса&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
Есть одна замечательная утилита [[pidof]], которая позволяет найти все pid’ы связанные с определённым процессом. К примеру, найдём все pid’ы apache2:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# pidof apache2&lt;br /&gt;
9370 9369 9368 9367 9364 9362 9314 9280 9277 9268 4940&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В большинстве дистрибутивов это обычный симлинк на ''/sbin/killall5'':&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#file /bin/pidof&lt;br /&gt;
/bin/pidof: symbolic link to `../sbin/killall5'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Быстрое копирование данных при помощи Python'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Иногда необходимо быстро предоставить доступ к файлам на машине Linux. В случае, если на такой машине имеется установленный python, то можно запустить простой HTTP-сервер, который предоставит такой доступ. Для этого перейдём в директорию содержащую целевые файлы и выполним команду интерпретатора python, который откроет HTTP-сервер на порту 8080:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
$ cd &amp;lt;source_dir&amp;gt;&lt;br /&gt;
$ python -m SimpleHTTPServer 8080&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&lt;br /&gt;
или таким образом:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
$ cd &amp;lt;source_dir&amp;gt;&lt;br /&gt;
$ python3 -m http.server 8080&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ссылки ===&lt;br /&gt;
[https://nixadmin.ru/copy_on_the_fly nixadmin.ru — копирование &amp;quot;на лету&amp;quot;]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://eax.me/ssh-backup/ Резервное копирование базы данных и файлов по SSH]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://skeletor.org.ua/?p=1506 Работаем с процессами]&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=Faq&amp;diff=711</id>
		<title>Faq</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=Faq&amp;diff=711"/>
				<updated>2023-10-31T14:05:07Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Отличие обычного пользователя Linux от профессионала заключается во времени, проведённом за изучением хитростей и приёмов, которые позволяют решать не быстрые задачи в одно мгновение. Если вы хотите увеличить скорость работы без долгого набивания шишек в консоли, здесь приводится список лёгких для изучения приёмов. Они помогут сделать вашу работу эффективной и менее трудозатратной.&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Список не ваших процессов'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для получения списка всех процессов, запущенных &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;''не текущим пользователем''&amp;lt;/span&amp;gt;, выполните команду:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ps aux | grep -v `whoami`&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для получения списка из 10 процессов, которые сильнее всего загружают систему, выполните команду:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ps aux --sort=-%cpu | grep -m 11 -v `whoami`&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Замена текста в файлах'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Если надо заменить текст не в одном файле, то имеется несколько способов. Для того, чтобы заменить текст '''''«Windows»''''' на '''''«Linux»''''' во всех файлах в текущей директории, название которой начинается с «test», введите в консоли('''''необходим интерпретатор perl'''''):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$perl -i -pe 's/Windows/Linux/;' test*&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Чтобы провести ту же операцию во всех поддиректориях:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$find. -name '*.txt' -print | xargs perl -pi -e's/Windows/Linux/ig' *.txt&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Если Вы хотите сделать то же самое для на обычных файлов со множеством переносов строк и странных символов (файл — в другой кодировке):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$find -type f -name '*.txt' -print0 | xargs --null perl -pi -e 's/Windows/Linux/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Исправить консоль'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Если использовать команду [[less]] или [[cat]] для просмотра файла, в конце которого — бинарные данные, то можно легко испортить консоль. Потому что в бинарных данных могут попасться любые сочетания управляющих кодов: компьютер будет издавать звуки «бип-бип», появятся прикольные символы, странные цветовые сочетания. В конце концов, шрифт изменится на какие-то иероглифы. Bash, очевидно, продолжает работать, но вы ничего не можете прочитать и сделать. Просто наберите в консоли команду инициализации:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$reset&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Запуск множественных X-сессий'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Если надо дать кому-нибудь доступ к Вашему компьютеру, то вы откроете для себя, что это не всегда необходимо. Если предположить, что компьютер стартует в графическом режиме (''runlevel 5''), то, одновременно нажав '''Ctrl+Alt+&amp;lt;F7&amp;gt;''', вы попадете в консоль. Введите логин и пароль, потом исполните следующий код:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$startx -- :1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;чтобы войти в графическое окружение. Чтобы вернуться в предыдущую сессию, нажмите '''Ctrl+Alt+&amp;lt;F7&amp;gt;''', для ещё одного возврата — '''Ctrl+Alt+&amp;lt;F8&amp;gt;'''. Вы можете этот трюк: клавиши с '''F1''' по '''F6''' отвечают за &amp;lt;u&amp;gt;6 сессий консоли&amp;lt;/u&amp;gt;, а клавиши с '''F7''' по '''F12''' — за &amp;lt;u&amp;gt;6 Х-сессий&amp;lt;/u&amp;gt;. Подводный камень: в разных дистрибутивах могут использоваться разные сочетания клавиш.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Лёгкое резервное копирование'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Если надо сделать резервную копию папки и скопировать только изменившиеся файлы, то можно использовать для этого rsync (вам нужен аккаунт на удалённом компьютере):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$rsync -vare ssh jono@192.168.0.2:/home/jono/importantfiles/* /home/jono/backup/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Поиск самых больших файлов в текущей директории'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Можно столкнуться с проблемой, когда надо удалить несколько больших файлов. Их можно найти в текущей директории с помощью команды:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ls -lSrh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Ключ “r” означает, что большие файлы должны выводиться в конце. Следующей командой можно найти самые большие файлы MP3/MPEG:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ls -lSrh *.mp*&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Также можно найти самые большие директории:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$du -kx | egrep -v &amp;quot;\./.+/&amp;quot; | sort -n&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Оптимизация баз данных MySQL'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;При любом изменении структуры базы данных или удалении больших объёмов данных, файлы могут стать фрагментированными, что приводит к потере производительности. Просто запомните простое правило — запускать оптимизатор базы при любом изменении базы:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#mysqloptimize -A -u&amp;lt;username&amp;gt; -p&amp;lt;password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#mysqlcheck --optimize -A -u&amp;lt;username&amp;gt; -p&amp;lt;password&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Список открытых портов'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Получить список открытых портов в состоянии ''Listen'' в Linux очень просто, для этого достаточно выполнить:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#netstat -lnp&lt;br /&gt;
 Active Internet connections (only servers)&lt;br /&gt;
 Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name &lt;br /&gt;
 tcp 0 0 0.0.0.0:5280 0.0.0.0:* LISTEN 698/perl &lt;br /&gt;
 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 217/httpd tcp&lt;br /&gt;
 0 0 10.42.3.2:53 0.0.0.0:* LISTEN 220/named tcp&lt;br /&gt;
 0 0 10.42.4.6:53 0.0.0.0:* LISTEN 220/named tcp&lt;br /&gt;
 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 220/named tcp &lt;br /&gt;
 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 200/sshd udp &lt;br /&gt;
 0 0 0.0.0.0:32768 0.0.0.0:* 220/named udp &lt;br /&gt;
 0 0 10.42.3.2:53 0.0.0.0:* 220/named udp &lt;br /&gt;
 0 0 10.42.4.6:53 0.0.0.0:* 220/named udp &lt;br /&gt;
 0 0 127.0.0.1:53 0.0.0.0:* 220/named udp &lt;br /&gt;
 0 0 0.0.0.0:67 0.0.0.0:* 222/dhcpd raw &lt;br /&gt;
 0 0 0.0.0.0:1 0.0.0.0:* 7 222/dhcpd&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;В этом примере видно, что процесс с PID'ом 698 — процесс интерпретатора Perl, который слушает порт 5280. Если вы не root в системе, то система не покажет пути к программам.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Поиск занятых устройств'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Вы наверняка сталкивались с ситуацией, когда надо отмаунтить диск, но система при попытке отключения сообщает о том, что он занят. Одной командой можно узнать, какое приложение использует его:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof +D /mnt/windows&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Она показывает PID и команду запуска любого процесса, использующего /mnt/windows.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''Поиск изменённых сегодня файлов'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Например, утром вы создали файл, который именно сейчас очень нужен. Однако, вы не можете вспомнить его название. Вручную перебирать домашнюю директорию бессмысленно, где скопилась не одна тысяча файлов. Но есть небольшой приём, показывающий эффективность пайпов и объединения нескольких команд консоли:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ls -al --time-style=+%D | grep `date +%D`&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Параметры команды [[Ls_—_Команда_печати_содержимого_каталога|ls]] требуют вывода даты в определенном формате. Хитрость в том: то, что выдаст [[Ls_—_Команда_печати_содержимого_каталога|ls]], идет на вход [[grep]]. Параметр grep сами по себе команда (заключена в обратные апострофы), которая подставляет текущую дату в шаблон для отсева. Её легко модифицировать для поиска по другим датам, размеру файла и т.д.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Поиск больших файлов в Linux'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Поиск больших файлов особенно актуален когда на диске заканчивается место и приходится искать кандидатов на удаление. Самый лучший способ чтобы найти все самые большие файлы на хосте с Linux - воспользоваться командной строкой. В принципе не существует простой команды для поиска самых больших файлов в Linux. Однако, можно с лёгкостью получить список самых больших файлов, используя комбинацию нескольких простых команд.Выполните следующую комбинацию команд для поиска десяти самых больших файлов в Linux, начиная с директории &amp;lt;DIR&amp;gt; (измените &amp;lt;DIR&amp;gt; на директорию в которой Вы хотите запустить поиск):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#find &amp;lt;DIR&amp;gt; -mount -type f -ls 2&amp;gt; /dev/null | sort -rnk7 | head -10 | awk '{printf &amp;quot;%10d MB\t%s\n&amp;quot;,($7/1024)/1024,$NF}'&lt;br /&gt;
 106 MB /var/lib/mysql/ibdata1 &lt;br /&gt;
 94 MB /usr/lib/locale/locale-archive &lt;br /&gt;
 41 MB /scripts/20130206-015833.tar.gz &lt;br /&gt;
 41 MB /scripts/20130206-004839.tar.gz &lt;br /&gt;
 41 MB /scripts/20130206-130400.tar.gz &lt;br /&gt;
 41 MB /scripts/20130206-000442.tar.gz &lt;br /&gt;
 41 MB /scripts/20130206-132019.tar.gz &lt;br /&gt;
 41 MB /root/20130208-133954.tar.gz &lt;br /&gt;
 33 MB /var/log/messages-20130303 &lt;br /&gt;
 32 MB /var/lib/rpm/Packages&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Найти 10 самых больших фалов, начиная с '/home'&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#find /home -mount -type f -ls 2&amp;gt; /dev/null | sort -rnk7 | head -10 | awk '{printf &amp;quot;%10d MB\t%s\n&amp;quot;,($7/1024)/1024,$NF}'&lt;br /&gt;
 3007 MB /home/user/Desktop/share/linux-65835.iso &lt;br /&gt;
 448 MB /home/user/Pictures/Turkey/SAM_4590.AVI &lt;br /&gt;
 266 MB /home/user/Pictures/Turkey/SAM_4588.AVI &lt;br /&gt;
 173 MB /home/user/Camera/VID_20130909_120713.mp4 &lt;br /&gt;
 152 MB /home/user/Camera/VID_20130909_115427.mp4 &lt;br /&gt;
 133 MB /home/user/Camera/VID_20130909_210904.mp4 &lt;br /&gt;
 133 MB /home/user/Pictures/Paris/VID_20130928_182431.mp4 &lt;br /&gt;
 131 MB /home/user/Pictures/Turkey/SAM_4597.AVI &lt;br /&gt;
 129 MB /home/user/Pictures/Turkey/SAM_4641.AVI&lt;br /&gt;
 127 MB /home/user/Desktop/tmp/Camera/VID_20130911_164440.mp4&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Сортировка вывода по размеру файлов командой &amp;lt;code&amp;gt;du&amp;lt;/code&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#du -k /opt/ruby_projects/* | sort -nr | cut -f2 | xargs -d '\n' du -sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Определить дату установки Linux'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Есть несколько вариантов узнать дату и время установки:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# ls -clt / | tail -n 1 | awk '{ print $7, $6, $8 }'&lt;br /&gt;
# tune2fs -l /dev/sda1 | grep create&lt;br /&gt;
# LC_TIME=&amp;quot;en_DK&amp;quot; rpm -qia |grep &amp;quot;Install Date&amp;quot;|awk '{print $3}'|uniq |sort -r|tail -n 1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Очистка КЭШа оперативной памяти в Linux'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для того, чтобы посмотреть сколько оперативной памяти занято и сколько закешировано в данный момент, можно воспользоваться командой &amp;lt;code&amp;gt;free&amp;lt;/code&amp;gt;. С параметром -g она выведет информацию об использовании памяти в гигабайтах, с параметром -m в мегабайтах:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#free -g&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для очистки кеша страниц('''pagecache''') использовать команду:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#echo 1 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для очистки directory entry('''dentries''') и index node('''inode''') использовать команду:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#echo 2 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для очистки кеша страниц('''pagecache'''), directory entry('''dentries''') и index node('''inode''') использовать команду:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#echo 3 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Проверка количества открытых файлов для процесса'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;В примере ниже описана команда получения количества открытых процессом файлов, для процесса ''line4'':&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#for pid in `pidof line4`; do echo &amp;quot;$(&amp;lt; /proc/$pid/cmdline)&amp;quot;; egrep 'files|Limit' /proc/$pid/limits; \&lt;br /&gt;
echo &amp;quot;Currently open files: $(ls -1 /proc/$pid/fd | wc -l)&amp;quot;; echo; done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Вывод представлен на скриншоте ниже:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[File:Open files.PNG|1200px|center]]&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Просмотреть краткую информацию по сетевому интерфейсу'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для просмотра выполнить команду:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ip addr show &amp;lt;NIC&amp;gt; | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Подсчитать Количество Файлов(Директорий) в Папке'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Ниже приведены лучшие способы поиска и подсчета количества файлов и папок в конкретной директории.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Подсчитать количество файлов в текущей папке:&amp;lt;/p&amp;gt;&lt;br /&gt;
* Если Вам необходимо подсчитать довольно большое количество файлов, данный метод является самым быстрым:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ls -f . | wc -l&lt;br /&gt;
#find . -type f -maxdepth 1 | wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Команда рекурсивно считает количество файлов в текущей директории и всех её поддиректориях:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#find . -type f | wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Команда рекурсивно считает количество папок в текущей директории и всех её поддиректориях:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#find . -type d | wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Команда рекурсивно считает количество файлов с расширением &amp;quot;.txt&amp;quot; в текущей директории и всех её поддиректориях:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#find . -type f -name &amp;quot;*.txt&amp;quot; | wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Настройка ssh на авторизацию по ключам'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Бывают случаи, когда необходимо настроить ssh c доступом к серверам с использованием авторизации по ключам. Для этого необходимо выполнить следующие команды(на сервере с которого планируются подключения к серверам, используя ключи):&amp;lt;/p&amp;gt;&lt;br /&gt;
Переходим в директорию .ssh, расположенную в домашней директории пользователя:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#cd ~/.ssh/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Генерируем ключи, которые будем передавать. На все вопросы нажимаем клавишу ''Enter'':&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh-keygen&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Отправляем на сервер 192.168.1.21 содержимое ~/.ssh/id_rsa.pub в файл /home/user/.ssh/authorized_keys:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#cat ~/.ssh/id_rsa.pub | ssh user@192.168.1.21 'cat &amp;gt;&amp;gt; .ssh/authorized_keys'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Отправляем на сервер 192.168.1.21 команду, которая выставит права записи и чтения на файл authorized_keys только для владельца:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@192.168.1.21 'chmod 600 ~/.ssh/authorized_keys'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Отправляем на сервер 192.168.1.21 команду, которая выставит права записи и чтения и исполнения на директорию .ssh только для владельца:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@192.168.1.21 'chmod 700 ~/.ssh'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Вводим данную команду, для проверки, что авторизации по ключам работает:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@192.168.1.21&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Следует учитывать, что на домашнюю директорию пользователя и директорию .ssh(/home/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;lt;''username''&amp;gt;&amp;lt;/span&amp;gt;/.ssh) на удалённом сервере должны быть выставлены права '''''drwx------'''''('''700'''), а на файл /home/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;lt;''username''&amp;gt;&amp;lt;/span&amp;gt;/.ssh/authorized_keys '''''-rw-------'''''('''600''').&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Ошибка &amp;quot;Broken pipe&amp;quot; при авторизации пользователя по ssh'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Бывают случаи, когда при авторизации обычным пользователем по ssh появляется ошибка &amp;quot;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Broken pipe'''&amp;lt;/span&amp;gt;&amp;quot;. При этом авторизация под root может проходить успешно. Если из-под '''root''' выполнить команду &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''''su - &amp;lt;username&amp;gt;'''''&amp;lt;/span&amp;gt; и получить результат &amp;quot;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''su: cannot set user id: Resource temporarily unavailable'''&amp;lt;/span&amp;gt;&amp;quot; или &amp;quot;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''su:невозможно установить пользовательский id: Ресурс временно недоступен'''&amp;lt;/span&amp;gt;&amp;quot;, то надо посмотреть в сторону того, какое кол-во процессов разрешено запускать пользователю и какое кол-во процессов из-под этого пользователя запущенно на данный момент. Для этого необходимо выполнить следующие команды:&amp;lt;/p&amp;gt;&lt;br /&gt;
Команда покажет сколько процессов запущено от пользователя &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''&amp;lt;username&amp;gt;'''&amp;lt;/span&amp;gt; на данный момент:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ps -eLF|grep '&amp;lt;username&amp;gt;'|wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Команда покажет сколько файлов открыто от пользователя &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''&amp;lt;username&amp;gt;'''&amp;lt;/span&amp;gt; на данный момент:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -u '&amp;lt;username&amp;gt;'|wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Команда покажет сколько процессов разрешено запускать пользователям(&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''*'''&amp;lt;/span&amp;gt; - любой пользователь) в RHEL 6.x/CentOS 6.x:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#cat /etc/security/limits.d/90-nproc.conf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Команда покажет сколько процессов разрешено запускать пользователям(&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''*'''&amp;lt;/span&amp;gt; - любой пользователь) в RHEL 7.x/CentOS 7.x:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#cat /etc/security/limits.d/20-nproc.conf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В случае, если вывод команды &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;#ps -eLF|grep '&amp;lt;username&amp;gt;'|wc -l&amp;lt;/source&amp;gt; превышает указанное в 90-nproc.conf/20-nproc.conf значение, тогда необходимо это значение увеличить или закомментировать с последующей перезагрузкой параметров командой &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;#sysctl -p&amp;lt;/source&amp;gt;('''''правка параметров и перезагрузка выполняется из-под root''''').&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Копирование директорий на удалённый сервер используя tar, ssh, cat или dd'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Архивирование директории на удалённый сервер с использованием [[cat]]:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# tar zcvfp - /home/user/sourcedir | ssh user@remote_host &amp;quot;cat &amp;gt; ~/from_somehost.tar.gz&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
То, что [[tar]] выведет на стандартный вывод, перенаправляется на удалённый сервер ('''''user@remote_host'''''), где и запускается команда &amp;quot;'''''cat &amp;gt; ~/from_somehost.tar.gz'''''&amp;quot;. [[cat]] принимает на вход то, что выдал [[tar]], а затем всё это складывает в файл '''''~/from_somehost.tar.gz'''''.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Архивирование директории на удалённый сервер с [[dd]]:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#tar zcvfp - /home/user/sourcedir | ssh user@remote_host &amp;quot;dd of=~/from_somehost.tar.gz&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В этом примере вместо [[cat]] используется [[dd]] (disk destroy ;), у которой есть параметр '''of''' (output file), то есть тот, куда нужно складывать то, что пришло от [[tar]]. Остальное по аналогии должно быть понятно.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Архивирование  с удалённой машины на локальную с использованием [[cat]]:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@remote_host &amp;quot;tar zcvfp - /home/user/sourcedir&amp;quot; | cat &amp;gt; ~/from_somehost.tar.gz&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Архивирование  с удалённой машины на локальную с использованием [[dd]]:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@remote_host &amp;quot;tar zcvfp - /home/user/sourcedir&amp;quot; | dd of=~/from_somehost.tar.gz&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Распаковка удалённого архива на локальную машину:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@remote_host &amp;quot;cat /home/user/from_somehost.tar.gz&amp;quot; |tar xvfp -&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Работа с процессами'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
Часто бывает полезным узнать разного рода параметры уже запущенных процессов, а так же манипулировать ими. Рассмотрим несколько разных примеров по работе с процессами.&lt;br /&gt;
Много информации нам предоставляет файловая система '''procfs'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''procfs''' — виртуальная файловая система, используемая в ''UNIX-like'' ОС. '''procfs''' позволяет получить доступ к информации о системных процессах из ядра, она необходима для выполнения таких команд как [[ps]], [[w]], [[top]]. Обычно её монтируют на ''/proc''. '''procfs''' создаёт двухуровневое представление пространств процессов. На верхнем уровне процессы представляют собой директории, именованные в соответствии с их ''pid''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Некоторые файлы и директории из '''ProcFS''', где '''PID''' – идентификатор процесса или ''self'':&lt;br /&gt;
* /proc/'''PID'''/cmdline – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;аргументы командной строки&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/'''PID'''/environ – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;переменные окружения для данного процесса&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/'''PID'''/status – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;статус процесса&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/'''PID'''/fd – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;директория, содержащая символьные ссылки на каждый открытый файловый дескриптор&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/cpuinfo – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;информация о процессоре (производитель, модель, поколение и т.п.)&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/cmdline – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;параметры, передаваемые ядру при загрузке&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/uptime – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;количество секунд, прошедших с момента загрузки ядра и проведенных в режиме бездействия&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/version – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;содержит информацию о версии ядра, компилятора и другую информацию, связанную с загруженным ядром&amp;lt;/span&amp;gt;.&lt;br /&gt;
Посмотрев на размер файлов в каталоге ''/proc'', можно увидеть, что они все нулевого размера. Дело в том, что в действительности все эти файлы не существуют.&lt;br /&gt;
Примеры использования '''procfs''':&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1) Текущий рабочий каталог процесса&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# ls -la /proc/3165/cwd&lt;br /&gt;
lrwxrwxrwx 1 clamav clamav 0 Авг 18 16:07 /proc/3165/cwd -&amp;gt; /var/lib/clamav&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
где 3165 — номер pid’a процесса.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2) Вывести все переменные процесса&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# cat /proc/2361/environ | strings&lt;br /&gt;
XDG_SESSION_ID=1&lt;br /&gt;
TERM=xterm&lt;br /&gt;
SHELL=/bin/bash&lt;br /&gt;
SSH_CLIENT=10.0.2.2 1383 22&lt;br /&gt;
SSH_TTY=/dev/pts/0&lt;br /&gt;
USER=vaal&lt;br /&gt;
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:&lt;br /&gt;
*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:&lt;br /&gt;
*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:&lt;br /&gt;
*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:&lt;br /&gt;
*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:&lt;br /&gt;
*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:&lt;br /&gt;
*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:&lt;br /&gt;
*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:&lt;br /&gt;
*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:&lt;br /&gt;
*.spx=00;36:*.xspf=00;36:&lt;br /&gt;
DOCKER_TLS_VERIFY=0&lt;br /&gt;
MAIL=/var/mail/vaal&lt;br /&gt;
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games&lt;br /&gt;
PWD=/home/vaal&lt;br /&gt;
LANG=ru_RU.UTF-8&lt;br /&gt;
SHLVL=1&lt;br /&gt;
HOME=/home/vaal&lt;br /&gt;
LOGNAME=vaal&lt;br /&gt;
SSH_CONNECTION=10.0.2.2 1383 10.0.2.15 22&lt;br /&gt;
LESSOPEN=| /usr/bin/lesspipe %s&lt;br /&gt;
XDG_RUNTIME_DIR=/run/user/1000&lt;br /&gt;
LESSCLOSE=/usr/bin/lesspipe %s %s&lt;br /&gt;
_=/usr/bin/mc&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3) Удалили файл, используемый процессом. Как восстановить файл?&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
Попробовать поискать файл в каталоге /proc/'''PID'''/fd&lt;br /&gt;
Почему так можно делать? Всё дело в том, что при удалении файла, который всё-таки открыт процессом, файл перестал быть виден в файловой системе, но не исчез, и окончательно удалён он будет только когда закроется последний ссылающийся на него дескриптор. Каталог /proc/'''PID'''/fd содержит символьные ссылки на все открытые процессом '''PID''' дескрипторы.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4) Связь между /proc и sysctl(взято с [http://linuxcenter.ru Linux-center])&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
'''Sysctl''' использует файлы в ''/proc/sys'' как индивидуальные переменные, которые могут быть изменены. К примеру, файл в ''/proc/sys'', который представляет максимальное количество заголовков файлов в системе, ''/proc/sys/fs/file-max'', представлен как '''fs.file-max'''. Этот пример требует некоторых дополнительных пояснений в записи '''sysctl'''. Так как '''sysctl''' может только изменять переменные в директории '''/proc/sys''', то часть имени переменной обозначающая директорию отбрасывается. Другое изменение касается слэшей, которые заменяются на точки. Вот два простых правила для преобразования файлов в ''/proc/sys'' и переменных в '''sysctl''':&amp;lt;br /&amp;gt;&lt;br /&gt;
* Отбросьте ''/proc/sys'' от начала.&lt;br /&gt;
* Замените слэши на точки в имени файла.&lt;br /&gt;
Эти два правила позволят вам преобразовать любой файл в ''/proc/sys'' в любое имя переменной в '''sysctl'''. Обычное преобразование имени файла в переменную:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/proc/sys/dir/file --&amp;gt; dir.file&lt;br /&gt;
dir1.dir2.file --&amp;gt; /proc/sys/dir1/dir2/file&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Можно отобразить все переменные, доступные для изменения, используя команду '''sysctl -a'''. Переменные могут также быть изменены с помощью '''sysctl''', которая выполняет ту же работу что и '''echo'''. Эта запись объясняет это:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sysctl -w dir.file=&amp;quot;value&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Используя пример с ''file-max'', мы можем изменить это значение на 16384, используя один из двух методов:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sysctl -w fs.file-max=&amp;quot;16384&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
или&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo &amp;quot;16384&amp;quot; &amp;gt; /proc/sys/fs/file-max&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5) Максимальное количество процессов&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
По умолчанию процессов 32768. Узнать текущее значение можно так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#sysctl kernel.pid_max&lt;br /&gt;
kernel.pid_max = 32768&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Изменить это число можно так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#sysctl kernel.pid_max=256000&lt;br /&gt;
kernel.pid_max = 256000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Это возможно только на '''64'''-битных системах. Такое ограничение связано с разрядностью '''32'''-битного числа, которое не может превышать ''32768''. А поскольку эти лимиты определены как тип '''int''', то соответственно действует такое ограничение. Если же вы попробуете изменить, то получите такое сообщение:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# sysctl kernel.pid_max=327600&lt;br /&gt;
error: &amp;quot;Invalid argument&amp;quot; setting key &amp;quot;kernel.pid_max&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6) Утилита lsof&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
Утилита, служит для вывода информации о том, какие файлы используются теми или иными процессами.Ниже будет продемонстрировано несколько полезных примеров работы этой утилиты.&lt;br /&gt;
* Список всех открытых файлов&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$lsof&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Показывает все открытые файлы текущего пользователя (если '''root''' — тогда все файлы) всеми процессами.&lt;br /&gt;
* Какие процессы используют файл file&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof /path/to/file&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Можно указать несколько файлов через пробел, тогда получите суммарный список процессов.&lt;br /&gt;
&lt;br /&gt;
* Какие процессы/файлы использует пользователь ''user''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -u user&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Если хотите узнать информацию по нескольким пользователям, разделите их имена запятой. Для групп используйте конструкцию ‘-g groupname’&lt;br /&gt;
&lt;br /&gt;
* Какие процессы открыты программой prog_name&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -c prog_name&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Можно указывать неполное имя. [lsof] будет искать по указанному буквосочетанию. Если нужно узнать информацию для нескольких приложений, разделяйте их имена пробелом и перед каждым именем должно идти ‘-c’&lt;br /&gt;
&lt;br /&gt;
* Какие файлы открыты pid’ом NNN&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -p NNN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Список всех открытых интернет сокетов&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -i&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Если нужно посмотреть только tcp сокеты, то после ‘i’ через пробел добавляем ''tcp''. Аналогично и для ''udp''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Так же можно посмотреть и список всех unix сокетов:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -U&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Просмотр ресурсов в realtime&lt;br /&gt;
Можно задать период обновления информации, например, 1 секунда:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -r 1 -u username&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
будет обновлять информацию об использованных пользователем ''username'' процессах, каждую секунду.&lt;br /&gt;
&lt;br /&gt;
* Вывод только pid’ов&lt;br /&gt;
По умолчанию, выводится таблица с колонками. Но если требуется вывести только сами pid’ы, можно воспользоваться такой командой:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -t -u username&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;7) Поиск всех pid’ов процесса&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
Есть одна замечательная утилита [[pidof]], которая позволяет найти все pid’ы связанные с определённым процессом. К примеру, найдём все pid’ы apache2:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# pidof apache2&lt;br /&gt;
9370 9369 9368 9367 9364 9362 9314 9280 9277 9268 4940&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В большинстве дистрибутивов это обычный симлинк на ''/sbin/killall5'':&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#file /bin/pidof&lt;br /&gt;
/bin/pidof: symbolic link to `../sbin/killall5'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Быстрое копирование данных при помощи Python'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Иногда необходимо быстро предоставить доступ к файлам на машине Linux. В случае, если на такой машине имеется установленный python, то можно запустить простой HTTP-сервер, который предоставит такой доступ. Для этого перейдём в директорию содержащую целевые файлы и выполним команду интерпретатора python, который откроет HTTP-сервер на порту 8080:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
$ cd &amp;lt;source_dir&amp;gt;&lt;br /&gt;
$ python -m SimpleHTTPServer 8080&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&lt;br /&gt;
или таким образом:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
$ cd &amp;lt;source_dir&amp;gt;&lt;br /&gt;
$ python3 -m http.server 8080&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ссылки ===&lt;br /&gt;
[https://nixadmin.ru/copy_on_the_fly nixadmin.ru — копирование &amp;quot;на лету&amp;quot;]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://eax.me/ssh-backup/ Резервное копирование базы данных и файлов по SSH]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://skeletor.org.ua/?p=1506 Работаем с процессами]&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=710</id>
		<title>Заглавная страница</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=710"/>
				<updated>2023-04-10T07:35:23Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: Ссылка на профиль ВК&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:God_yes.JPG|center]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;center&amp;gt;'''&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Личная WIKI&amp;lt;/span&amp;gt;''' ''тов. [http://vk.com/artem.vereshchaga Верещаги Артёма]'' '''''&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;'''''&amp;lt;/center&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;center&amp;gt;'''''&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Используется для заметок и всякого такого...&amp;lt;/span&amp;gt;'''''&amp;lt;/center&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Для корректного использования данной '''&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;WIKI&amp;lt;/span&amp;gt;''' &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;крайне рекомендуется использовать браузер&amp;lt;/span&amp;gt; на основе свободного браузера [https://chromium.woolyss.com/download/ '''''Chromium&amp;amp;copy;'''''] — [https://www.google.ru/chrome/browser/desktop/index.html Google Chrome&amp;amp;copy;], [https://browser.yandex.ru/ Яндекс.Браузер&amp;amp;copy;] и т.д.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''''Все права на представленные материалы принадлежат их авторам, размещены исключительно для ознакомления'''''&amp;lt;/span&amp;gt;.&lt;br /&gt;
== Оглавление ==&lt;br /&gt;
&lt;br /&gt;
* Основы Linux/Unix систем:&lt;br /&gt;
** [[Работа в терминале Unix/Linux]]&lt;br /&gt;
** [[Основные команды и утилиты Unix/Linux]]&lt;br /&gt;
**[[faq|Полезные советы при работе в терминале]]&lt;br /&gt;
**[[Vim|Vim — Текстовый редактор]]&lt;br /&gt;
**[[sed|SEd — Неинтерактивный потоковый редактор]]&lt;br /&gt;
&lt;br /&gt;
*Справочная информация:&lt;br /&gt;
**[[Subnetting|Подсети и префиксы IPv4]]&lt;br /&gt;
**[[ACL|ACL — списки контроля доступа]]&lt;br /&gt;
**[[Advanced Bash-Scripting Guide|Искусство программирования на языке сценариев командной оболочки(BASH)]]&lt;br /&gt;
**[[bash-task|Простые bash-задачи]]&lt;br /&gt;
&amp;lt;!--**[[Links|Ссылки на полезные ресурсы и статьи]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Установка/настройка системного ПО: &lt;br /&gt;
** [[Установка ОС CentOS 7.x]]&lt;br /&gt;
*** [[Создание репозитория CentOS/RHEL]]&lt;br /&gt;
*** [[yum|Работа с менеджером пакетов YUM]]&lt;br /&gt;
*** [[diskadd|Обновление дисков Linux ВМ без перезагрузки в инфраструктуре VMware]]&lt;br /&gt;
** [[Установка ОС RHEL 6.x]]&lt;br /&gt;
** [[Установка БД PostgreSQL]] 9.4.x&lt;br /&gt;
** [[Установка СУБД Oracle 11g]] (11.2.0.3/11.2.0.4)&lt;br /&gt;
*** [[Настройка ОС для серверов СУБД Oracle]]&lt;br /&gt;
** [[Max Open Files|Настройка дескрипторов для ОС]]&lt;br /&gt;
** [[proFTPD_vsFTPD|Настройка ftp-сервера proftpd/vsftp ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Установка/настройка прикладного ПО:&lt;br /&gt;
** [[Установка Java/Jruby]]&lt;br /&gt;
** [[Установка ZooKeeper на ОС RHEL/CentOS]]&lt;br /&gt;
&amp;lt;!-- Это комментарий&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Информацию по работе с этой вики можно найти в [//meta.wikimedia.org/wiki/Help:Contents/ru справочном руководстве].&lt;br /&gt;
&lt;br /&gt;
== Некоторые полезные ресурсы ==&lt;br /&gt;
* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Список возможных настроек];&lt;br /&gt;
* [//www.mediawiki.org/wiki/Manual:FAQ/ru Часто задаваемые вопросы и ответы по MediaWiki];&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Рассылка уведомлений о выходе новых версий MediaWiki].&lt;br /&gt;
* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Перевод MediaWiki на свой язык]&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=Faq&amp;diff=709</id>
		<title>Faq</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=Faq&amp;diff=709"/>
				<updated>2023-04-04T09:58:41Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Отличие обычного пользователя Linux от профессионала заключается во времени, проведённом за изучением хитростей и приёмов, которые позволяют решать не быстрые задачи в одно мгновение. Если вы хотите увеличить скорость работы без долгого набивания шишек в консоли, здесь приводится список лёгких для изучения приёмов. Они помогут сделать вашу работу эффективной и менее трудозатратной.&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Список не ваших процессов'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для получения списка всех процессов, запущенных &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;''не текущим пользователем''&amp;lt;/span&amp;gt;, выполните команду:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ps aux | grep -v `whoami`&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для получения списка из 10 процессов, которые сильнее всего загружают систему, выполните команду:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ps aux --sort=-%cpu | grep -m 11 -v `whoami`&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Замена текста в файлах'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Если надо заменить текст не в одном файле, то имеется несколько способов. Для того, чтобы заменить текст '''''«Windows»''''' на '''''«Linux»''''' во всех файлах в текущей директории, название которой начинается с «test», введите в консоли('''''необходим интерпретатор perl'''''):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$perl -i -pe 's/Windows/Linux/;' test*&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Чтобы провести ту же операцию во всех поддиректориях:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$find. -name '*.txt' -print | xargs perl -pi -e's/Windows/Linux/ig' *.txt&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Если Вы хотите сделать то же самое для на обычных файлов со множеством переносов строк и странных символов (файл — в другой кодировке):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$find -type f -name '*.txt' -print0 | xargs --null perl -pi -e 's/Windows/Linux/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Исправить консоль'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Если использовать команду [[less]] или [[cat]] для просмотра файла, в конце которого — бинарные данные, то можно легко испортить консоль. Потому что в бинарных данных могут попасться любые сочетания управляющих кодов: компьютер будет издавать звуки «бип-бип», появятся прикольные символы, странные цветовые сочетания. В конце концов, шрифт изменится на какие-то иероглифы. Bash, очевидно, продолжает работать, но вы ничего не можете прочитать и сделать. Просто наберите в консоли команду инициализации:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$reset&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Запуск множественных X-сессий'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Если надо дать кому-нибудь доступ к Вашему компьютеру, то вы откроете для себя, что это не всегда необходимо. Если предположить, что компьютер стартует в графическом режиме (''runlevel 5''), то, одновременно нажав '''Ctrl+Alt+&amp;lt;F7&amp;gt;''', вы попадете в консоль. Введите логин и пароль, потом исполните следующий код:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$startx -- :1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;чтобы войти в графическое окружение. Чтобы вернуться в предыдущую сессию, нажмите '''Ctrl+Alt+&amp;lt;F7&amp;gt;''', для ещё одного возврата — '''Ctrl+Alt+&amp;lt;F8&amp;gt;'''. Вы можете этот трюк: клавиши с '''F1''' по '''F6''' отвечают за &amp;lt;u&amp;gt;6 сессий консоли&amp;lt;/u&amp;gt;, а клавиши с '''F7''' по '''F12''' — за &amp;lt;u&amp;gt;6 Х-сессий&amp;lt;/u&amp;gt;. Подводный камень: в разных дистрибутивах могут использоваться разные сочетания клавиш.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Лёгкое резервное копирование'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Если надо сделать резервную копию папки и скопировать только изменившиеся файлы, то можно использовать для этого rsync (вам нужен аккаунт на удалённом компьютере):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$rsync -vare ssh jono@192.168.0.2:/home/jono/importantfiles/* /home/jono/backup/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Поиск самых больших файлов в текущей директории'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Можно столкнуться с проблемой, когда надо удалить несколько больших файлов. Их можно найти в текущей директории с помощью команды:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ls -lSrh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Ключ “r” означает, что большие файлы должны выводиться в конце. Следующей командой можно найти самые большие файлы MP3/MPEG:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ls -lSrh *.mp*&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Также можно найти самые большие директории:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$du -kx | egrep -v &amp;quot;\./.+/&amp;quot; | sort -n&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Оптимизация баз данных MySQL'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;При любом изменении структуры базы данных или удалении больших объёмов данных, файлы могут стать фрагментированными, что приводит к потере производительности. Просто запомните простое правило — запускать оптимизатор базы при любом изменении базы:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#mysqloptimize -A -u&amp;lt;username&amp;gt; -p&amp;lt;password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#mysqlcheck --optimize -A -u&amp;lt;username&amp;gt; -p&amp;lt;password&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Список открытых портов'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Получить список открытых портов в состоянии ''Listen'' в Linux очень просто, для этого достаточно выполнить:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#netstat -lnp&lt;br /&gt;
 Active Internet connections (only servers)&lt;br /&gt;
 Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name &lt;br /&gt;
 tcp 0 0 0.0.0.0:5280 0.0.0.0:* LISTEN 698/perl &lt;br /&gt;
 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 217/httpd tcp&lt;br /&gt;
 0 0 10.42.3.2:53 0.0.0.0:* LISTEN 220/named tcp&lt;br /&gt;
 0 0 10.42.4.6:53 0.0.0.0:* LISTEN 220/named tcp&lt;br /&gt;
 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 220/named tcp &lt;br /&gt;
 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 200/sshd udp &lt;br /&gt;
 0 0 0.0.0.0:32768 0.0.0.0:* 220/named udp &lt;br /&gt;
 0 0 10.42.3.2:53 0.0.0.0:* 220/named udp &lt;br /&gt;
 0 0 10.42.4.6:53 0.0.0.0:* 220/named udp &lt;br /&gt;
 0 0 127.0.0.1:53 0.0.0.0:* 220/named udp &lt;br /&gt;
 0 0 0.0.0.0:67 0.0.0.0:* 222/dhcpd raw &lt;br /&gt;
 0 0 0.0.0.0:1 0.0.0.0:* 7 222/dhcpd&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;В этом примере видно, что процесс с PID'ом 698 — процесс интерпретатора Perl, который слушает порт 5280. Если вы не root в системе, то система не покажет пути к программам.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Поиск занятых устройств'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Вы наверняка сталкивались с ситуацией, когда надо отмаунтить диск, но система при попытке отключения сообщает о том, что он занят. Одной командой можно узнать, какое приложение использует его:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof +D /mnt/windows&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Она показывает PID и команду запуска любого процесса, использующего /mnt/windows.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''Поиск изменённых сегодня файлов'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Например, утром вы создали файл, который именно сейчас очень нужен. Однако, вы не можете вспомнить его название. Вручную перебирать домашнюю директорию бессмысленно, где скопилась не одна тысяча файлов. Но есть небольшой приём, показывающий эффективность пайпов и объединения нескольких команд консоли:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ls -al --time-style=+%D | grep `date +%D`&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Параметры команды [[Ls_—_Команда_печати_содержимого_каталога|ls]] требуют вывода даты в определенном формате. Хитрость в том: то, что выдаст [[Ls_—_Команда_печати_содержимого_каталога|ls]], идет на вход [[grep]]. Параметр grep сами по себе команда (заключена в обратные апострофы), которая подставляет текущую дату в шаблон для отсева. Её легко модифицировать для поиска по другим датам, размеру файла и т.д.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Поиск больших файлов в Linux'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Поиск больших файлов особенно актуален когда на диске заканчивается место и приходится искать кандидатов на удаление. Самый лучший способ чтобы найти все самые большие файлы на хосте с Linux - воспользоваться командной строкой. В принципе не существует простой команды для поиска самых больших файлов в Linux. Однако, можно с лёгкостью получить список самых больших файлов, используя комбинацию нескольких простых команд.Выполните следующую комбинацию команд для поиска десяти самых больших файлов в Linux, начиная с директории &amp;lt;DIR&amp;gt; (измените &amp;lt;DIR&amp;gt; на директорию в которой Вы хотите запустить поиск):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#find &amp;lt;DIR&amp;gt; -mount -type f -ls 2&amp;gt; /dev/null | sort -rnk7 | head -10 | awk '{printf &amp;quot;%10d MB\t%s\n&amp;quot;,($7/1024)/1024,$NF}'&lt;br /&gt;
 106 MB /var/lib/mysql/ibdata1 &lt;br /&gt;
 94 MB /usr/lib/locale/locale-archive &lt;br /&gt;
 41 MB /scripts/20130206-015833.tar.gz &lt;br /&gt;
 41 MB /scripts/20130206-004839.tar.gz &lt;br /&gt;
 41 MB /scripts/20130206-130400.tar.gz &lt;br /&gt;
 41 MB /scripts/20130206-000442.tar.gz &lt;br /&gt;
 41 MB /scripts/20130206-132019.tar.gz &lt;br /&gt;
 41 MB /root/20130208-133954.tar.gz &lt;br /&gt;
 33 MB /var/log/messages-20130303 &lt;br /&gt;
 32 MB /var/lib/rpm/Packages&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Найти 10 самых больших фалов, начиная с '/home'&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#find /home -mount -type f -ls 2&amp;gt; /dev/null | sort -rnk7 | head -10 | awk '{printf &amp;quot;%10d MB\t%s\n&amp;quot;,($7/1024)/1024,$NF}'&lt;br /&gt;
 3007 MB /home/user/Desktop/share/linux-65835.iso &lt;br /&gt;
 448 MB /home/user/Pictures/Turkey/SAM_4590.AVI &lt;br /&gt;
 266 MB /home/user/Pictures/Turkey/SAM_4588.AVI &lt;br /&gt;
 173 MB /home/user/Camera/VID_20130909_120713.mp4 &lt;br /&gt;
 152 MB /home/user/Camera/VID_20130909_115427.mp4 &lt;br /&gt;
 133 MB /home/user/Camera/VID_20130909_210904.mp4 &lt;br /&gt;
 133 MB /home/user/Pictures/Paris/VID_20130928_182431.mp4 &lt;br /&gt;
 131 MB /home/user/Pictures/Turkey/SAM_4597.AVI &lt;br /&gt;
 129 MB /home/user/Pictures/Turkey/SAM_4641.AVI&lt;br /&gt;
 127 MB /home/user/Desktop/tmp/Camera/VID_20130911_164440.mp4&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Сортировка вывода по размеру файлов командой &amp;lt;code&amp;gt;du&amp;lt;/code&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#du -k /opt/ruby_projects/* | sort -nr | cut -f2 | xargs -d '\n' du -sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Определить дату установки Linux'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Есть несколько вариантов узнать дату и время установки:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ls -clt / | tail -n 1 | awk '{ print $7, $6, $8 }'&lt;br /&gt;
#tune2fs -l /dev/sda1 | grep create&lt;br /&gt;
#LC_TIME=&amp;quot;en_DK&amp;quot; rpm -qia |grep &amp;quot;Install Date&amp;quot;|awk '{print $3}'|uniq |sort -r|tail -n 1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Очистка КЭШа оперативной памяти в Linux'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для того, чтобы посмотреть сколько оперативной памяти занято и сколько закешировано в данный момент, можно воспользоваться командой &amp;lt;code&amp;gt;free&amp;lt;/code&amp;gt;. С параметром -g она выведет информацию об использовании памяти в гигабайтах, с параметром -m в мегабайтах:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#free -g&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для очистки кеша страниц('''pagecache''') использовать команду:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#echo 1 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для очистки directory entry('''dentries''') и index node('''inode''') использовать команду:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#echo 2 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для очистки кеша страниц('''pagecache'''), directory entry('''dentries''') и index node('''inode''') использовать команду:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#echo 3 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Проверка количества открытых файлов для процесса'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;В примере ниже описана команда получения количества открытых процессом файлов, для процесса ''line4'':&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#for pid in `pidof line4`; do echo &amp;quot;$(&amp;lt; /proc/$pid/cmdline)&amp;quot;; egrep 'files|Limit' /proc/$pid/limits; \&lt;br /&gt;
echo &amp;quot;Currently open files: $(ls -1 /proc/$pid/fd | wc -l)&amp;quot;; echo; done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Вывод представлен на скриншоте ниже:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[File:Open files.PNG|1200px|center]]&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Просмотреть краткую информацию по сетевому интерфейсу'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для просмотра выполнить команду:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ip addr show &amp;lt;NIC&amp;gt; | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Подсчитать Количество Файлов(Директорий) в Папке'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Ниже приведены лучшие способы поиска и подсчета количества файлов и папок в конкретной директории.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Подсчитать количество файлов в текущей папке:&amp;lt;/p&amp;gt;&lt;br /&gt;
* Если Вам необходимо подсчитать довольно большое количество файлов, данный метод является самым быстрым:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ls -f . | wc -l&lt;br /&gt;
#find . -type f -maxdepth 1 | wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Команда рекурсивно считает количество файлов в текущей директории и всех её поддиректориях:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#find . -type f | wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Команда рекурсивно считает количество папок в текущей директории и всех её поддиректориях:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#find . -type d | wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Команда рекурсивно считает количество файлов с расширением &amp;quot;.txt&amp;quot; в текущей директории и всех её поддиректориях:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#find . -type f -name &amp;quot;*.txt&amp;quot; | wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Настройка ssh на авторизацию по ключам'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Бывают случаи, когда необходимо настроить ssh c доступом к серверам с использованием авторизации по ключам. Для этого необходимо выполнить следующие команды(на сервере с которого планируются подключения к серверам, используя ключи):&amp;lt;/p&amp;gt;&lt;br /&gt;
Переходим в директорию .ssh, расположенную в домашней директории пользователя:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#cd ~/.ssh/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Генерируем ключи, которые будем передавать. На все вопросы нажимаем клавишу ''Enter'':&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh-keygen&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Отправляем на сервер 192.168.1.21 содержимое ~/.ssh/id_rsa.pub в файл /home/user/.ssh/authorized_keys:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#cat ~/.ssh/id_rsa.pub | ssh user@192.168.1.21 'cat &amp;gt;&amp;gt; .ssh/authorized_keys'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Отправляем на сервер 192.168.1.21 команду, которая выставит права записи и чтения на файл authorized_keys только для владельца:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@192.168.1.21 'chmod 600 ~/.ssh/authorized_keys'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Отправляем на сервер 192.168.1.21 команду, которая выставит права записи и чтения и исполнения на директорию .ssh только для владельца:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@192.168.1.21 'chmod 700 ~/.ssh'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Вводим данную команду, для проверки, что авторизации по ключам работает:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@192.168.1.21&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Следует учитывать, что на домашнюю директорию пользователя и директорию .ssh(/home/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;lt;''username''&amp;gt;&amp;lt;/span&amp;gt;/.ssh) на удалённом сервере должны быть выставлены права '''''drwx------'''''('''700'''), а на файл /home/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;lt;''username''&amp;gt;&amp;lt;/span&amp;gt;/.ssh/authorized_keys '''''-rw-------'''''('''600''').&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Ошибка &amp;quot;Broken pipe&amp;quot; при авторизации пользователя по ssh'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Бывают случаи, когда при авторизации обычным пользователем по ssh появляется ошибка &amp;quot;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Broken pipe'''&amp;lt;/span&amp;gt;&amp;quot;. При этом авторизация под root может проходить успешно. Если из-под '''root''' выполнить команду &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''''su - &amp;lt;username&amp;gt;'''''&amp;lt;/span&amp;gt; и получить результат &amp;quot;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''su: cannot set user id: Resource temporarily unavailable'''&amp;lt;/span&amp;gt;&amp;quot; или &amp;quot;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''su:невозможно установить пользовательский id: Ресурс временно недоступен'''&amp;lt;/span&amp;gt;&amp;quot;, то надо посмотреть в сторону того, какое кол-во процессов разрешено запускать пользователю и какое кол-во процессов из-под этого пользователя запущенно на данный момент. Для этого необходимо выполнить следующие команды:&amp;lt;/p&amp;gt;&lt;br /&gt;
Команда покажет сколько процессов запущено от пользователя &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''&amp;lt;username&amp;gt;'''&amp;lt;/span&amp;gt; на данный момент:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ps -eLF|grep '&amp;lt;username&amp;gt;'|wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Команда покажет сколько файлов открыто от пользователя &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''&amp;lt;username&amp;gt;'''&amp;lt;/span&amp;gt; на данный момент:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -u '&amp;lt;username&amp;gt;'|wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Команда покажет сколько процессов разрешено запускать пользователям(&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''*'''&amp;lt;/span&amp;gt; - любой пользователь) в RHEL 6.x/CentOS 6.x:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#cat /etc/security/limits.d/90-nproc.conf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Команда покажет сколько процессов разрешено запускать пользователям(&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''*'''&amp;lt;/span&amp;gt; - любой пользователь) в RHEL 7.x/CentOS 7.x:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#cat /etc/security/limits.d/20-nproc.conf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В случае, если вывод команды &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;#ps -eLF|grep '&amp;lt;username&amp;gt;'|wc -l&amp;lt;/source&amp;gt; превышает указанное в 90-nproc.conf/20-nproc.conf значение, тогда необходимо это значение увеличить или закомментировать с последующей перезагрузкой параметров командой &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;#sysctl -p&amp;lt;/source&amp;gt;('''''правка параметров и перезагрузка выполняется из-под root''''').&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Копирование директорий на удалённый сервер используя tar, ssh, cat или dd'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Архивирование директории на удалённый сервер с использованием [[cat]]:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# tar zcvfp - /home/user/sourcedir | ssh user@remote_host &amp;quot;cat &amp;gt; ~/from_somehost.tar.gz&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
То, что [[tar]] выведет на стандартный вывод, перенаправляется на удалённый сервер ('''''user@remote_host'''''), где и запускается команда &amp;quot;'''''cat &amp;gt; ~/from_somehost.tar.gz'''''&amp;quot;. [[cat]] принимает на вход то, что выдал [[tar]], а затем всё это складывает в файл '''''~/from_somehost.tar.gz'''''.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Архивирование директории на удалённый сервер с [[dd]]:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#tar zcvfp - /home/user/sourcedir | ssh user@remote_host &amp;quot;dd of=~/from_somehost.tar.gz&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В этом примере вместо [[cat]] используется [[dd]] (disk destroy ;), у которой есть параметр '''of''' (output file), то есть тот, куда нужно складывать то, что пришло от [[tar]]. Остальное по аналогии должно быть понятно.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Архивирование  с удалённой машины на локальную с использованием [[cat]]:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@remote_host &amp;quot;tar zcvfp - /home/user/sourcedir&amp;quot; | cat &amp;gt; ~/from_somehost.tar.gz&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Архивирование  с удалённой машины на локальную с использованием [[dd]]:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@remote_host &amp;quot;tar zcvfp - /home/user/sourcedir&amp;quot; | dd of=~/from_somehost.tar.gz&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Распаковка удалённого архива на локальную машину:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@remote_host &amp;quot;cat /home/user/from_somehost.tar.gz&amp;quot; |tar xvfp -&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Работа с процессами'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
Часто бывает полезным узнать разного рода параметры уже запущенных процессов, а так же манипулировать ими. Рассмотрим несколько разных примеров по работе с процессами.&lt;br /&gt;
Много информации нам предоставляет файловая система '''procfs'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''procfs''' — виртуальная файловая система, используемая в ''UNIX-like'' ОС. '''procfs''' позволяет получить доступ к информации о системных процессах из ядра, она необходима для выполнения таких команд как [[ps]], [[w]], [[top]]. Обычно её монтируют на ''/proc''. '''procfs''' создаёт двухуровневое представление пространств процессов. На верхнем уровне процессы представляют собой директории, именованные в соответствии с их ''pid''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Некоторые файлы и директории из '''ProcFS''', где '''PID''' – идентификатор процесса или ''self'':&lt;br /&gt;
* /proc/'''PID'''/cmdline – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;аргументы командной строки&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/'''PID'''/environ – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;переменные окружения для данного процесса&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/'''PID'''/status – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;статус процесса&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/'''PID'''/fd – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;директория, содержащая символьные ссылки на каждый открытый файловый дескриптор&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/cpuinfo – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;информация о процессоре (производитель, модель, поколение и т.п.)&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/cmdline – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;параметры, передаваемые ядру при загрузке&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/uptime – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;количество секунд, прошедших с момента загрузки ядра и проведенных в режиме бездействия&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/version – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;содержит информацию о версии ядра, компилятора и другую информацию, связанную с загруженным ядром&amp;lt;/span&amp;gt;.&lt;br /&gt;
Посмотрев на размер файлов в каталоге ''/proc'', можно увидеть, что они все нулевого размера. Дело в том, что в действительности все эти файлы не существуют.&lt;br /&gt;
Примеры использования '''procfs''':&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1) Текущий рабочий каталог процесса&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# ls -la /proc/3165/cwd&lt;br /&gt;
lrwxrwxrwx 1 clamav clamav 0 Авг 18 16:07 /proc/3165/cwd -&amp;gt; /var/lib/clamav&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
где 3165 — номер pid’a процесса.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2) Вывести все переменные процесса&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# cat /proc/2361/environ | strings&lt;br /&gt;
XDG_SESSION_ID=1&lt;br /&gt;
TERM=xterm&lt;br /&gt;
SHELL=/bin/bash&lt;br /&gt;
SSH_CLIENT=10.0.2.2 1383 22&lt;br /&gt;
SSH_TTY=/dev/pts/0&lt;br /&gt;
USER=vaal&lt;br /&gt;
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:&lt;br /&gt;
*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:&lt;br /&gt;
*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:&lt;br /&gt;
*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:&lt;br /&gt;
*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:&lt;br /&gt;
*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:&lt;br /&gt;
*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:&lt;br /&gt;
*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:&lt;br /&gt;
*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:&lt;br /&gt;
*.spx=00;36:*.xspf=00;36:&lt;br /&gt;
DOCKER_TLS_VERIFY=0&lt;br /&gt;
MAIL=/var/mail/vaal&lt;br /&gt;
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games&lt;br /&gt;
PWD=/home/vaal&lt;br /&gt;
LANG=ru_RU.UTF-8&lt;br /&gt;
SHLVL=1&lt;br /&gt;
HOME=/home/vaal&lt;br /&gt;
LOGNAME=vaal&lt;br /&gt;
SSH_CONNECTION=10.0.2.2 1383 10.0.2.15 22&lt;br /&gt;
LESSOPEN=| /usr/bin/lesspipe %s&lt;br /&gt;
XDG_RUNTIME_DIR=/run/user/1000&lt;br /&gt;
LESSCLOSE=/usr/bin/lesspipe %s %s&lt;br /&gt;
_=/usr/bin/mc&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3) Удалили файл, используемый процессом. Как восстановить файл?&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
Попробовать поискать файл в каталоге /proc/'''PID'''/fd&lt;br /&gt;
Почему так можно делать? Всё дело в том, что при удалении файла, который всё-таки открыт процессом, файл перестал быть виден в файловой системе, но не исчез, и окончательно удалён он будет только когда закроется последний ссылающийся на него дескриптор. Каталог /proc/'''PID'''/fd содержит символьные ссылки на все открытые процессом '''PID''' дескрипторы.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4) Связь между /proc и sysctl(взято с [http://linuxcenter.ru Linux-center])&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
'''Sysctl''' использует файлы в ''/proc/sys'' как индивидуальные переменные, которые могут быть изменены. К примеру, файл в ''/proc/sys'', который представляет максимальное количество заголовков файлов в системе, ''/proc/sys/fs/file-max'', представлен как '''fs.file-max'''. Этот пример требует некоторых дополнительных пояснений в записи '''sysctl'''. Так как '''sysctl''' может только изменять переменные в директории '''/proc/sys''', то часть имени переменной обозначающая директорию отбрасывается. Другое изменение касается слэшей, которые заменяются на точки. Вот два простых правила для преобразования файлов в ''/proc/sys'' и переменных в '''sysctl''':&amp;lt;br /&amp;gt;&lt;br /&gt;
* Отбросьте ''/proc/sys'' от начала.&lt;br /&gt;
* Замените слэши на точки в имени файла.&lt;br /&gt;
Эти два правила позволят вам преобразовать любой файл в ''/proc/sys'' в любое имя переменной в '''sysctl'''. Обычное преобразование имени файла в переменную:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/proc/sys/dir/file --&amp;gt; dir.file&lt;br /&gt;
dir1.dir2.file --&amp;gt; /proc/sys/dir1/dir2/file&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Можно отобразить все переменные, доступные для изменения, используя команду '''sysctl -a'''. Переменные могут также быть изменены с помощью '''sysctl''', которая выполняет ту же работу что и '''echo'''. Эта запись объясняет это:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sysctl -w dir.file=&amp;quot;value&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Используя пример с ''file-max'', мы можем изменить это значение на 16384, используя один из двух методов:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sysctl -w fs.file-max=&amp;quot;16384&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
или&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo &amp;quot;16384&amp;quot; &amp;gt; /proc/sys/fs/file-max&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5) Максимальное количество процессов&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
По умолчанию процессов 32768. Узнать текущее значение можно так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#sysctl kernel.pid_max&lt;br /&gt;
kernel.pid_max = 32768&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Изменить это число можно так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#sysctl kernel.pid_max=256000&lt;br /&gt;
kernel.pid_max = 256000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Это возможно только на '''64'''-битных системах. Такое ограничение связано с разрядностью '''32'''-битного числа, которое не может превышать ''32768''. А поскольку эти лимиты определены как тип '''int''', то соответственно действует такое ограничение. Если же вы попробуете изменить, то получите такое сообщение:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# sysctl kernel.pid_max=327600&lt;br /&gt;
error: &amp;quot;Invalid argument&amp;quot; setting key &amp;quot;kernel.pid_max&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6) Утилита lsof&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
Утилита, служит для вывода информации о том, какие файлы используются теми или иными процессами.Ниже будет продемонстрировано несколько полезных примеров работы этой утилиты.&lt;br /&gt;
* Список всех открытых файлов&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$lsof&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Показывает все открытые файлы текущего пользователя (если '''root''' — тогда все файлы) всеми процессами.&lt;br /&gt;
* Какие процессы используют файл file&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof /path/to/file&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Можно указать несколько файлов через пробел, тогда получите суммарный список процессов.&lt;br /&gt;
&lt;br /&gt;
* Какие процессы/файлы использует пользователь ''user''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -u user&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Если хотите узнать информацию по нескольким пользователям, разделите их имена запятой. Для групп используйте конструкцию ‘-g groupname’&lt;br /&gt;
&lt;br /&gt;
* Какие процессы открыты программой prog_name&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -c prog_name&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Можно указывать неполное имя. [lsof] будет искать по указанному буквосочетанию. Если нужно узнать информацию для нескольких приложений, разделяйте их имена пробелом и перед каждым именем должно идти ‘-c’&lt;br /&gt;
&lt;br /&gt;
* Какие файлы открыты pid’ом NNN&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -p NNN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Список всех открытых интернет сокетов&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -i&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Если нужно посмотреть только tcp сокеты, то после ‘i’ через пробел добавляем ''tcp''. Аналогично и для ''udp''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Так же можно посмотреть и список всех unix сокетов:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -U&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Просмотр ресурсов в realtime&lt;br /&gt;
Можно задать период обновления информации, например, 1 секунда:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -r 1 -u username&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
будет обновлять информацию об использованных пользователем ''username'' процессах, каждую секунду.&lt;br /&gt;
&lt;br /&gt;
* Вывод только pid’ов&lt;br /&gt;
По умолчанию, выводится таблица с колонками. Но если требуется вывести только сами pid’ы, можно воспользоваться такой командой:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -t -u username&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;7) Поиск всех pid’ов процесса&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
Есть одна замечательная утилита [[pidof]], которая позволяет найти все pid’ы связанные с определённым процессом. К примеру, найдём все pid’ы apache2:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# pidof apache2&lt;br /&gt;
9370 9369 9368 9367 9364 9362 9314 9280 9277 9268 4940&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В большинстве дистрибутивов это обычный симлинк на ''/sbin/killall5'':&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#file /bin/pidof&lt;br /&gt;
/bin/pidof: symbolic link to `../sbin/killall5'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Быстрое копирование данных при помощи Python'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Иногда необходимо быстро предоставить доступ к файлам на машине Linux. В случае, если на такой машине имеется установленный python, то можно запустить простой HTTP-сервер, который предоставит такой доступ. Для этого перейдём в директорию содержащую целевые файлы и выполним команду интерпретатора python, который откроет HTTP-сервер на порту 8080:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
$ cd &amp;lt;source_dir&amp;gt;&lt;br /&gt;
$ python -m SimpleHTTPServer 8080&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&lt;br /&gt;
или таким образом:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
$ cd &amp;lt;source_dir&amp;gt;&lt;br /&gt;
$ python3 -m http.server 8080&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ссылки ===&lt;br /&gt;
[https://nixadmin.ru/copy_on_the_fly nixadmin.ru — копирование &amp;quot;на лету&amp;quot;]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://eax.me/ssh-backup/ Резервное копирование базы данных и файлов по SSH]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://skeletor.org.ua/?p=1506 Работаем с процессами]&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=Faq&amp;diff=708</id>
		<title>Faq</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=Faq&amp;diff=708"/>
				<updated>2023-04-04T09:53:55Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Отличие обычного пользователя Linux от профессионала заключается во времени, проведённом за изучением хитростей и приёмов, которые позволяют решать не быстрые задачи в одно мгновение. Если вы хотите увеличить скорость работы без долгого набивания шишек в консоли, здесь приводится список лёгких для изучения приёмов. Они помогут сделать вашу работу эффективной и менее трудозатратной.&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Список не ваших процессов'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для получения списка всех процессов, запущенных &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;''не текущим пользователем''&amp;lt;/span&amp;gt;, выполните команду:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ps aux | grep -v `whoami`&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для получения списка из 10 процессов, которые сильнее всего загружают систему, выполните команду:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ps aux --sort=-%cpu | grep -m 11 -v `whoami`&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Замена текста в файлах'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Если надо заменить текст не в одном файле, то имеется несколько способов. Для того, чтобы заменить текст '''''«Windows»''''' на '''''«Linux»''''' во всех файлах в текущей директории, название которой начинается с «test», введите в консоли('''''необходим интерпретатор perl'''''):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$perl -i -pe 's/Windows/Linux/;' test*&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Чтобы провести ту же операцию во всех поддиректориях:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$find. -name '*.txt' -print | xargs perl -pi -e's/Windows/Linux/ig' *.txt&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Если Вы хотите сделать то же самое для на обычных файлов со множеством переносов строк и странных символов (файл — в другой кодировке):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$find -type f -name '*.txt' -print0 | xargs --null perl -pi -e 's/Windows/Linux/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Исправить консоль'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Если использовать команду [[less]] или [[cat]] для просмотра файла, в конце которого — бинарные данные, то можно легко испортить консоль. Потому что в бинарных данных могут попасться любые сочетания управляющих кодов: компьютер будет издавать звуки «бип-бип», появятся прикольные символы, странные цветовые сочетания. В конце концов, шрифт изменится на какие-то иероглифы. Bash, очевидно, продолжает работать, но вы ничего не можете прочитать и сделать. Просто наберите в консоли команду инициализации:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$reset&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Запуск множественных X-сессий'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Если надо дать кому-нибудь доступ к Вашему компьютеру, то вы откроете для себя, что это не всегда необходимо. Если предположить, что компьютер стартует в графическом режиме (''runlevel 5''), то, одновременно нажав '''Ctrl+Alt+&amp;lt;F7&amp;gt;''', вы попадете в консоль. Введите логин и пароль, потом исполните следующий код:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$startx -- :1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;чтобы войти в графическое окружение. Чтобы вернуться в предыдущую сессию, нажмите '''Ctrl+Alt+&amp;lt;F7&amp;gt;''', для ещё одного возврата — '''Ctrl+Alt+&amp;lt;F8&amp;gt;'''. Вы можете этот трюк: клавиши с '''F1''' по '''F6''' отвечают за &amp;lt;u&amp;gt;6 сессий консоли&amp;lt;/u&amp;gt;, а клавиши с '''F7''' по '''F12''' — за &amp;lt;u&amp;gt;6 Х-сессий&amp;lt;/u&amp;gt;. Подводный камень: в разных дистрибутивах могут использоваться разные сочетания клавиш.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Лёгкое резервное копирование'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Если надо сделать резервную копию папки и скопировать только изменившиеся файлы, то можно использовать для этого rsync (вам нужен аккаунт на удалённом компьютере):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$rsync -vare ssh jono@192.168.0.2:/home/jono/importantfiles/* /home/jono/backup/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Поиск самых больших файлов в текущей директории'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Можно столкнуться с проблемой, когда надо удалить несколько больших файлов. Их можно найти в текущей директории с помощью команды:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ls -lSrh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Ключ “r” означает, что большие файлы должны выводиться в конце. Следующей командой можно найти самые большие файлы MP3/MPEG:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ls -lSrh *.mp*&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Также можно найти самые большие директории:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$du -kx | egrep -v &amp;quot;\./.+/&amp;quot; | sort -n&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Оптимизация баз данных MySQL'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;При любом изменении структуры базы данных или удалении больших объёмов данных, файлы могут стать фрагментированными, что приводит к потере производительности. Просто запомните простое правило — запускать оптимизатор базы при любом изменении базы:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#mysqloptimize -A -u&amp;lt;username&amp;gt; -p&amp;lt;password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#mysqlcheck --optimize -A -u&amp;lt;username&amp;gt; -p&amp;lt;password&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Список открытых портов'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Получить список открытых портов в состоянии ''Listen'' в Linux очень просто, для этого достаточно выполнить:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#netstat -lnp&lt;br /&gt;
 Active Internet connections (only servers)&lt;br /&gt;
 Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name &lt;br /&gt;
 tcp 0 0 0.0.0.0:5280 0.0.0.0:* LISTEN 698/perl &lt;br /&gt;
 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 217/httpd tcp&lt;br /&gt;
 0 0 10.42.3.2:53 0.0.0.0:* LISTEN 220/named tcp&lt;br /&gt;
 0 0 10.42.4.6:53 0.0.0.0:* LISTEN 220/named tcp&lt;br /&gt;
 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 220/named tcp &lt;br /&gt;
 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 200/sshd udp &lt;br /&gt;
 0 0 0.0.0.0:32768 0.0.0.0:* 220/named udp &lt;br /&gt;
 0 0 10.42.3.2:53 0.0.0.0:* 220/named udp &lt;br /&gt;
 0 0 10.42.4.6:53 0.0.0.0:* 220/named udp &lt;br /&gt;
 0 0 127.0.0.1:53 0.0.0.0:* 220/named udp &lt;br /&gt;
 0 0 0.0.0.0:67 0.0.0.0:* 222/dhcpd raw &lt;br /&gt;
 0 0 0.0.0.0:1 0.0.0.0:* 7 222/dhcpd&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;В этом примере видно, что процесс с PID'ом 698 — процесс интерпретатора Perl, который слушает порт 5280. Если вы не root в системе, то система не покажет пути к программам.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Поиск занятых устройств'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Вы наверняка сталкивались с ситуацией, когда надо отмаунтить диск, но система при попытке отключения сообщает о том, что он занят. Одной командой можно узнать, какое приложение использует его:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof +D /mnt/windows&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Она показывает PID и команду запуска любого процесса, использующего /mnt/windows.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''Поиск изменённых сегодня файлов'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Например, утром вы создали файл, который именно сейчас очень нужен. Однако, вы не можете вспомнить его название. Вручную перебирать домашнюю директорию бессмысленно, где скопилась не одна тысяча файлов. Но есть небольшой приём, показывающий эффективность пайпов и объединения нескольких команд консоли:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ls -al --time-style=+%D | grep `date +%D`&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Параметры команды [[Ls_—_Команда_печати_содержимого_каталога|ls]] требуют вывода даты в определенном формате. Хитрость в том: то, что выдаст [[Ls_—_Команда_печати_содержимого_каталога|ls]], идет на вход [[grep]]. Параметр grep сами по себе команда (заключена в обратные апострофы), которая подставляет текущую дату в шаблон для отсева. Её легко модифицировать для поиска по другим датам, размеру файла и т.д.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Поиск больших файлов в Linux'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Поиск больших файлов особенно актуален когда на диске заканчивается место и приходится искать кандидатов на удаление. Самый лучший способ чтобы найти все самые большие файлы на хосте с Linux - воспользоваться командной строкой. В принципе не существует простой команды для поиска самых больших файлов в Linux. Однако, можно с лёгкостью получить список самых больших файлов, используя комбинацию нескольких простых команд.Выполните следующую комбинацию команд для поиска десяти самых больших файлов в Linux, начиная с директории &amp;lt;DIR&amp;gt; (измените &amp;lt;DIR&amp;gt; на директорию в которой Вы хотите запустить поиск):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#find &amp;lt;DIR&amp;gt; -mount -type f -ls 2&amp;gt; /dev/null | sort -rnk7 | head -10 | awk '{printf &amp;quot;%10d MB\t%s\n&amp;quot;,($7/1024)/1024,$NF}'&lt;br /&gt;
 106 MB /var/lib/mysql/ibdata1 &lt;br /&gt;
 94 MB /usr/lib/locale/locale-archive &lt;br /&gt;
 41 MB /scripts/20130206-015833.tar.gz &lt;br /&gt;
 41 MB /scripts/20130206-004839.tar.gz &lt;br /&gt;
 41 MB /scripts/20130206-130400.tar.gz &lt;br /&gt;
 41 MB /scripts/20130206-000442.tar.gz &lt;br /&gt;
 41 MB /scripts/20130206-132019.tar.gz &lt;br /&gt;
 41 MB /root/20130208-133954.tar.gz &lt;br /&gt;
 33 MB /var/log/messages-20130303 &lt;br /&gt;
 32 MB /var/lib/rpm/Packages&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Найти 10 самых больших фалов, начиная с '/home'&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#find /home -mount -type f -ls 2&amp;gt; /dev/null | sort -rnk7 | head -10 | awk '{printf &amp;quot;%10d MB\t%s\n&amp;quot;,($7/1024)/1024,$NF}'&lt;br /&gt;
 3007 MB /home/user/Desktop/share/linux-65835.iso &lt;br /&gt;
 448 MB /home/user/Pictures/Turkey/SAM_4590.AVI &lt;br /&gt;
 266 MB /home/user/Pictures/Turkey/SAM_4588.AVI &lt;br /&gt;
 173 MB /home/user/Camera/VID_20130909_120713.mp4 &lt;br /&gt;
 152 MB /home/user/Camera/VID_20130909_115427.mp4 &lt;br /&gt;
 133 MB /home/user/Camera/VID_20130909_210904.mp4 &lt;br /&gt;
 133 MB /home/user/Pictures/Paris/VID_20130928_182431.mp4 &lt;br /&gt;
 131 MB /home/user/Pictures/Turkey/SAM_4597.AVI &lt;br /&gt;
 129 MB /home/user/Pictures/Turkey/SAM_4641.AVI&lt;br /&gt;
 127 MB /home/user/Desktop/tmp/Camera/VID_20130911_164440.mp4&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Сортировка вывода по размеру файлов командой &amp;lt;code&amp;gt;du&amp;lt;/code&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#du -k /opt/ruby_projects/* | sort -nr | cut -f2 | xargs -d '\n' du -sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Определить дату установки Linux'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Есть несколько вариантов узнать дату и время установки:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ls -clt / | tail -n 1 | awk '{ print $7, $6, $8 }'&lt;br /&gt;
#tune2fs -l /dev/sda1 | grep create&lt;br /&gt;
#LC_TIME=&amp;quot;en_DK&amp;quot; rpm -qia |grep &amp;quot;Install Date&amp;quot;|awk '{print $3}'|uniq |sort -r|tail -n 1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Очистка КЭШа оперативной памяти в Linux'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для того, чтобы посмотреть сколько оперативной памяти занято и сколько закешировано в данный момент, можно воспользоваться командой &amp;lt;code&amp;gt;free&amp;lt;/code&amp;gt;. С параметром -g она выведет информацию об использовании памяти в гигабайтах, с параметром -m в мегабайтах:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#free -g&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для очистки кеша страниц('''pagecache''') использовать команду:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#echo 1 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для очистки directory entry('''dentries''') и index node('''inode''') использовать команду:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#echo 2 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для очистки кеша страниц('''pagecache'''), directory entry('''dentries''') и index node('''inode''') использовать команду:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#echo 3 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Проверка количества открытых файлов для процесса'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;В примере ниже описана команда получения количества открытых процессом файлов, для процесса ''line4'':&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#for pid in `pidof line4`; do echo &amp;quot;$(&amp;lt; /proc/$pid/cmdline)&amp;quot;; egrep 'files|Limit' /proc/$pid/limits; \&lt;br /&gt;
echo &amp;quot;Currently open files: $(ls -1 /proc/$pid/fd | wc -l)&amp;quot;; echo; done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Вывод представлен на скриншоте ниже:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[File:Open files.PNG|1200px|center]]&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Просмотреть краткую информацию по сетевому интерфейсу'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для просмотра выполнить команду:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ip addr show &amp;lt;NIC&amp;gt; | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Подсчитать Количество Файлов(Директорий) в Папке'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Ниже приведены лучшие способы поиска и подсчета количества файлов и папок в конкретной директории.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Подсчитать количество файлов в текущей папке:&amp;lt;/p&amp;gt;&lt;br /&gt;
* Если Вам необходимо подсчитать довольно большое количество файлов, данный метод является самым быстрым:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ls -f . | wc -l&lt;br /&gt;
#find . -type f -maxdepth 1 | wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Команда рекурсивно считает количество файлов в текущей директории и всех её поддиректориях:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#find . -type f | wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Команда рекурсивно считает количество папок в текущей директории и всех её поддиректориях:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#find . -type d | wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Команда рекурсивно считает количество файлов с расширением &amp;quot;.txt&amp;quot; в текущей директории и всех её поддиректориях:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#find . -type f -name &amp;quot;*.txt&amp;quot; | wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Настройка ssh на авторизацию по ключам'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Бывают случаи, когда необходимо настроить ssh c доступом к серверам с использованием авторизации по ключам. Для этого необходимо выполнить следующие команды(на сервере с которого планируются подключения к серверам, используя ключи):&amp;lt;/p&amp;gt;&lt;br /&gt;
Переходим в директорию .ssh, расположенную в домашней директории пользователя:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#cd ~/.ssh/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Генерируем ключи, которые будем передавать. На все вопросы нажимаем клавишу ''Enter'':&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh-keygen&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Отправляем на сервер 192.168.1.21 содержимое ~/.ssh/id_rsa.pub в файл /home/user/.ssh/authorized_keys:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#cat ~/.ssh/id_rsa.pub | ssh user@192.168.1.21 'cat &amp;gt;&amp;gt; .ssh/authorized_keys'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Отправляем на сервер 192.168.1.21 команду, которая выставит права записи и чтения на файл authorized_keys только для владельца:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@192.168.1.21 'chmod 600 ~/.ssh/authorized_keys'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Отправляем на сервер 192.168.1.21 команду, которая выставит права записи и чтения и исполнения на директорию .ssh только для владельца:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@192.168.1.21 'chmod 700 ~/.ssh'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Вводим данную команду, для проверки, что авторизации по ключам работает:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@192.168.1.21&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Следует учитывать, что на домашнюю директорию пользователя и директорию .ssh(/home/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;lt;''username''&amp;gt;&amp;lt;/span&amp;gt;/.ssh) на удалённом сервере должны быть выставлены права '''''drwx------'''''('''700'''), а на файл /home/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;lt;''username''&amp;gt;&amp;lt;/span&amp;gt;/.ssh/authorized_keys '''''-rw-------'''''('''600''').&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Ошибка &amp;quot;Broken pipe&amp;quot; при авторизации пользователя по ssh'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Бывают случаи, когда при авторизации обычным пользователем по ssh появляется ошибка &amp;quot;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Broken pipe'''&amp;lt;/span&amp;gt;&amp;quot;. При этом авторизация под root может проходить успешно. Если из-под '''root''' выполнить команду &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''''su - &amp;lt;username&amp;gt;'''''&amp;lt;/span&amp;gt; и получить результат &amp;quot;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''su: cannot set user id: Resource temporarily unavailable'''&amp;lt;/span&amp;gt;&amp;quot; или &amp;quot;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''su:невозможно установить пользовательский id: Ресурс временно недоступен'''&amp;lt;/span&amp;gt;&amp;quot;, то надо посмотреть в сторону того, какое кол-во процессов разрешено запускать пользователю и какое кол-во процессов из-под этого пользователя запущенно на данный момент. Для этого необходимо выполнить следующие команды:&amp;lt;/p&amp;gt;&lt;br /&gt;
Команда покажет сколько процессов запущено от пользователя &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''&amp;lt;username&amp;gt;'''&amp;lt;/span&amp;gt; на данный момент:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ps -eLF|grep '&amp;lt;username&amp;gt;'|wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Команда покажет сколько файлов открыто от пользователя &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''&amp;lt;username&amp;gt;'''&amp;lt;/span&amp;gt; на данный момент:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -u '&amp;lt;username&amp;gt;'|wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Команда покажет сколько процессов разрешено запускать пользователям(&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''*'''&amp;lt;/span&amp;gt; - любой пользователь) в RHEL 6.x/CentOS 6.x:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#cat /etc/security/limits.d/90-nproc.conf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Команда покажет сколько процессов разрешено запускать пользователям(&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''*'''&amp;lt;/span&amp;gt; - любой пользователь) в RHEL 7.x/CentOS 7.x:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#cat /etc/security/limits.d/20-nproc.conf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В случае, если вывод команды &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;#ps -eLF|grep '&amp;lt;username&amp;gt;'|wc -l&amp;lt;/source&amp;gt; превышает указанное в 90-nproc.conf/20-nproc.conf значение, тогда необходимо это значение увеличить или закомментировать с последующей перезагрузкой параметров командой &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;#sysctl -p&amp;lt;/source&amp;gt;('''''правка параметров и перезагрузка выполняется из-под root''''').&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Копирование директорий на удалённый сервер используя tar, ssh, cat или dd'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Архивирование директории на удалённый сервер с использованием [[cat]]:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# tar zcvfp - /home/user/sourcedir | ssh user@remote_host &amp;quot;cat &amp;gt; ~/from_somehost.tar.gz&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
То, что [[tar]] выведет на стандартный вывод, перенаправляется на удалённый сервер ('''''user@remote_host'''''), где и запускается команда &amp;quot;'''''cat &amp;gt; ~/from_somehost.tar.gz'''''&amp;quot;. [[cat]] принимает на вход то, что выдал [[tar]], а затем всё это складывает в файл '''''~/from_somehost.tar.gz'''''.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Архивирование директории на удалённый сервер с [[dd]]:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#tar zcvfp - /home/user/sourcedir | ssh user@remote_host &amp;quot;dd of=~/from_somehost.tar.gz&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В этом примере вместо [[cat]] используется [[dd]] (disk destroy ;), у которой есть параметр '''of''' (output file), то есть тот, куда нужно складывать то, что пришло от [[tar]]. Остальное по аналогии должно быть понятно.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Архивирование  с удалённой машины на локальную с использованием [[cat]]:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@remote_host &amp;quot;tar zcvfp - /home/user/sourcedir&amp;quot; | cat &amp;gt; ~/from_somehost.tar.gz&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Архивирование  с удалённой машины на локальную с использованием [[dd]]:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@remote_host &amp;quot;tar zcvfp - /home/user/sourcedir&amp;quot; | dd of=~/from_somehost.tar.gz&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Распаковка удалённого архива на локальную машину:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@remote_host &amp;quot;cat /home/user/from_somehost.tar.gz&amp;quot; |tar xvfp -&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Работа с процессами'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
Часто бывает полезным узнать разного рода параметры уже запущенных процессов, а так же манипулировать ими. Рассмотрим несколько разных примеров по работе с процессами.&lt;br /&gt;
Много информации нам предоставляет файловая система '''procfs'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''procfs''' — виртуальная файловая система, используемая в ''UNIX-like'' ОС. '''procfs''' позволяет получить доступ к информации о системных процессах из ядра, она необходима для выполнения таких команд как [[ps]], [[w]], [[top]]. Обычно её монтируют на ''/proc''. '''procfs''' создаёт двухуровневое представление пространств процессов. На верхнем уровне процессы представляют собой директории, именованные в соответствии с их ''pid''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Некоторые файлы и директории из '''ProcFS''', где '''PID''' – идентификатор процесса или ''self'':&lt;br /&gt;
* /proc/'''PID'''/cmdline – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;аргументы командной строки&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/'''PID'''/environ – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;переменные окружения для данного процесса&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/'''PID'''/status – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;статус процесса&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/'''PID'''/fd – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;директория, содержащая символьные ссылки на каждый открытый файловый дескриптор&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/cpuinfo – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;информация о процессоре (производитель, модель, поколение и т.п.)&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/cmdline – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;параметры, передаваемые ядру при загрузке&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/uptime – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;количество секунд, прошедших с момента загрузки ядра и проведенных в режиме бездействия&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/version – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;содержит информацию о версии ядра, компилятора и другую информацию, связанную с загруженным ядром&amp;lt;/span&amp;gt;.&lt;br /&gt;
Посмотрев на размер файлов в каталоге ''/proc'', можно увидеть, что они все нулевого размера. Дело в том, что в действительности все эти файлы не существуют.&lt;br /&gt;
Примеры использования '''procfs''':&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1) Текущий рабочий каталог процесса&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# ls -la /proc/3165/cwd&lt;br /&gt;
lrwxrwxrwx 1 clamav clamav 0 Авг 18 16:07 /proc/3165/cwd -&amp;gt; /var/lib/clamav&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
где 3165 — номер pid’a процесса.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2) Вывести все переменные процесса&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# cat /proc/2361/environ | strings&lt;br /&gt;
XDG_SESSION_ID=1&lt;br /&gt;
TERM=xterm&lt;br /&gt;
SHELL=/bin/bash&lt;br /&gt;
SSH_CLIENT=10.0.2.2 1383 22&lt;br /&gt;
SSH_TTY=/dev/pts/0&lt;br /&gt;
USER=vaal&lt;br /&gt;
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:&lt;br /&gt;
*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:&lt;br /&gt;
*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:&lt;br /&gt;
*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:&lt;br /&gt;
*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:&lt;br /&gt;
*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:&lt;br /&gt;
*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:&lt;br /&gt;
*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:&lt;br /&gt;
*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:&lt;br /&gt;
*.spx=00;36:*.xspf=00;36:&lt;br /&gt;
DOCKER_TLS_VERIFY=0&lt;br /&gt;
MAIL=/var/mail/vaal&lt;br /&gt;
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games&lt;br /&gt;
PWD=/home/vaal&lt;br /&gt;
LANG=ru_RU.UTF-8&lt;br /&gt;
SHLVL=1&lt;br /&gt;
HOME=/home/vaal&lt;br /&gt;
LOGNAME=vaal&lt;br /&gt;
SSH_CONNECTION=10.0.2.2 1383 10.0.2.15 22&lt;br /&gt;
LESSOPEN=| /usr/bin/lesspipe %s&lt;br /&gt;
XDG_RUNTIME_DIR=/run/user/1000&lt;br /&gt;
LESSCLOSE=/usr/bin/lesspipe %s %s&lt;br /&gt;
_=/usr/bin/mc&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3) Удалили файл, используемый процессом. Как восстановить файл?&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
Попробовать поискать файл в каталоге /proc/'''PID'''/fd&lt;br /&gt;
Почему так можно делать? Всё дело в том, что при удалении файла, который всё-таки открыт процессом, файл перестал быть виден в файловой системе, но не исчез, и окончательно удалён он будет только когда закроется последний ссылающийся на него дескриптор. Каталог /proc/'''PID'''/fd содержит символьные ссылки на все открытые процессом '''PID''' дескрипторы.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4) Связь между /proc и sysctl(взято с [http://linuxcenter.ru Linux-center])&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
'''Sysctl''' использует файлы в ''/proc/sys'' как индивидуальные переменные, которые могут быть изменены. К примеру, файл в ''/proc/sys'', который представляет максимальное количество заголовков файлов в системе, ''/proc/sys/fs/file-max'', представлен как '''fs.file-max'''. Этот пример требует некоторых дополнительных пояснений в записи '''sysctl'''. Так как '''sysctl''' может только изменять переменные в директории '''/proc/sys''', то часть имени переменной обозначающая директорию отбрасывается. Другое изменение касается слэшей, которые заменяются на точки. Вот два простых правила для преобразования файлов в ''/proc/sys'' и переменных в '''sysctl''':&amp;lt;br /&amp;gt;&lt;br /&gt;
* Отбросьте ''/proc/sys'' от начала.&lt;br /&gt;
* Замените слэши на точки в имени файла.&lt;br /&gt;
Эти два правила позволят вам преобразовать любой файл в ''/proc/sys'' в любое имя переменной в '''sysctl'''. Обычное преобразование имени файла в переменную:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/proc/sys/dir/file --&amp;gt; dir.file&lt;br /&gt;
dir1.dir2.file --&amp;gt; /proc/sys/dir1/dir2/file&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Можно отобразить все переменные, доступные для изменения, используя команду '''sysctl -a'''. Переменные могут также быть изменены с помощью '''sysctl''', которая выполняет ту же работу что и '''echo'''. Эта запись объясняет это:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sysctl -w dir.file=&amp;quot;value&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Используя пример с ''file-max'', мы можем изменить это значение на 16384, используя один из двух методов:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sysctl -w fs.file-max=&amp;quot;16384&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
или&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo &amp;quot;16384&amp;quot; &amp;gt; /proc/sys/fs/file-max&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5) Максимальное количество процессов&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
По умолчанию процессов 32768. Узнать текущее значение можно так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#sysctl kernel.pid_max&lt;br /&gt;
kernel.pid_max = 32768&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Изменить это число можно так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#sysctl kernel.pid_max=256000&lt;br /&gt;
kernel.pid_max = 256000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Это возможно только на '''64'''-битных системах. Такое ограничение связано с разрядностью '''32'''-битного числа, которое не может превышать ''32768''. А поскольку эти лимиты определены как тип '''int''', то соответственно действует такое ограничение. Если же вы попробуете изменить, то получите такое сообщение:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# sysctl kernel.pid_max=327600&lt;br /&gt;
error: &amp;quot;Invalid argument&amp;quot; setting key &amp;quot;kernel.pid_max&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6) Утилита lsof&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
Утилита, служит для вывода информации о том, какие файлы используются теми или иными процессами.Ниже будет продемонстрировано несколько полезных примеров работы этой утилиты.&lt;br /&gt;
* Список всех открытых файлов&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$lsof&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Показывает все открытые файлы текущего пользователя (если '''root''' — тогда все файлы) всеми процессами.&lt;br /&gt;
* Какие процессы используют файл file&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof /path/to/file&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Можно указать несколько файлов через пробел, тогда получите суммарный список процессов.&lt;br /&gt;
&lt;br /&gt;
* Какие процессы/файлы использует пользователь ''user''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -u user&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Если хотите узнать информацию по нескольким пользователям, разделите их имена запятой. Для групп используйте конструкцию ‘-g groupname’&lt;br /&gt;
&lt;br /&gt;
* Какие процессы открыты программой prog_name&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -c prog_name&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Можно указывать неполное имя. [lsof] будет искать по указанному буквосочетанию. Если нужно узнать информацию для нескольких приложений, разделяйте их имена пробелом и перед каждым именем должно идти ‘-c’&lt;br /&gt;
&lt;br /&gt;
* Какие файлы открыты pid’ом NNN&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -p NNN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Список всех открытых интернет сокетов&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -i&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Если нужно посмотреть только tcp сокеты, то после ‘i’ через пробел добавляем ''tcp''. Аналогично и для ''udp''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Так же можно посмотреть и список всех unix сокетов:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -U&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Просмотр ресурсов в realtime&lt;br /&gt;
Можно задать период обновления информации, например, 1 секунда:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -r 1 -u username&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
будет обновлять информацию об использованных пользователем ''username'' процессах, каждую секунду.&lt;br /&gt;
&lt;br /&gt;
* Вывод только pid’ов&lt;br /&gt;
По умолчанию, выводится таблица с колонками. Но если требуется вывести только сами pid’ы, можно воспользоваться такой командой:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -t -u username&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;7) Поиск всех pid’ов процесса&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
Есть одна замечательная утилита [[pidof]], которая позволяет найти все pid’ы связанные с определённым процессом. К примеру, найдём все pid’ы apache2:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# pidof apache2&lt;br /&gt;
9370 9369 9368 9367 9364 9362 9314 9280 9277 9268 4940&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В большинстве дистрибутивов это обычный симлинк на ''/sbin/killall5'':&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#file /bin/pidof&lt;br /&gt;
/bin/pidof: symbolic link to `../sbin/killall5'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Быстрое копирование данных при помощи Python'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Иногда необходимо быстро предоставить доступ к файлам на машине Linux. В случае, если на такой машине имеется установленный python, то можно запустить простой HTTP-сервер, который предоставит такой доступ(на порту 8080):&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
$ python -m SimpleHTTPServer 8080&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&lt;br /&gt;
или таким образом:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
$ python3 -m http.server 8080&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ссылки ===&lt;br /&gt;
[https://nixadmin.ru/copy_on_the_fly nixadmin.ru — копирование &amp;quot;на лету&amp;quot;]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://eax.me/ssh-backup/ Резервное копирование базы данных и файлов по SSH]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://skeletor.org.ua/?p=1506 Работаем с процессами]&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%9E%D0%A1_%D0%B4%D0%BB%D1%8F_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BE%D0%B2_%D0%A1%D0%A3%D0%91%D0%94_Oracle&amp;diff=704</id>
		<title>Настройка ОС для серверов СУБД Oracle</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%9E%D0%A1_%D0%B4%D0%BB%D1%8F_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BE%D0%B2_%D0%A1%D0%A3%D0%91%D0%94_Oracle&amp;diff=704"/>
				<updated>2019-04-13T18:23:29Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данном разделе приведён сценарий действий, необходимый для настройки RHEL для серверов СУБД Oracle: создание пользователей и групп (в ОС), настройка параметров ядра и операционной системы.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
== &amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;b &amp;gt;Установка пакета rlwrap.&amp;lt;/b &amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ==&lt;br /&gt;
''rlwrap'' – пакет, который позволяет хранить историю команд в SQL*PLUS и RMAN в Linux (его необходимо прописывать отдельной строкой в bash-профиле). Установив данный пакет, вы сможете использовать кнопки вверх, вниз для просмотра истории введенных команд, правильную работу клавиши backspace и др. &lt;br /&gt;
Для установки пакета ''rlwrap'' необходимо от '''''root''''' выполнить следующие команды:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# cd /tmp''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# wget -t 25 https://github.com/hanslub42/rlwrap/releases/download/v0.43/rlwrap-0.43.tar.gz -O /tmp/rlwrap-0.43.tar.gz''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# tar -zxvf rlwrap-0.43.tar.gz'''''&amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# cd rlwrap-0.43'''''&amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# ./configure'''''&amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# make '''''&amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# make check'''''&amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# make install'''''&amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
Создать alias для использования '''rlwrap'''(из-под пользователя '''oracle'''):&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''$ echo 'alias sqlplus=&amp;quot;rlwrap sqlplus&amp;quot;' &amp;gt;&amp;gt; ~/.bashrc'''''&amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;b &amp;gt;Создание пользователей и групп.&amp;lt;/b &amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ==&lt;br /&gt;
Поочерёдно выполняем следующие команды:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt;'''''# groupadd oinstall'''''&amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt;'''''# groupadd dba'''''&amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt;'''''# groupadd oper'''''&amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt;'''''# groupadd asmadmin'''''&amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
Создаем пользователя oracle и задаём пароль для него, выполнив следующие команды:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt;'''''# useradd -g oinstall -G dba,oper,asmadmin oracle'''''&amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt;'''''# passwd oracle'''''&amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
== &amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;b &amp;gt;Настройка параметров ядра RHEL.&amp;lt;/b &amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ==&lt;br /&gt;
Настройка параметров ядра требуется для корректной установки и работы хостов на которых разворачиваются СУБД – ''PostgreSQL 9.4'' и ''Oracle DB SE 11.2.0.4''.&lt;br /&gt;
Перед тем как вносить изменения в файлы конфигурации, следует предварительно создать их резервные копии следующими командами:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# cp /etc/sysctl.conf /etc/sysctl.conf.bkp''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# cp /etc/security/limits.conf /etc/security/limits.conf.bkp''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# cp /etc/pam.d/login /etc/pam.d/login.bkp''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# cp /etc/profile /etc/profile.bkp''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
== &amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;b &amp;gt;Настройка параметров ядра для инсталляции ''DB Oracle 11.2.0.4''.&amp;lt;/b &amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ==&lt;br /&gt;
Отредактируйте файл /etc/sysctl.conf:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# vim /etc/sysctl.conf''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
Рекомендуется закомментировать имеющиеся параметры kernel.shmmax и kernel.shmall. Далее они будут добавлены в качестве параметров вместе с остальными параметрами Oracle.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''1) Параметры виртуальной памяти:'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;Добавьте в конец файла ''/etc/sysctl.conf'' следующие строки:&amp;lt;br /&amp;gt;&lt;br /&gt;
''vm.dirty_expire_centisecs=500''&amp;lt;br /&amp;gt;&lt;br /&gt;
''vm.dirty_writeback_centisecs=100''&amp;lt;br /&amp;gt;&lt;br /&gt;
''vm.swappiness=0''&amp;lt;br /&amp;gt;&lt;br /&gt;
''vm.dirty_background_ratio=3''&amp;lt;br /&amp;gt;&lt;br /&gt;
''vm.dirty_ratio=15''&amp;lt;br /&amp;gt;&lt;br /&gt;
Или выполните в терминале следующие команды(от '''''root'''''):&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# echo '#### New Oracle Kernel Parameters ####'  &amp;gt;&amp;gt;  /etc/sysctl.conf''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# echo '#These parameters a recommended to control the rate at which virtual memory is reclaimed'  &amp;gt;&amp;gt;  /etc/sysctl.conf''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# echo 'vm.swappiness=0'  &amp;gt;&amp;gt;  /etc/sysctl.conf''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# echo 'vm.dirty_background_ratio=3'  &amp;gt;&amp;gt;  /etc/sysctl.conf''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# echo 'vm.dirty_ratio=15'  &amp;gt;&amp;gt;  /etc/sysctl.conf''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# echo 'vm.dirty_expire_centisecs=500'  &amp;gt;&amp;gt;  /etc/sysctl.conf''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# echo 'vm.dirty_writeback_centisecs=100'  &amp;gt;&amp;gt;  /etc/sysctl.conf''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# echo &amp;gt;&amp;gt; /etc/sysctl.conf''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# sysctl -p''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''2) Параметры общей памяти(kernel.shmmni, kernel.shmmax и kernel.shmall):'''&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Параметры ''kernel.shmmax'' и ''kernel.shmall'' зависят от количества RAM, установленной на сервере. Параметр ''kernel.shmmax'' указывается в байтах, а ''kernel. shmall'' в страницах.&lt;br /&gt;
Для определения максимума общей памяти (параметр ядра ''shmall'') в элементах размера страницы памяти, необходимо получить размер страницы в операционной системе (выполняем в терминале команду):&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''#getconf PAGE_SIZE''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Максимальный размер общего сегмента ''shmmax'' должен равняться, по меньшей мере, половине общего объема памяти.''SHMMAX'' не может превышать размер RAM минус один байт, но должен быть больше чем сумма всех SGA на данном хосте. Минимальное значение ''536870912''.&lt;br /&gt;
Oracle рекомендует установить максимальное количество сегментов общей памяти ''shmmni'' равным 4096.&lt;br /&gt;
Текущее значение этих параметров можно узнать, выполнив команды:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# cat /proc/sys/kernel/shmmax''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# cat /proc/sys/kernel/shmall''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# cat /proc/sys/kernel/shmmni''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
Параметр ''kernel.shmmax'' вычисляется следующим образом:&amp;lt;br /&amp;gt;&lt;br /&gt;
kernel.shmmax = RAM (в байтах) / 2,&amp;lt;br /&amp;gt;&lt;br /&gt;
Например:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:navy&amp;quot;&amp;gt;'''33568968704/2=16784484352'''&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Количество байт оперативной памяти можно узнать, введя в терминале команду ''free -b''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Минимальное значение для ''kernel.shmmax'' равняется &amp;lt;span style=&amp;quot;color:DarkGreen&amp;quot;&amp;gt;'''''536870912'''''&amp;lt;/span&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
Параметр ''kernel.shmall'' вычисляется следующим образом:&amp;lt;br /&amp;gt;&lt;br /&gt;
kernel.shmall = RAM (в байтах) / 4096,&amp;lt;br /&amp;gt;&lt;br /&gt;
Например:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:navy&amp;quot;&amp;gt;'''33568968704/4096=8195549'''&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Количество байт оперативной памяти можно узнать, введя в терминале команду ''free -b''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Минимальное значение для ''kernel.shmall'' равняется &amp;lt;span style=&amp;quot;color:DarkGreen&amp;quot;&amp;gt;'''''2097152'''''&amp;lt;/span&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
В случае, если ''shmall'' или ''shmmax'' по вычислениям меньше минимально рекомендованного, то необходимо присвоить этим параметрам рекомендованные значения.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:magenta&amp;quot;&amp;gt;'''''Ниже приводится пример расчёта параметров shmall и shmmax для сервера с количеством оперативной памяти равной 32 ГБ:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;&lt;br /&gt;
Выполните следующие команды в терминале, которые обновят содержимое ''etc/sysctl.conf'':&lt;br /&gt;
'''''# echo '## The following values are for 32 GB of RAM'  &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# echo 'kernel.shmmax = 16784484352'  &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# echo 'kernel.shmall = 8195549'  &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# echo '# do not scale this parameter with RAM'  &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# echo 'kernel.shmmni = 4096'  &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# echo &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# sysctl -p'''''&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''3) Семафоры:'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Linux предоставляет семафоры для передачи небольшого количества информации между процессами. Семафоры — это числа-счётчики или on/off значения, которые организуются в группы. СУБД Oracle необходимо больше групп, больше комнат в каждой группе и больше счётчиков, чем предоставляется операционной системой по умолчанию.&lt;br /&gt;
Измените параметр ''kernel.sem'', определяющий необходимое количество семафоров, выполнив следующую команду:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# echo 'kernel.sem = 250 32000 100 128'&amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''4) Сетевые порты:'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Измените параметр ''net.ipv4.ip_local_port_range'' в /etc/sysctl.conf для модификации диапазона ip портов для автоматического назначения клиентам исходящих портов, выполнив в терминале команду:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# echo 'net.ipv4.ip_local_port_range = 9000 65500'&amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''5) Оптимизация сетевых настроек (TCP/IP):'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Oracle и Oracle Universal Installer рекомендуют установить постоянные размеры для буфера максимальный и по умолчанию для сокетов приложений в Database 11g Release 2. Их рекомендованные значения – разумная точка для начала. Выполните в терминале следующие команды:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# echo 'net.core.rmem_default = 262144' &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# echo 'net.core.rmem_max = 4194304' &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# echo 'net.core.wmem_default = 262144' &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# echo 'net.core.wmem_max = 1048586' &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''6) Различная системная конфигурация:'''&amp;lt;/span&amp;gt;&lt;br /&gt;
*Вам может понадобиться увеличить следующие конфигурационные параметры, если они слишком малы:&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Максимальное количество открытых файлов:&amp;lt;/span&amp;gt;&lt;br /&gt;
Oracle рекомендует значение ''6815744'' как минимум. Проверьте значение на вашей системе, в случае необходимости изменения значения выполните в терминале команду&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''# echo 'fs.file-max = 6815744' &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Максимальное количество конкурентных асинхронных запросов ввода/вывода:&amp;lt;/span&amp;gt; &lt;br /&gt;
Oracle рекомендует увеличить это значение до значения ''1048576''. Выполните в терминале команду &amp;lt;br /&amp;gt;&lt;br /&gt;
'''''# echo 'fs.aio-max-nr = 1048576' &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&lt;br /&gt;
&amp;lt;br &amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;b &amp;gt;Ограничения оболочки для пользователя Oracle.&amp;lt;/b &amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ==&lt;br /&gt;
Во время обычной работы аккаунт Oracle запускает много процессов, открывает большое количество файлов и требует больше ресурсов, чем обычный пользователь. В то же время, пределы (hard limits) на аккаунте предотвратит в некоторых случаях зависание процессов (resource starvation). Конфигурация PAM по умолчанию (в /etc/pam.d/system-auth) загружает модули (session required pam_limits.so) которые устанавливают и приводят в действие эти пределы.&amp;lt;br /&amp;gt;&lt;br /&gt;
Как администратор '''''root''''' добавьте следующие строчки в ''/etc/security/limits.conf'':&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
oracle&amp;amp;#9;&amp;amp;#9;soft&amp;amp;#9;&amp;amp;#9;nproc&amp;amp;#9;&amp;amp;#9;2047&lt;br /&gt;
oracle&amp;amp;#9;&amp;amp;#9;hard&amp;amp;#9;&amp;amp;#9;nproc&amp;amp;#9;&amp;amp;#9;16384&lt;br /&gt;
oracle&amp;amp;#9;&amp;amp;#9;soft&amp;amp;#9;&amp;amp;#9;nofile&amp;amp;#9;&amp;amp;#9;1024&lt;br /&gt;
oracle&amp;amp;#9;&amp;amp;#9;hard&amp;amp;#9;&amp;amp;#9;nofile&amp;amp;#9;&amp;amp;#9;65536&lt;br /&gt;
oracle&amp;amp;#9;&amp;amp;#9;soft&amp;amp;#9;&amp;amp;#9;stack&amp;amp;#9;&amp;amp;#9;10240&lt;br /&gt;
oracle&amp;amp;#9;&amp;amp;#9;hard&amp;amp;#9;&amp;amp;#9;stack&amp;amp;#9;&amp;amp;#9;32768&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Отредактируйте файл ''/etc/pam.d/login'', добавив в него строку ''session required pam_limits.so''&lt;br /&gt;
Отредактируйте файл ''/etc/profile'' добавив перед:&lt;br /&gt;
:''unset i''&lt;br /&gt;
:''unset pathmunge''&lt;br /&gt;
Текст со следующим содержанием:&lt;br /&gt;
:''if [ $USER = &amp;quot;oracle&amp;quot; ]; then''&lt;br /&gt;
:''	ulimit -u 16384 -n 65536''&lt;br /&gt;
:''fi''&lt;br /&gt;
Создаём необходимые для установки Oracle каталоги, выставляем на них соответствующие права и владельцев:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# chown -R oracle:oinstall /u01'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# chmod -R 775 /u01'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# mkdir -p /u02/oradata'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# chown -R oracle:oinstall /u02'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# chmod -R 775 /u02/oradata'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для серверов БД логинимся в системе как пользователь oracle и добавляем в ''.bash_profile'' следующую информацию:&lt;br /&gt;
: umask 022&lt;br /&gt;
: TMP=/tmp; export TMP&lt;br /&gt;
: TMPDIR=$TMP; export TMPDIR&lt;br /&gt;
: ORACLE_HOSTNAME=&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;''$(hostname)''&amp;lt;/span&amp;gt;; export ORACLE_HOSTNAME&lt;br /&gt;
: ORACLE_UNQNAME=&amp;lt;u&amp;gt;&amp;lt;NAME&amp;gt;&amp;lt;/u&amp;gt;; export ORACLE_UNQNAME&lt;br /&gt;
: ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE&lt;br /&gt;
: export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1&lt;br /&gt;
: export ORACLE_SID=&amp;lt;u&amp;gt;&amp;lt;NAME&amp;gt;&amp;lt;/u&amp;gt;&lt;br /&gt;
: export NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251&lt;br /&gt;
: export ORACLE_HOME_LISTNER=$ORACLE_HOME&lt;br /&gt;
: PATH=$ORACLE_HOME/bin:$PATH&lt;br /&gt;
: export PATH&lt;br /&gt;
: alias sqlplus='rlwrap sqlplus'&lt;br /&gt;
: alias rman='rlwrap rman'&lt;br /&gt;
&amp;lt;!-- &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;''hostname''&amp;lt;/span&amp;gt; необходимо заменить на имя хоста, на котором производится установка, затем перегружаем .bash_profile командой:!--&amp;gt;&lt;br /&gt;
Затем перегружаем .bash_profile командой:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# source ~/.bash_profile'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Настройка ОС для серверов буферных хранилищ Oracle выполнена. Далее необходимо произвести установку СУБД Oracle, руководствоваться необходимо [[Установка СУБД Oracle 11g]]&lt;br /&gt;
== &amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;b &amp;gt;Ссылки&amp;lt;/b &amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ==&lt;br /&gt;
[https://oracle-base.com/articles/linux/rlwrap#manual-installation Ручная установка rlwrap]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://github.com/hanslub42/rlwrap/tree/v0.43 rlwrap]&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%9E%D0%A1_%D0%B4%D0%BB%D1%8F_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BE%D0%B2_%D0%A1%D0%A3%D0%91%D0%94_Oracle&amp;diff=703</id>
		<title>Настройка ОС для серверов СУБД Oracle</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%9E%D0%A1_%D0%B4%D0%BB%D1%8F_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BE%D0%B2_%D0%A1%D0%A3%D0%91%D0%94_Oracle&amp;diff=703"/>
				<updated>2019-04-13T18:16:05Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данном разделе приведён сценарий действий, необходимый для настройки RHEL для серверов СУБД Oracle: создание пользователей и групп (в ОС), настройка параметров ядра и операционной системы.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
== &amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;b &amp;gt;Установка пакета rlwrap.&amp;lt;/b &amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ==&lt;br /&gt;
''rlwrap'' – пакет, который позволяет хранить историю команд в SQL*PLUS и RMAN в Linux (его необходимо прописывать отдельной строкой в bash-профиле). Установив данный пакет, вы сможете использовать кнопки вверх, вниз для просмотра истории введенных команд, правильную работу клавиши backspace и др. &lt;br /&gt;
Для установки пакета ''rlwrap'' необходимо от '''''root''''' выполнить следующие команды:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# cd /tmp''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# wget -t 25 https://github.com/hanslub42/rlwrap/releases/download/v0.43/rlwrap-0.43.tar.gz -O /tmp/rlwrap-0.43.tar.gz''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# tar -zxvf rlwrap-0.43.tar.gz'''''&amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# cd rlwrap-0.43'''''&amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# ./configure'''''&amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# make '''''&amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# make check'''''&amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# make install'''''&amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;b &amp;gt;Создание пользователей и групп.&amp;lt;/b &amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ==&lt;br /&gt;
Поочерёдно выполняем следующие команды:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt;'''''# groupadd oinstall'''''&amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt;'''''# groupadd dba'''''&amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt;'''''# groupadd oper'''''&amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt;'''''# groupadd asmadmin'''''&amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
Создаем пользователя oracle и задаём пароль для него, выполнив следующие команды:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt;'''''# useradd -g oinstall -G dba,oper,asmadmin oracle'''''&amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt;'''''# passwd oracle'''''&amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
== &amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;b &amp;gt;Настройка параметров ядра RHEL.&amp;lt;/b &amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ==&lt;br /&gt;
Настройка параметров ядра требуется для корректной установки и работы хостов на которых разворачиваются СУБД – ''PostgreSQL 9.4'' и ''Oracle DB SE 11.2.0.4''.&lt;br /&gt;
Перед тем как вносить изменения в файлы конфигурации, следует предварительно создать их резервные копии следующими командами:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# cp /etc/sysctl.conf /etc/sysctl.conf.bkp''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# cp /etc/security/limits.conf /etc/security/limits.conf.bkp''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# cp /etc/pam.d/login /etc/pam.d/login.bkp''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# cp /etc/profile /etc/profile.bkp''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
== &amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;b &amp;gt;Настройка параметров ядра для инсталляции ''DB Oracle 11.2.0.4''.&amp;lt;/b &amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ==&lt;br /&gt;
Отредактируйте файл /etc/sysctl.conf:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# vim /etc/sysctl.conf''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
Рекомендуется закомментировать имеющиеся параметры kernel.shmmax и kernel.shmall. Далее они будут добавлены в качестве параметров вместе с остальными параметрами Oracle.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''1) Параметры виртуальной памяти:'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;Добавьте в конец файла ''/etc/sysctl.conf'' следующие строки:&amp;lt;br /&amp;gt;&lt;br /&gt;
''vm.dirty_expire_centisecs=500''&amp;lt;br /&amp;gt;&lt;br /&gt;
''vm.dirty_writeback_centisecs=100''&amp;lt;br /&amp;gt;&lt;br /&gt;
''vm.swappiness=0''&amp;lt;br /&amp;gt;&lt;br /&gt;
''vm.dirty_background_ratio=3''&amp;lt;br /&amp;gt;&lt;br /&gt;
''vm.dirty_ratio=15''&amp;lt;br /&amp;gt;&lt;br /&gt;
Или выполните в терминале следующие команды(от '''''root'''''):&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# echo '#### New Oracle Kernel Parameters ####'  &amp;gt;&amp;gt;  /etc/sysctl.conf''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# echo '#These parameters a recommended to control the rate at which virtual memory is reclaimed'  &amp;gt;&amp;gt;  /etc/sysctl.conf''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# echo 'vm.swappiness=0'  &amp;gt;&amp;gt;  /etc/sysctl.conf''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# echo 'vm.dirty_background_ratio=3'  &amp;gt;&amp;gt;  /etc/sysctl.conf''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# echo 'vm.dirty_ratio=15'  &amp;gt;&amp;gt;  /etc/sysctl.conf''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# echo 'vm.dirty_expire_centisecs=500'  &amp;gt;&amp;gt;  /etc/sysctl.conf''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# echo 'vm.dirty_writeback_centisecs=100'  &amp;gt;&amp;gt;  /etc/sysctl.conf''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# echo &amp;gt;&amp;gt; /etc/sysctl.conf''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# sysctl -p''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''2) Параметры общей памяти(kernel.shmmni, kernel.shmmax и kernel.shmall):'''&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Параметры ''kernel.shmmax'' и ''kernel.shmall'' зависят от количества RAM, установленной на сервере. Параметр ''kernel.shmmax'' указывается в байтах, а ''kernel. shmall'' в страницах.&lt;br /&gt;
Для определения максимума общей памяти (параметр ядра ''shmall'') в элементах размера страницы памяти, необходимо получить размер страницы в операционной системе (выполняем в терминале команду):&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''#getconf PAGE_SIZE''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Максимальный размер общего сегмента ''shmmax'' должен равняться, по меньшей мере, половине общего объема памяти.''SHMMAX'' не может превышать размер RAM минус один байт, но должен быть больше чем сумма всех SGA на данном хосте. Минимальное значение ''536870912''.&lt;br /&gt;
Oracle рекомендует установить максимальное количество сегментов общей памяти ''shmmni'' равным 4096.&lt;br /&gt;
Текущее значение этих параметров можно узнать, выполнив команды:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# cat /proc/sys/kernel/shmmax''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# cat /proc/sys/kernel/shmall''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# cat /proc/sys/kernel/shmmni''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
Параметр ''kernel.shmmax'' вычисляется следующим образом:&amp;lt;br /&amp;gt;&lt;br /&gt;
kernel.shmmax = RAM (в байтах) / 2,&amp;lt;br /&amp;gt;&lt;br /&gt;
Например:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:navy&amp;quot;&amp;gt;'''33568968704/2=16784484352'''&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Количество байт оперативной памяти можно узнать, введя в терминале команду ''free -b''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Минимальное значение для ''kernel.shmmax'' равняется &amp;lt;span style=&amp;quot;color:DarkGreen&amp;quot;&amp;gt;'''''536870912'''''&amp;lt;/span&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
Параметр ''kernel.shmall'' вычисляется следующим образом:&amp;lt;br /&amp;gt;&lt;br /&gt;
kernel.shmall = RAM (в байтах) / 4096,&amp;lt;br /&amp;gt;&lt;br /&gt;
Например:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:navy&amp;quot;&amp;gt;'''33568968704/4096=8195549'''&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Количество байт оперативной памяти можно узнать, введя в терминале команду ''free -b''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Минимальное значение для ''kernel.shmall'' равняется &amp;lt;span style=&amp;quot;color:DarkGreen&amp;quot;&amp;gt;'''''2097152'''''&amp;lt;/span&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
В случае, если ''shmall'' или ''shmmax'' по вычислениям меньше минимально рекомендованного, то необходимо присвоить этим параметрам рекомендованные значения.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:magenta&amp;quot;&amp;gt;'''''Ниже приводится пример расчёта параметров shmall и shmmax для сервера с количеством оперативной памяти равной 32 ГБ:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;&lt;br /&gt;
Выполните следующие команды в терминале, которые обновят содержимое ''etc/sysctl.conf'':&lt;br /&gt;
'''''# echo '## The following values are for 32 GB of RAM'  &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# echo 'kernel.shmmax = 16784484352'  &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# echo 'kernel.shmall = 8195549'  &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# echo '# do not scale this parameter with RAM'  &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# echo 'kernel.shmmni = 4096'  &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# echo &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# sysctl -p'''''&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''3) Семафоры:'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Linux предоставляет семафоры для передачи небольшого количества информации между процессами. Семафоры — это числа-счётчики или on/off значения, которые организуются в группы. СУБД Oracle необходимо больше групп, больше комнат в каждой группе и больше счётчиков, чем предоставляется операционной системой по умолчанию.&lt;br /&gt;
Измените параметр ''kernel.sem'', определяющий необходимое количество семафоров, выполнив следующую команду:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# echo 'kernel.sem = 250 32000 100 128'&amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''4) Сетевые порты:'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Измените параметр ''net.ipv4.ip_local_port_range'' в /etc/sysctl.conf для модификации диапазона ip портов для автоматического назначения клиентам исходящих портов, выполнив в терминале команду:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# echo 'net.ipv4.ip_local_port_range = 9000 65500'&amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''5) Оптимизация сетевых настроек (TCP/IP):'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Oracle и Oracle Universal Installer рекомендуют установить постоянные размеры для буфера максимальный и по умолчанию для сокетов приложений в Database 11g Release 2. Их рекомендованные значения – разумная точка для начала. Выполните в терминале следующие команды:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# echo 'net.core.rmem_default = 262144' &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# echo 'net.core.rmem_max = 4194304' &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# echo 'net.core.wmem_default = 262144' &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# echo 'net.core.wmem_max = 1048586' &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''6) Различная системная конфигурация:'''&amp;lt;/span&amp;gt;&lt;br /&gt;
*Вам может понадобиться увеличить следующие конфигурационные параметры, если они слишком малы:&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Максимальное количество открытых файлов:&amp;lt;/span&amp;gt;&lt;br /&gt;
Oracle рекомендует значение ''6815744'' как минимум. Проверьте значение на вашей системе, в случае необходимости изменения значения выполните в терминале команду&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''# echo 'fs.file-max = 6815744' &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Максимальное количество конкурентных асинхронных запросов ввода/вывода:&amp;lt;/span&amp;gt; &lt;br /&gt;
Oracle рекомендует увеличить это значение до значения ''1048576''. Выполните в терминале команду &amp;lt;br /&amp;gt;&lt;br /&gt;
'''''# echo 'fs.aio-max-nr = 1048576' &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&lt;br /&gt;
&amp;lt;br &amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;b &amp;gt;Ограничения оболочки для пользователя Oracle.&amp;lt;/b &amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ==&lt;br /&gt;
Во время обычной работы аккаунт Oracle запускает много процессов, открывает большое количество файлов и требует больше ресурсов, чем обычный пользователь. В то же время, пределы (hard limits) на аккаунте предотвратит в некоторых случаях зависание процессов (resource starvation). Конфигурация PAM по умолчанию (в /etc/pam.d/system-auth) загружает модули (session required pam_limits.so) которые устанавливают и приводят в действие эти пределы.&amp;lt;br /&amp;gt;&lt;br /&gt;
Как администратор '''''root''''' добавьте следующие строчки в ''/etc/security/limits.conf'':&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
oracle&amp;amp;#9;&amp;amp;#9;soft&amp;amp;#9;&amp;amp;#9;nproc&amp;amp;#9;&amp;amp;#9;2047&lt;br /&gt;
oracle&amp;amp;#9;&amp;amp;#9;hard&amp;amp;#9;&amp;amp;#9;nproc&amp;amp;#9;&amp;amp;#9;16384&lt;br /&gt;
oracle&amp;amp;#9;&amp;amp;#9;soft&amp;amp;#9;&amp;amp;#9;nofile&amp;amp;#9;&amp;amp;#9;1024&lt;br /&gt;
oracle&amp;amp;#9;&amp;amp;#9;hard&amp;amp;#9;&amp;amp;#9;nofile&amp;amp;#9;&amp;amp;#9;65536&lt;br /&gt;
oracle&amp;amp;#9;&amp;amp;#9;soft&amp;amp;#9;&amp;amp;#9;stack&amp;amp;#9;&amp;amp;#9;10240&lt;br /&gt;
oracle&amp;amp;#9;&amp;amp;#9;hard&amp;amp;#9;&amp;amp;#9;stack&amp;amp;#9;&amp;amp;#9;32768&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Отредактируйте файл ''/etc/pam.d/login'', добавив в него строку ''session required pam_limits.so''&lt;br /&gt;
Отредактируйте файл ''/etc/profile'' добавив перед:&lt;br /&gt;
:''unset i''&lt;br /&gt;
:''unset pathmunge''&lt;br /&gt;
Текст со следующим содержанием:&lt;br /&gt;
:''if [ $USER = &amp;quot;oracle&amp;quot; ]; then''&lt;br /&gt;
:''	ulimit -u 16384 -n 65536''&lt;br /&gt;
:''fi''&lt;br /&gt;
Создаём необходимые для установки Oracle каталоги, выставляем на них соответствующие права и владельцев:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# chown -R oracle:oinstall /u01'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# chmod -R 775 /u01'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# mkdir -p /u02/oradata'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# chown -R oracle:oinstall /u02'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# chmod -R 775 /u02/oradata'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для серверов БД логинимся в системе как пользователь oracle и добавляем в ''.bash_profile'' следующую информацию:&lt;br /&gt;
: umask 022&lt;br /&gt;
: TMP=/tmp; export TMP&lt;br /&gt;
: TMPDIR=$TMP; export TMPDIR&lt;br /&gt;
: ORACLE_HOSTNAME=&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;''$(hostname)''&amp;lt;/span&amp;gt;; export ORACLE_HOSTNAME&lt;br /&gt;
: ORACLE_UNQNAME=&amp;lt;u&amp;gt;&amp;lt;NAME&amp;gt;&amp;lt;/u&amp;gt;; export ORACLE_UNQNAME&lt;br /&gt;
: ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE&lt;br /&gt;
: export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1&lt;br /&gt;
: export ORACLE_SID=&amp;lt;u&amp;gt;&amp;lt;NAME&amp;gt;&amp;lt;/u&amp;gt;&lt;br /&gt;
: export NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251&lt;br /&gt;
: export ORACLE_HOME_LISTNER=$ORACLE_HOME&lt;br /&gt;
: PATH=$ORACLE_HOME/bin:$PATH&lt;br /&gt;
: export PATH&lt;br /&gt;
: alias sqlplus='rlwrap sqlplus'&lt;br /&gt;
: alias rman='rlwrap rman'&lt;br /&gt;
&amp;lt;!-- &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;''hostname''&amp;lt;/span&amp;gt; необходимо заменить на имя хоста, на котором производится установка, затем перегружаем .bash_profile командой:!--&amp;gt;&lt;br /&gt;
Затем перегружаем .bash_profile командой:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# source ~/.bash_profile'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Настройка ОС для серверов буферных хранилищ Oracle выполнена. Далее необходимо произвести установку СУБД Oracle, руководствоваться необходимо [[Установка СУБД Oracle 11g]]&lt;br /&gt;
== &amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;b &amp;gt;Ссылки&amp;lt;/b &amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ==&lt;br /&gt;
[https://oracle-base.com/articles/linux/rlwrap#manual-installation Ручная установка rlwrap]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://github.com/hanslub42/rlwrap/tree/v0.43 rlwrap]&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=Expr&amp;diff=702</id>
		<title>Expr</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=Expr&amp;diff=702"/>
				<updated>2019-03-02T11:02:36Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: Добавил страницу &amp;quot;expr&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''expr''' — команда для вычисления арифметических выражений.&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
&amp;lt;code bash&amp;gt;expr ВЫРАЖЕНИЯ&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code bash&amp;gt;expr OPTION&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Выражения == &lt;br /&gt;
Выражения состоят из аргументов отделяемых пробелами и могут принимать следующий вид:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
| '''''Выражение''''' || '''''Результат'''''&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;'''arg1''' &amp;lt;nowiki&amp;gt;&amp;quot;|&amp;quot;&amp;lt;/nowiki&amp;gt; '''arg2'''&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;'''arg1''', если он не пустой и не ''0'', в противном случае '''arg2'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;'''arg1''' &amp;lt;nowiki&amp;gt;&amp;quot;&amp;amp;&amp;quot;&amp;lt;/nowiki&amp;gt; '''arg2'''&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;'''arg1''', если ни один аргумент не равен нулю или ''0'', в противном случае ''0''&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
||&amp;lt;tt&amp;gt;'''arg1''' &amp;lt;nowiki&amp;gt;&amp;quot;&amp;lt;&amp;quot;&amp;lt;/nowiki&amp;gt; '''arg2'''&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;''1'', если '''arg1''' меньше '''arg2''', в обратном случае ''0''&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;'''arg1''' &amp;lt;nowiki&amp;gt;&amp;quot;&amp;lt;=&amp;quot;&amp;lt;/nowiki&amp;gt; '''arg2'''&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;''1'', если '''arg1''' меньше или равен '''arg2''', в обратном случае ''0''&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;'''arg1''' &amp;lt;nowiki&amp;gt;&amp;quot;=&amp;quot;&amp;lt;/nowiki&amp;gt; '''arg2'''&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;''1'', если '''arg1''' равен '''arg2''',  в обратном случае ''0''&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;'''arg1''' &amp;lt;nowiki&amp;gt;&amp;quot;!=&amp;quot;&amp;lt;/nowiki&amp;gt; '''arg2'''&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;''1'', если '''arg1''' не равен '''arg2''', в обратном случае ''0''&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;'''arg1''' &amp;lt;nowiki&amp;gt;&amp;quot;&amp;gt;=&amp;quot;&amp;lt;/nowiki&amp;gt; '''arg2'''&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;''1'', если '''arg1''' больше или равен '''arg2''', в обратном случае ''0''&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;'''arg1''' &amp;lt;nowiki&amp;gt;&amp;quot;&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt; '''arg2'''&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;''1'', если '''arg1''' больше '''arg2''', в обратном случае ''0''&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;'''arg1''' &amp;lt;nowiki&amp;gt;&amp;quot;+&amp;quot;&amp;lt;/nowiki&amp;gt; '''arg2'''&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;Арифметическая сумма '''arg1''' и '''arg2'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;'''arg1''' &amp;lt;nowiki&amp;gt;&amp;quot;-&amp;quot;&amp;lt;/nowiki&amp;gt; '''arg2'''&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;Арифметическая разность '''arg1''' и '''arg2'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;'''arg1''' &amp;lt;nowiki&amp;gt;&amp;quot;*&amp;quot;&amp;lt;/nowiki&amp;gt; '''arg2'''&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;Арифметическое произведение '''arg1''' и '''arg2'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;'''arg1''' &amp;lt;nowiki&amp;gt;&amp;quot;/&amp;quot;&amp;lt;/nowiki&amp;gt; '''arg2'''&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;Арифметическое частное от деления '''arg1''' на '''arg2'''&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;'''arg1''' &amp;lt;nowiki&amp;gt;&amp;quot;%&amp;quot;&amp;lt;/nowiki&amp;gt; '''arg2'''&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;Арифметический остаток от деления '''arg1''' на '''arg2'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;'''STRING''' &amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; '''REGEXP'''&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;Верно, если найдена маска '''REGEXP''' в строке '''STRING'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;match '''STRING REGEXP'''&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;Тоже что и '''STRING : REGEXP'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;substr '''STRING POS LENGTH'''&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;Подстрока из '''STRING''', первая позиция нумеруется как ''1''&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;index '''STRING CHARS'''&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;Позиция вхождения символа '''CHARS''' в строке '''STRING''', если найден, иначе ''0''&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;length '''STRING'''&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;Длина строки '''STRING'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;+ '''TOKEN'''&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;Интерпретировать '''TOKEN''' как строку, даже если это ключевое слово '''match''' или оператор '''/'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;'''( EXPRESSION )'''&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;Значение выражения '''EXPRESSION'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Следует помнить, что операторы должны быть '''экранированы''' или заключены в '''кавычки'''. ''Арифметическое сравнение'' допустимо только для '''чисел''', иначе сравнивается, как '''текст'''. '''Сопоставление''' с '''шаблоном''' возвращает строку между \( и \) или нуль; если \( и \) не используются, то возвращается число совпавших символов или 0.&lt;br /&gt;
&lt;br /&gt;
Статус вычисления выражения устанавливается в:&amp;lt;br/&amp;gt;&lt;br /&gt;
* 0, если выражение не пустое и не 0;&lt;br /&gt;
* 1, если выражение равно нулю или 0;&lt;br /&gt;
* 2, если выражение синтаксически неверно;&lt;br /&gt;
* 3, если произошла ошибка.&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B_%D0%B8_%D1%83%D1%82%D0%B8%D0%BB%D0%B8%D1%82%D1%8B_Unix/Linux&amp;diff=701</id>
		<title>Основные команды и утилиты Unix/Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B_%D0%B8_%D1%83%D1%82%D0%B8%D0%BB%D0%B8%D1%82%D1%8B_Unix/Linux&amp;diff=701"/>
				<updated>2019-03-02T10:20:43Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;На данной странице приводится список основных утилит пакета ''GNU Coreutils'', а также команд не входящих в данный пакет. Описание некоторых команд/утилит приводится на страницах данной WIKI.&lt;br /&gt;
&lt;br /&gt;
*[[bzip2|bzip2 — Утилита сжатия данных]]&lt;br /&gt;
*[[cat|cat — Команда выводящая последовательно указанные файлы]]&lt;br /&gt;
*[[cd — Команда смены директории]]&lt;br /&gt;
*[[chattr — Команда изменения атрибутов файлов]]&lt;br /&gt;
*[[chgrp — Команда изменяющая группу владельца файла]]&lt;br /&gt;
*[[Chmod|chmod — Команда изменения прав доступа к файлам и/или каталогам]]&lt;br /&gt;
*[[chown — Команда назначения владельца файлов и/или каталога]]&lt;br /&gt;
*[[expr|expr — Команда вычисления выражения]]&lt;br /&gt;
*[[cp — Команда копирования файлов и/или каталогов]]&lt;br /&gt;
*[[dd|dd — Команда копирования и преобразования файлов]]&lt;br /&gt;
*[[df|df — Команда отображение свободного места на смонтированных файловых системах]]&lt;br /&gt;
*[[find|find — Команда поиска файлов]]&lt;br /&gt;
*[[getfacl|getfacl — Команда просмотра установленных ACL]]&lt;br /&gt;
*[[grep|grep — Команда находящая на вводе строки, отвечающие заданному регулярному выражению]]&lt;br /&gt;
*[[gzip|gzip — Утилита сжатия данных]]&lt;br /&gt;
*[[ifconfig|ifconfig — Утилита конфигурирования параметров сетевого интерфейса]]&lt;br /&gt;
*[[install|install — Команда копирования файлов и установка атрибутов]]&lt;br /&gt;
*[[iproute2|iproute2 — набор утилит для управления параметрами сетевых устройств в Linux]]&lt;br /&gt;
*[[iptables|iptables — Утилита управления брендмауэром]]&lt;br /&gt;
*[[less|less — Команда просмотра текстовых файлов]]&lt;br /&gt;
*[[ln|ln — Команда создания ссылки на файл]]&lt;br /&gt;
*[[ls — Команда печати содержимого каталога]]&lt;br /&gt;
*[[lsattr — Команда просмотра установленных атрибутов файлов]]&lt;br /&gt;
*[[mkdir — Команда создания директории]]&lt;br /&gt;
*[[more|more — Команда просмотра текстовых файлов]]&lt;br /&gt;
*[[mv — Команда перемещения/переименовывания файлов и/или каталогов]]&lt;br /&gt;
*[[netstat|netstat — Команда выводящая на дисплей состояние TCP-соединений]]&lt;br /&gt;
*[[ping|ping — Команда проверки целостности и качества соединения в сетях]]&lt;br /&gt;
*[[ps|ps — Команда выводящая информацию о работающих процессах]]&lt;br /&gt;
*[[rm — Команда удаления файлов]]&lt;br /&gt;
*[[rmdir — Команда удаления пустой директории]]&lt;br /&gt;
*[[rsync —  Cинхронизация файлов и каталогов в двух местах]]&lt;br /&gt;
*[[setfacl|setfacl — Команда назначения, модификации и удаления ACL]]&lt;br /&gt;
*[[Scp — Команда безопасного сетевого копирования файлов|scp — Команда безопасного сетевого копирования файлов]]&lt;br /&gt;
*[[shred|shred — Команда перезаписывающая файлы, чтобы скрыть содержимое]]&lt;br /&gt;
*[[sort|sort — Команда сортировки строк текстовых файлов]]&lt;br /&gt;
*[[ssh|ssh — Команда безопасного удалённого соединения]]&lt;br /&gt;
*[[sudo|sudo — Команда повышения привилегий пользователя]]&lt;br /&gt;
*[[tar|tar — Утилита для работы с архивами .tar]]&lt;br /&gt;
*[[touch — Команда создания пустого файла и модификации времени последнего изменения файла]]&lt;br /&gt;
*[[useradd|useradd — Утилита для создания нового пользователя или изменения информации пользователях]]&lt;br /&gt;
*[[userdel|userdel — Утилита удаляющая учётную запись и файлы пользователя]]&lt;br /&gt;
*[[usermod|usermod — Утилита изменяющая учётную запись пользователя]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Некоторые пакеты coreutils 8.23 и команды не входящие в данный пакет:&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[cat|cat]]&amp;lt;/code&amp;gt; || Команда выводящая последовательно указанные файлы)&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Chcon|chcon]]&amp;lt;/code&amp;gt; || Изменяет контекст безопасности файла (SELinux)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Chgrp — Команда изменяющая группу владельца файла|chgrp]]&amp;lt;/code&amp;gt; || Изменяет группу владельца файла&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Chown — Команда назначения владельца файлов и/или каталога|chown]]&amp;lt;/code&amp;gt; || Изменяет владельца файла&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Chmod|chmod]]&amp;lt;/code&amp;gt; || Изменяет права доступа к файлу&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Cd — Команда смены директории|сd]]&amp;lt;/code&amp;gt; || Изменяет права доступа к файлу&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Cp_—_Команда_копирования_файлов_и/или_каталогов|cp]]&amp;lt;/code&amp;gt; || Копирование файлов и(или) каталогов&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[dd]]&amp;lt;/code&amp;gt; || Копирование и преобразование файлов&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[df]]&amp;lt;/code&amp;gt; || Отображает свободное место на смонтированных файловых системах&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Ls_—_Команда_печати_содержимого_каталога#.D0.9E.D0.BA.D1.80.D1.83.D0.B6.D0.B5.D0.BD.D0.B8.D0.B5|dir]]&amp;lt;/code&amp;gt; || То же самое, что и &amp;lt;tt&amp;gt;ls -C -b&amp;lt;/tt&amp;gt; (список файлов выводится в колонках с вертикальной сортировкой)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[dircolors]]&amp;lt;/code&amp;gt; || Устанавливает цветовую схему для вывода команды &amp;lt;tt&amp;gt;ls&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[install]]&amp;lt;/code&amp;gt; || Копирует файлы и устанавливает атрибуты&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[ln (UNIX)|ln]]&amp;lt;/code&amp;gt; || Создаёт ссылку на файл&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Ls_—_Команда_печати_содержимого_каталога|ls]]&amp;lt;/code&amp;gt; || Выводит список файлов&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Mkdir — Команда создания директории|mkdir]]&amp;lt;/code&amp;gt; || Создаёт каталоги&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[mkfifo]]&amp;lt;/code&amp;gt; || Создаёт FIFO (именованные каналы)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[mknod]]&amp;lt;/code&amp;gt; || Создаёт специальные файлы&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[mktemp]]&amp;lt;/code&amp;gt; || Создаёт временный файл или каталог&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Mv_—_Команда_перемещения/переименовывания_файлов_и/или_каталогов | mv]]&amp;lt;/code&amp;gt; || Перемещает и переименовывает файлы&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[realpath]]&amp;lt;/code&amp;gt; || Возвращает полученный абсолютный или относительный путь к файлу&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Rm_—_Команда_удаления_файлов|rm]]&amp;lt;/code&amp;gt; || Удаляет файлы&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Rmdir — Команда удаления пустой директории | rmdir]]&amp;lt;/code&amp;gt; || Удаляет пустые каталоги&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[shred]]&amp;lt;/code&amp;gt; || Перезаписывает файлы чтобы скрыть содержимое (так называемое безопасное удаление), и опционально удаляет файлы&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[sync]]&amp;lt;/code&amp;gt; || Записывает на диск буферы файловых систем&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Touch_—_Команда_создания_пустого_файла_и_модификации_времени_последнего_изменения_файла|touch]]&amp;lt;/code&amp;gt; || Изменяет время создания, модификации файлов&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[truncate]]&amp;lt;/code&amp;gt; || Уменьшает или увеличивает размер файла до заданного размера&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Ls_—_Команда_печати_содержимого_каталога#.D0.9F.D0.BE.D0.B4.D1.80.D0.BE.D0.B1.D0.BD.D0.BE.D1.81.D1.82.D0.B8_.D0.B2.D0.B5.D1.80.D1.81.D0.B8.D0.B8_GNU|vdir]]&amp;lt;/code&amp;gt; || То же самое, что и &amp;lt;tt&amp;gt;ls -l -b&amp;lt;/tt&amp;gt; (выводит список файлов в длинном формате)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B_%D0%B8_%D1%83%D1%82%D0%B8%D0%BB%D0%B8%D1%82%D1%8B_Unix/Linux&amp;diff=700</id>
		<title>Основные команды и утилиты Unix/Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B_%D0%B8_%D1%83%D1%82%D0%B8%D0%BB%D0%B8%D1%82%D1%8B_Unix/Linux&amp;diff=700"/>
				<updated>2019-03-02T10:19:22Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: + expr&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;На данной странице приводится список основных утилит пакета ''GNU Coreutils'', а также команд не входящих в данный пакет. Описание некоторых команд/утилит приводится на страницах данной WIKI.&lt;br /&gt;
&lt;br /&gt;
*[[bzip2|bzip2 — Утилита сжатия данных]]&lt;br /&gt;
*[[cat|cat — Команда выводящая последовательно указанные файлы]]&lt;br /&gt;
*[[cd — Команда смены директории]]&lt;br /&gt;
*[[chattr — Команда изменения атрибутов файлов]]&lt;br /&gt;
*[[chgrp — Команда изменяющая группу владельца файла]]&lt;br /&gt;
*[[Chmod|chmod — Команда изменения прав доступа к файлам и/или каталогам]]&lt;br /&gt;
*[[chown — Команда назначения владельца файлов и/или каталога]]&lt;br /&gt;
*[[expr — Команда вычисления выражения]]&lt;br /&gt;
*[[cp — Команда копирования файлов и/или каталогов]]&lt;br /&gt;
*[[dd|dd — Команда копирования и преобразования файлов]]&lt;br /&gt;
*[[df|df — Команда отображение свободного места на смонтированных файловых системах]]&lt;br /&gt;
*[[find|find — Команда поиска файлов]]&lt;br /&gt;
*[[getfacl|getfacl — Команда просмотра установленных ACL]]&lt;br /&gt;
*[[grep|grep — Команда находящая на вводе строки, отвечающие заданному регулярному выражению]]&lt;br /&gt;
*[[gzip|gzip — Утилита сжатия данных]]&lt;br /&gt;
*[[ifconfig|ifconfig — Утилита конфигурирования параметров сетевого интерфейса]]&lt;br /&gt;
*[[install|install — Команда копирования файлов и установка атрибутов]]&lt;br /&gt;
*[[iproute2|iproute2 — набор утилит для управления параметрами сетевых устройств в Linux]]&lt;br /&gt;
*[[iptables|iptables — Утилита управления брендмауэром]]&lt;br /&gt;
*[[less|less — Команда просмотра текстовых файлов]]&lt;br /&gt;
*[[ln|ln — Команда создания ссылки на файл]]&lt;br /&gt;
*[[ls — Команда печати содержимого каталога]]&lt;br /&gt;
*[[lsattr — Команда просмотра установленных атрибутов файлов]]&lt;br /&gt;
*[[mkdir — Команда создания директории]]&lt;br /&gt;
*[[more|more — Команда просмотра текстовых файлов]]&lt;br /&gt;
*[[mv — Команда перемещения/переименовывания файлов и/или каталогов]]&lt;br /&gt;
*[[netstat|netstat — Команда выводящая на дисплей состояние TCP-соединений]]&lt;br /&gt;
*[[ping|ping — Команда проверки целостности и качества соединения в сетях]]&lt;br /&gt;
*[[ps|ps — Команда выводящая информацию о работающих процессах]]&lt;br /&gt;
*[[rm — Команда удаления файлов]]&lt;br /&gt;
*[[rmdir — Команда удаления пустой директории]]&lt;br /&gt;
*[[rsync —  Cинхронизация файлов и каталогов в двух местах]]&lt;br /&gt;
*[[setfacl|setfacl — Команда назначения, модификации и удаления ACL]]&lt;br /&gt;
*[[Scp — Команда безопасного сетевого копирования файлов|scp — Команда безопасного сетевого копирования файлов]]&lt;br /&gt;
*[[shred|shred — Команда перезаписывающая файлы, чтобы скрыть содержимое]]&lt;br /&gt;
*[[sort|sort — Команда сортировки строк текстовых файлов]]&lt;br /&gt;
*[[ssh|ssh — Команда безопасного удалённого соединения]]&lt;br /&gt;
*[[sudo|sudo — Команда повышения привилегий пользователя]]&lt;br /&gt;
*[[tar|tar — Утилита для работы с архивами .tar]]&lt;br /&gt;
*[[touch — Команда создания пустого файла и модификации времени последнего изменения файла]]&lt;br /&gt;
*[[useradd|useradd — Утилита для создания нового пользователя или изменения информации пользователях]]&lt;br /&gt;
*[[userdel|userdel — Утилита удаляющая учётную запись и файлы пользователя]]&lt;br /&gt;
*[[usermod|usermod — Утилита изменяющая учётную запись пользователя]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Некоторые пакеты coreutils 8.23 и команды не входящие в данный пакет:&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[cat|cat]]&amp;lt;/code&amp;gt; || Команда выводящая последовательно указанные файлы)&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Chcon|chcon]]&amp;lt;/code&amp;gt; || Изменяет контекст безопасности файла (SELinux)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Chgrp — Команда изменяющая группу владельца файла|chgrp]]&amp;lt;/code&amp;gt; || Изменяет группу владельца файла&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Chown — Команда назначения владельца файлов и/или каталога|chown]]&amp;lt;/code&amp;gt; || Изменяет владельца файла&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Chmod|chmod]]&amp;lt;/code&amp;gt; || Изменяет права доступа к файлу&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Cd — Команда смены директории|сd]]&amp;lt;/code&amp;gt; || Изменяет права доступа к файлу&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Cp_—_Команда_копирования_файлов_и/или_каталогов|cp]]&amp;lt;/code&amp;gt; || Копирование файлов и(или) каталогов&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[dd]]&amp;lt;/code&amp;gt; || Копирование и преобразование файлов&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[df]]&amp;lt;/code&amp;gt; || Отображает свободное место на смонтированных файловых системах&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Ls_—_Команда_печати_содержимого_каталога#.D0.9E.D0.BA.D1.80.D1.83.D0.B6.D0.B5.D0.BD.D0.B8.D0.B5|dir]]&amp;lt;/code&amp;gt; || То же самое, что и &amp;lt;tt&amp;gt;ls -C -b&amp;lt;/tt&amp;gt; (список файлов выводится в колонках с вертикальной сортировкой)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[dircolors]]&amp;lt;/code&amp;gt; || Устанавливает цветовую схему для вывода команды &amp;lt;tt&amp;gt;ls&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[install]]&amp;lt;/code&amp;gt; || Копирует файлы и устанавливает атрибуты&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[ln (UNIX)|ln]]&amp;lt;/code&amp;gt; || Создаёт ссылку на файл&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Ls_—_Команда_печати_содержимого_каталога|ls]]&amp;lt;/code&amp;gt; || Выводит список файлов&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Mkdir — Команда создания директории|mkdir]]&amp;lt;/code&amp;gt; || Создаёт каталоги&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[mkfifo]]&amp;lt;/code&amp;gt; || Создаёт FIFO (именованные каналы)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[mknod]]&amp;lt;/code&amp;gt; || Создаёт специальные файлы&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[mktemp]]&amp;lt;/code&amp;gt; || Создаёт временный файл или каталог&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Mv_—_Команда_перемещения/переименовывания_файлов_и/или_каталогов | mv]]&amp;lt;/code&amp;gt; || Перемещает и переименовывает файлы&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[realpath]]&amp;lt;/code&amp;gt; || Возвращает полученный абсолютный или относительный путь к файлу&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Rm_—_Команда_удаления_файлов|rm]]&amp;lt;/code&amp;gt; || Удаляет файлы&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Rmdir — Команда удаления пустой директории | rmdir]]&amp;lt;/code&amp;gt; || Удаляет пустые каталоги&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[shred]]&amp;lt;/code&amp;gt; || Перезаписывает файлы чтобы скрыть содержимое (так называемое безопасное удаление), и опционально удаляет файлы&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[sync]]&amp;lt;/code&amp;gt; || Записывает на диск буферы файловых систем&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Touch_—_Команда_создания_пустого_файла_и_модификации_времени_последнего_изменения_файла|touch]]&amp;lt;/code&amp;gt; || Изменяет время создания, модификации файлов&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[truncate]]&amp;lt;/code&amp;gt; || Уменьшает или увеличивает размер файла до заданного размера&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Ls_—_Команда_печати_содержимого_каталога#.D0.9F.D0.BE.D0.B4.D1.80.D0.BE.D0.B1.D0.BD.D0.BE.D1.81.D1.82.D0.B8_.D0.B2.D0.B5.D1.80.D1.81.D0.B8.D0.B8_GNU|vdir]]&amp;lt;/code&amp;gt; || То же самое, что и &amp;lt;tt&amp;gt;ls -l -b&amp;lt;/tt&amp;gt; (выводит список файлов в длинном формате)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=Faq&amp;diff=699</id>
		<title>Faq</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=Faq&amp;diff=699"/>
				<updated>2018-03-28T12:53:35Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: Отредактировал страницу&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Отличие обычного пользователя Linux от профессионала заключается во времени, проведённом за изучением хитростей и приёмов, которые позволяют решать не быстрые задачи в одно мгновение. Если вы хотите увеличить скорость работы без долгого набивания шишек в консоли, здесь приводится список лёгких для изучения приёмов. Они помогут сделать вашу работу эффективной и менее трудозатратной.&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Список не ваших процессов'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для получения списка всех процессов, запущенных &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;''не текущим пользователем''&amp;lt;/span&amp;gt;, выполните команду:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ps aux | grep -v `whoami`&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для получения списка из 10 процессов, которые сильнее всего загружают систему, выполните команду:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ps aux --sort=-%cpu | grep -m 11 -v `whoami`&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Замена текста в файлах'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Если надо заменить текст не в одном файле, то имеется несколько способов. Для того, чтобы заменить текст '''''«Windows»''''' на '''''«Linux»''''' во всех файлах в текущей директории, название которой начинается с «test», введите в консоли('''''необходим интерпретатор perl'''''):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$perl -i -pe 's/Windows/Linux/;' test*&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Чтобы провести ту же операцию во всех поддиректориях:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$find. -name '*.txt' -print | xargs perl -pi -e's/Windows/Linux/ig' *.txt&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Если Вы хотите сделать то же самое для на обычных файлов со множеством переносов строк и странных символов (файл — в другой кодировке):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$find -type f -name '*.txt' -print0 | xargs --null perl -pi -e 's/Windows/Linux/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Исправить консоль'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Если использовать команду [[less]] или [[cat]] для просмотра файла, в конце которого — бинарные данные, то можно легко испортить консоль. Потому что в бинарных данных могут попасться любые сочетания управляющих кодов: компьютер будет издавать звуки «бип-бип», появятся прикольные символы, странные цветовые сочетания. В конце концов, шрифт изменится на какие-то иероглифы. Bash, очевидно, продолжает работать, но вы ничего не можете прочитать и сделать. Просто наберите в консоли команду инициализации:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$reset&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Запуск множественных X-сессий'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Если надо дать кому-нибудь доступ к Вашему компьютеру, то вы откроете для себя, что это не всегда необходимо. Если предположить, что компьютер стартует в графическом режиме (''runlevel 5''), то, одновременно нажав '''Ctrl+Alt+&amp;lt;F7&amp;gt;''', вы попадете в консоль. Введите логин и пароль, потом исполните следующий код:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$startx -- :1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;чтобы войти в графическое окружение. Чтобы вернуться в предыдущую сессию, нажмите '''Ctrl+Alt+&amp;lt;F7&amp;gt;''', для ещё одного возврата — '''Ctrl+Alt+&amp;lt;F8&amp;gt;'''. Вы можете этот трюк: клавиши с '''F1''' по '''F6''' отвечают за &amp;lt;u&amp;gt;6 сессий консоли&amp;lt;/u&amp;gt;, а клавиши с '''F7''' по '''F12''' — за &amp;lt;u&amp;gt;6 Х-сессий&amp;lt;/u&amp;gt;. Подводный камень: в разных дистрибутивах могут использоваться разные сочетания клавиш.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Лёгкое резервное копирование'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Если надо сделать резервную копию папки и скопировать только изменившиеся файлы, то можно использовать для этого rsync (вам нужен аккаунт на удалённом компьютере):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$rsync -vare ssh jono@192.168.0.2:/home/jono/importantfiles/* /home/jono/backup/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Поиск самых больших файлов в текущей директории'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Можно столкнуться с проблемой, когда надо удалить несколько больших файлов. Их можно найти в текущей директории с помощью команды:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ls -lSrh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Ключ “r” означает, что большие файлы должны выводиться в конце. Следующей командой можно найти самые большие файлы MP3/MPEG:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ls -lSrh *.mp*&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Также можно найти самые большие директории:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$du -kx | egrep -v &amp;quot;\./.+/&amp;quot; | sort -n&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Оптимизация баз данных MySQL'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;При любом изменении структуры базы данных или удалении больших объёмов данных, файлы могут стать фрагментированными, что приводит к потере производительности. Просто запомните простое правило — запускать оптимизатор базы при любом изменении базы:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#mysqloptimize -A -u&amp;lt;username&amp;gt; -p&amp;lt;password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#mysqlcheck --optimize -A -u&amp;lt;username&amp;gt; -p&amp;lt;password&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Список открытых портов'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Получить список открытых портов в состоянии ''Listen'' в Linux очень просто, для этого достаточно выполнить:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#netstat -lnp&lt;br /&gt;
 Active Internet connections (only servers)&lt;br /&gt;
 Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name &lt;br /&gt;
 tcp 0 0 0.0.0.0:5280 0.0.0.0:* LISTEN 698/perl &lt;br /&gt;
 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 217/httpd tcp&lt;br /&gt;
 0 0 10.42.3.2:53 0.0.0.0:* LISTEN 220/named tcp&lt;br /&gt;
 0 0 10.42.4.6:53 0.0.0.0:* LISTEN 220/named tcp&lt;br /&gt;
 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 220/named tcp &lt;br /&gt;
 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 200/sshd udp &lt;br /&gt;
 0 0 0.0.0.0:32768 0.0.0.0:* 220/named udp &lt;br /&gt;
 0 0 10.42.3.2:53 0.0.0.0:* 220/named udp &lt;br /&gt;
 0 0 10.42.4.6:53 0.0.0.0:* 220/named udp &lt;br /&gt;
 0 0 127.0.0.1:53 0.0.0.0:* 220/named udp &lt;br /&gt;
 0 0 0.0.0.0:67 0.0.0.0:* 222/dhcpd raw &lt;br /&gt;
 0 0 0.0.0.0:1 0.0.0.0:* 7 222/dhcpd&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;В этом примере видно, что процесс с PID'ом 698 — процесс интерпретатора Perl, который слушает порт 5280. Если вы не root в системе, то система не покажет пути к программам.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Поиск занятых устройств'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Вы наверняка сталкивались с ситуацией, когда надо отмаунтить диск, но система при попытке отключения сообщает о том, что он занят. Одной командой можно узнать, какое приложение использует его:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof +D /mnt/windows&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Она показывает PID и команду запуска любого процесса, использующего /mnt/windows.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''Поиск изменённых сегодня файлов'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Например, утром вы создали файл, который именно сейчас очень нужен. Однако, вы не можете вспомнить его название. Вручную перебирать домашнюю директорию бессмысленно, где скопилась не одна тысяча файлов. Но есть небольшой приём, показывающий эффективность пайпов и объединения нескольких команд консоли:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ls -al --time-style=+%D | grep `date +%D`&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Параметры команды [[Ls_—_Команда_печати_содержимого_каталога|ls]] требуют вывода даты в определенном формате. Хитрость в том: то, что выдаст [[Ls_—_Команда_печати_содержимого_каталога|ls]], идет на вход [[grep]]. Параметр grep сами по себе команда (заключена в обратные апострофы), которая подставляет текущую дату в шаблон для отсева. Её легко модифицировать для поиска по другим датам, размеру файла и т.д.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Поиск больших файлов в Linux'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Поиск больших файлов особенно актуален когда на диске заканчивается место и приходится искать кандидатов на удаление. Самый лучший способ чтобы найти все самые большие файлы на хосте с Linux - воспользоваться командной строкой. В принципе не существует простой команды для поиска самых больших файлов в Linux. Однако, можно с лёгкостью получить список самых больших файлов, используя комбинацию нескольких простых команд.Выполните следующую комбинацию команд для поиска десяти самых больших файлов в Linux, начиная с директории &amp;lt;DIR&amp;gt; (измените &amp;lt;DIR&amp;gt; на директорию в которой Вы хотите запустить поиск):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#find &amp;lt;DIR&amp;gt; -mount -type f -ls 2&amp;gt; /dev/null | sort -rnk7 | head -10 | awk '{printf &amp;quot;%10d MB\t%s\n&amp;quot;,($7/1024)/1024,$NF}'&lt;br /&gt;
 106 MB /var/lib/mysql/ibdata1 &lt;br /&gt;
 94 MB /usr/lib/locale/locale-archive &lt;br /&gt;
 41 MB /scripts/20130206-015833.tar.gz &lt;br /&gt;
 41 MB /scripts/20130206-004839.tar.gz &lt;br /&gt;
 41 MB /scripts/20130206-130400.tar.gz &lt;br /&gt;
 41 MB /scripts/20130206-000442.tar.gz &lt;br /&gt;
 41 MB /scripts/20130206-132019.tar.gz &lt;br /&gt;
 41 MB /root/20130208-133954.tar.gz &lt;br /&gt;
 33 MB /var/log/messages-20130303 &lt;br /&gt;
 32 MB /var/lib/rpm/Packages&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Найти 10 самых больших фалов, начиная с '/home'&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#find /home -mount -type f -ls 2&amp;gt; /dev/null | sort -rnk7 | head -10 | awk '{printf &amp;quot;%10d MB\t%s\n&amp;quot;,($7/1024)/1024,$NF}'&lt;br /&gt;
 3007 MB /home/user/Desktop/share/linux-65835.iso &lt;br /&gt;
 448 MB /home/user/Pictures/Turkey/SAM_4590.AVI &lt;br /&gt;
 266 MB /home/user/Pictures/Turkey/SAM_4588.AVI &lt;br /&gt;
 173 MB /home/user/Camera/VID_20130909_120713.mp4 &lt;br /&gt;
 152 MB /home/user/Camera/VID_20130909_115427.mp4 &lt;br /&gt;
 133 MB /home/user/Camera/VID_20130909_210904.mp4 &lt;br /&gt;
 133 MB /home/user/Pictures/Paris/VID_20130928_182431.mp4 &lt;br /&gt;
 131 MB /home/user/Pictures/Turkey/SAM_4597.AVI &lt;br /&gt;
 129 MB /home/user/Pictures/Turkey/SAM_4641.AVI&lt;br /&gt;
 127 MB /home/user/Desktop/tmp/Camera/VID_20130911_164440.mp4&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Сортировка вывода по размеру файлов командой &amp;lt;code&amp;gt;du&amp;lt;/code&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#du -k /opt/ruby_projects/* | sort -nr | cut -f2 | xargs -d '\n' du -sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Определить дату установки Linux'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Есть несколько вариантов узнать дату и время установки:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ls -clt / | tail -n 1 | awk '{ print $7, $6, $8 }'&lt;br /&gt;
#tune2fs -l /dev/sda1 | grep create&lt;br /&gt;
#LC_TIME=&amp;quot;en_DK&amp;quot; rpm -qia |grep &amp;quot;Install Date&amp;quot;|awk '{print $3}'|uniq |sort -r|tail -n 1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Очистка КЭШа оперативной памяти в Linux'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для того, чтобы посмотреть сколько оперативной памяти занято и сколько закешировано в данный момент, можно воспользоваться командой &amp;lt;code&amp;gt;free&amp;lt;/code&amp;gt;. С параметром -g она выведет информацию об использовании памяти в гигабайтах, с параметром -m в мегабайтах:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#free -g&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для очистки кеша страниц('''pagecache''') использовать команду:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#echo 1 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для очистки directory entry('''dentries''') и index node('''inode''') использовать команду:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#echo 2 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для очистки кеша страниц('''pagecache'''), directory entry('''dentries''') и index node('''inode''') использовать команду:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#echo 3 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Проверка количества открытых файлов для процесса'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;В примере ниже описана команда получения количества открытых процессом файлов, для процесса ''line4'':&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#for pid in `pidof line4`; do echo &amp;quot;$(&amp;lt; /proc/$pid/cmdline)&amp;quot;; egrep 'files|Limit' /proc/$pid/limits; \&lt;br /&gt;
echo &amp;quot;Currently open files: $(ls -1 /proc/$pid/fd | wc -l)&amp;quot;; echo; done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Вывод представлен на скриншоте ниже:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[File:Open files.PNG|1200px|center]]&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Просмотреть краткую информацию по сетевому интерфейсу'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Для просмотра выполнить команду:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ip addr show &amp;lt;NIC&amp;gt; | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Подсчитать Количество Файлов(Директорий) в Папке'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Ниже приведены лучшие способы поиска и подсчета количества файлов и папок в конкретной директории.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Подсчитать количество файлов в текущей папке:&amp;lt;/p&amp;gt;&lt;br /&gt;
* Если Вам необходимо подсчитать довольно большое количество файлов, данный метод является самым быстрым:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ls -f . | wc -l&lt;br /&gt;
#find . -type f -maxdepth 1 | wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Команда рекурсивно считает количество файлов в текущей директории и всех её поддиректориях:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#find . -type f | wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Команда рекурсивно считает количество папок в текущей директории и всех её поддиректориях:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#find . -type d | wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Команда рекурсивно считает количество файлов с расширением &amp;quot;.txt&amp;quot; в текущей директории и всех её поддиректориях:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#find . -type f -name &amp;quot;*.txt&amp;quot; | wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Настройка ssh на авторизацию по ключам'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Бывают случаи, когда необходимо настроить ssh c доступом к серверам с использованием авторизации по ключам. Для этого необходимо выполнить следующие команды(на сервере с которого планируются подключения к серверам, используя ключи):&amp;lt;/p&amp;gt;&lt;br /&gt;
Переходим в директорию .ssh, расположенную в домашней директории пользователя:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#cd ~/.ssh/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Генерируем ключи, которые будем передавать. На все вопросы нажимаем клавишу ''Enter'':&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh-keygen&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Отправляем на сервер 192.168.1.21 содержимое ~/.ssh/id_rsa.pub в файл /home/user/.ssh/authorized_keys:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#cat ~/.ssh/id_rsa.pub | ssh user@192.168.1.21 'cat &amp;gt;&amp;gt; .ssh/authorized_keys'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Отправляем на сервер 192.168.1.21 команду, которая выставит права записи и чтения на файл authorized_keys только для владельца:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@192.168.1.21 'chmod 600 ~/.ssh/authorized_keys'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Отправляем на сервер 192.168.1.21 команду, которая выставит права записи и чтения и исполнения на директорию .ssh только для владельца:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@192.168.1.21 'chmod 700 ~/.ssh'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Вводим данную команду, для проверки, что авторизации по ключам работает:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@192.168.1.21&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Следует учитывать, что на домашнюю директорию пользователя и директорию .ssh(/home/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;lt;''username''&amp;gt;&amp;lt;/span&amp;gt;/.ssh) на удалённом сервере должны быть выставлены права '''''drwx------'''''('''700'''), а на файл /home/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;lt;''username''&amp;gt;&amp;lt;/span&amp;gt;/.ssh/authorized_keys '''''-rw-------'''''('''600''').&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Ошибка &amp;quot;Broken pipe&amp;quot; при авторизации пользователя по ssh'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Бывают случаи, когда при авторизации обычным пользователем по ssh появляется ошибка &amp;quot;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Broken pipe'''&amp;lt;/span&amp;gt;&amp;quot;. При этом авторизация под root может проходить успешно. Если из-под '''root''' выполнить команду &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''''su - &amp;lt;username&amp;gt;'''''&amp;lt;/span&amp;gt; и получить результат &amp;quot;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''su: cannot set user id: Resource temporarily unavailable'''&amp;lt;/span&amp;gt;&amp;quot; или &amp;quot;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''su:невозможно установить пользовательский id: Ресурс временно недоступен'''&amp;lt;/span&amp;gt;&amp;quot;, то надо посмотреть в сторону того, какое кол-во процессов разрешено запускать пользователю и какое кол-во процессов из-под этого пользователя запущенно на данный момент. Для этого необходимо выполнить следующие команды:&amp;lt;/p&amp;gt;&lt;br /&gt;
Команда покажет сколько процессов запущено от пользователя &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''&amp;lt;username&amp;gt;'''&amp;lt;/span&amp;gt; на данный момент:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ps -eLF|grep '&amp;lt;username&amp;gt;'|wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Команда покажет сколько файлов открыто от пользователя &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''&amp;lt;username&amp;gt;'''&amp;lt;/span&amp;gt; на данный момент:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -u '&amp;lt;username&amp;gt;'|wc -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Команда покажет сколько процессов разрешено запускать пользователям(&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''*'''&amp;lt;/span&amp;gt; - любой пользователь) в RHEL 6.x/CentOS 6.x:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#cat /etc/security/limits.d/90-nproc.conf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Команда покажет сколько процессов разрешено запускать пользователям(&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''*'''&amp;lt;/span&amp;gt; - любой пользователь) в RHEL 7.x/CentOS 7.x:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#cat /etc/security/limits.d/20-nproc.conf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В случае, если вывод команды &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;#ps -eLF|grep '&amp;lt;username&amp;gt;'|wc -l&amp;lt;/source&amp;gt; превышает указанное в 90-nproc.conf/20-nproc.conf значение, тогда необходимо это значение увеличить или закомментировать с последующей перезагрузкой параметров командой &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;#sysctl -p&amp;lt;/source&amp;gt;('''''правка параметров и перезагрузка выполняется из-под root''''').&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Копирование директорий на удалённый сервер используя tar, ssh, cat или dd'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Архивирование директории на удалённый сервер с использованием [[cat]]:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# tar zcvfp - /home/user/sourcedir | ssh user@remote_host &amp;quot;cat &amp;gt; ~/from_somehost.tar.gz&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
То, что [[tar]] выведет на стандартный вывод, перенаправляется на удалённый сервер ('''''user@remote_host'''''), где и запускается команда &amp;quot;'''''cat &amp;gt; ~/from_somehost.tar.gz'''''&amp;quot;. [[cat]] принимает на вход то, что выдал [[tar]], а затем всё это складывает в файл '''''~/from_somehost.tar.gz'''''.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Архивирование директории на удалённый сервер с [[dd]]:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#tar zcvfp - /home/user/sourcedir | ssh user@remote_host &amp;quot;dd of=~/from_somehost.tar.gz&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В этом примере вместо [[cat]] используется [[dd]] (disk destroy ;), у которой есть параметр '''of''' (output file), то есть тот, куда нужно складывать то, что пришло от [[tar]]. Остальное по аналогии должно быть понятно.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Архивирование  с удалённой машины на локальную с использованием [[cat]]:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@remote_host &amp;quot;tar zcvfp - /home/user/sourcedir&amp;quot; | cat &amp;gt; ~/from_somehost.tar.gz&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Архивирование  с удалённой машины на локальную с использованием [[dd]]:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@remote_host &amp;quot;tar zcvfp - /home/user/sourcedir&amp;quot; | dd of=~/from_somehost.tar.gz&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;Распаковка удалённого архива на локальную машину:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#ssh user@remote_host &amp;quot;cat /home/user/from_somehost.tar.gz&amp;quot; |tar xvfp -&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Работа с процессами'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ===&lt;br /&gt;
Часто бывает полезным узнать разного рода параметры уже запущенных процессов, а так же манипулировать ими. Рассмотрим несколько разных примеров по работе с процессами.&lt;br /&gt;
Много информации нам предоставляет файловая система '''procfs'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''procfs''' — виртуальная файловая система, используемая в ''UNIX-like'' ОС. '''procfs''' позволяет получить доступ к информации о системных процессах из ядра, она необходима для выполнения таких команд как [[ps]], [[w]], [[top]]. Обычно её монтируют на ''/proc''. '''procfs''' создаёт двухуровневое представление пространств процессов. На верхнем уровне процессы представляют собой директории, именованные в соответствии с их ''pid''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Некоторые файлы и директории из '''ProcFS''', где '''PID''' – идентификатор процесса или ''self'':&lt;br /&gt;
* /proc/'''PID'''/cmdline – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;аргументы командной строки&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/'''PID'''/environ – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;переменные окружения для данного процесса&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/'''PID'''/status – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;статус процесса&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/'''PID'''/fd – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;директория, содержащая символьные ссылки на каждый открытый файловый дескриптор&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/cpuinfo – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;информация о процессоре (производитель, модель, поколение и т.п.)&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/cmdline – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;параметры, передаваемые ядру при загрузке&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/uptime – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;количество секунд, прошедших с момента загрузки ядра и проведенных в режиме бездействия&amp;lt;/span&amp;gt;;&lt;br /&gt;
* /proc/version – &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;содержит информацию о версии ядра, компилятора и другую информацию, связанную с загруженным ядром&amp;lt;/span&amp;gt;.&lt;br /&gt;
Посмотрев на размер файлов в каталоге ''/proc'', можно увидеть, что они все нулевого размера. Дело в том, что в действительности все эти файлы не существуют.&lt;br /&gt;
Примеры использования '''procfs''':&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1) Текущий рабочий каталог процесса&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# ls -la /proc/3165/cwd&lt;br /&gt;
lrwxrwxrwx 1 clamav clamav 0 Авг 18 16:07 /proc/3165/cwd -&amp;gt; /var/lib/clamav&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
где 3165 — номер pid’a процесса.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2) Вывести все переменные процесса&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# cat /proc/2361/environ | strings&lt;br /&gt;
XDG_SESSION_ID=1&lt;br /&gt;
TERM=xterm&lt;br /&gt;
SHELL=/bin/bash&lt;br /&gt;
SSH_CLIENT=10.0.2.2 1383 22&lt;br /&gt;
SSH_TTY=/dev/pts/0&lt;br /&gt;
USER=vaal&lt;br /&gt;
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:&lt;br /&gt;
*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:&lt;br /&gt;
*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:&lt;br /&gt;
*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:&lt;br /&gt;
*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:&lt;br /&gt;
*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:&lt;br /&gt;
*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:&lt;br /&gt;
*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:&lt;br /&gt;
*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:&lt;br /&gt;
*.spx=00;36:*.xspf=00;36:&lt;br /&gt;
DOCKER_TLS_VERIFY=0&lt;br /&gt;
MAIL=/var/mail/vaal&lt;br /&gt;
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games&lt;br /&gt;
PWD=/home/vaal&lt;br /&gt;
LANG=ru_RU.UTF-8&lt;br /&gt;
SHLVL=1&lt;br /&gt;
HOME=/home/vaal&lt;br /&gt;
LOGNAME=vaal&lt;br /&gt;
SSH_CONNECTION=10.0.2.2 1383 10.0.2.15 22&lt;br /&gt;
LESSOPEN=| /usr/bin/lesspipe %s&lt;br /&gt;
XDG_RUNTIME_DIR=/run/user/1000&lt;br /&gt;
LESSCLOSE=/usr/bin/lesspipe %s %s&lt;br /&gt;
_=/usr/bin/mc&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3) Удалили файл, используемый процессом. Как восстановить файл?&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
Попробовать поискать файл в каталоге /proc/'''PID'''/fd&lt;br /&gt;
Почему так можно делать? Всё дело в том, что при удалении файла, который всё-таки открыт процессом, файл перестал быть виден в файловой системе, но не исчез, и окончательно удалён он будет только когда закроется последний ссылающийся на него дескриптор. Каталог /proc/'''PID'''/fd содержит символьные ссылки на все открытые процессом '''PID''' дескрипторы.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4) Связь между /proc и sysctl(взято с [http://linuxcenter.ru Linux-center])&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
'''Sysctl''' использует файлы в ''/proc/sys'' как индивидуальные переменные, которые могут быть изменены. К примеру, файл в ''/proc/sys'', который представляет максимальное количество заголовков файлов в системе, ''/proc/sys/fs/file-max'', представлен как '''fs.file-max'''. Этот пример требует некоторых дополнительных пояснений в записи '''sysctl'''. Так как '''sysctl''' может только изменять переменные в директории '''/proc/sys''', то часть имени переменной обозначающая директорию отбрасывается. Другое изменение касается слэшей, которые заменяются на точки. Вот два простых правила для преобразования файлов в ''/proc/sys'' и переменных в '''sysctl''':&amp;lt;br /&amp;gt;&lt;br /&gt;
* Отбросьте ''/proc/sys'' от начала.&lt;br /&gt;
* Замените слэши на точки в имени файла.&lt;br /&gt;
Эти два правила позволят вам преобразовать любой файл в ''/proc/sys'' в любое имя переменной в '''sysctl'''. Обычное преобразование имени файла в переменную:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/proc/sys/dir/file --&amp;gt; dir.file&lt;br /&gt;
dir1.dir2.file --&amp;gt; /proc/sys/dir1/dir2/file&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Можно отобразить все переменные, доступные для изменения, используя команду '''sysctl -a'''. Переменные могут также быть изменены с помощью '''sysctl''', которая выполняет ту же работу что и '''echo'''. Эта запись объясняет это:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sysctl -w dir.file=&amp;quot;value&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Используя пример с ''file-max'', мы можем изменить это значение на 16384, используя один из двух методов:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sysctl -w fs.file-max=&amp;quot;16384&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
или&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo &amp;quot;16384&amp;quot; &amp;gt; /proc/sys/fs/file-max&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5) Максимальное количество процессов&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
По умолчанию процессов 32768. Узнать текущее значение можно так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#sysctl kernel.pid_max&lt;br /&gt;
kernel.pid_max = 32768&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Изменить это число можно так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#sysctl kernel.pid_max=256000&lt;br /&gt;
kernel.pid_max = 256000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Это возможно только на '''64'''-битных системах. Такое ограничение связано с разрядностью '''32'''-битного числа, которое не может превышать ''32768''. А поскольку эти лимиты определены как тип '''int''', то соответственно действует такое ограничение. Если же вы попробуете изменить, то получите такое сообщение:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# sysctl kernel.pid_max=327600&lt;br /&gt;
error: &amp;quot;Invalid argument&amp;quot; setting key &amp;quot;kernel.pid_max&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6) Утилита lsof&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
Утилита, служит для вывода информации о том, какие файлы используются теми или иными процессами.Ниже будет продемонстрировано несколько полезных примеров работы этой утилиты.&lt;br /&gt;
* Список всех открытых файлов&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$lsof&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Показывает все открытые файлы текущего пользователя (если '''root''' — тогда все файлы) всеми процессами.&lt;br /&gt;
* Какие процессы используют файл file&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof /path/to/file&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Можно указать несколько файлов через пробел, тогда получите суммарный список процессов.&lt;br /&gt;
&lt;br /&gt;
* Какие процессы/файлы использует пользователь ''user''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -u user&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Если хотите узнать информацию по нескольким пользователям, разделите их имена запятой. Для групп используйте конструкцию ‘-g groupname’&lt;br /&gt;
&lt;br /&gt;
* Какие процессы открыты программой prog_name&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -c prog_name&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Можно указывать неполное имя. [lsof] будет искать по указанному буквосочетанию. Если нужно узнать информацию для нескольких приложений, разделяйте их имена пробелом и перед каждым именем должно идти ‘-c’&lt;br /&gt;
&lt;br /&gt;
* Какие файлы открыты pid’ом NNN&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -p NNN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Список всех открытых интернет сокетов&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -i&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Если нужно посмотреть только tcp сокеты, то после ‘i’ через пробел добавляем ''tcp''. Аналогично и для ''udp''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Так же можно посмотреть и список всех unix сокетов:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -U&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Просмотр ресурсов в realtime&lt;br /&gt;
Можно задать период обновления информации, например, 1 секунда:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -r 1 -u username&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
будет обновлять информацию об использованных пользователем ''username'' процессах, каждую секунду.&lt;br /&gt;
&lt;br /&gt;
* Вывод только pid’ов&lt;br /&gt;
По умолчанию, выводится таблица с колонками. Но если требуется вывести только сами pid’ы, можно воспользоваться такой командой:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#lsof -t -u username&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;7) Поиск всех pid’ов процесса&amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
Есть одна замечательная утилита [[pidof]], которая позволяет найти все pid’ы связанные с определённым процессом. К примеру, найдём все pid’ы apache2:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# pidof apache2&lt;br /&gt;
9370 9369 9368 9367 9364 9362 9314 9280 9277 9268 4940&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В большинстве дистрибутивов это обычный симлинк на ''/sbin/killall5'':&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#file /bin/pidof&lt;br /&gt;
/bin/pidof: symbolic link to `../sbin/killall5'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ссылки ===&lt;br /&gt;
[https://nixadmin.ru/copy_on_the_fly nixadmin.ru — копирование &amp;quot;на лету&amp;quot;]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://eax.me/ssh-backup/ Резервное копирование базы данных и файлов по SSH]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://skeletor.org.ua/?p=1506 Работаем с процессами]&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=Bash-task&amp;diff=698</id>
		<title>Bash-task</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=Bash-task&amp;diff=698"/>
				<updated>2018-03-12T09:05:23Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;На данной странице представлены задачи  и примерные решения на bash(актуально для RHEL 7.x/CentOS 7.x. В других случаях требуется проверка).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''''Задача №1'''''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
'''Используя цикл и оператор выбора написать скрипт, реализующий следующее''':&lt;br /&gt;
* Выводит на экран(в терминал) '''меню с выбором''', состоящим из двух пунктов &amp;quot;''1)''&amp;quot; &amp;quot;''2)''&amp;quot;&lt;br /&gt;
* При выборе &amp;quot;''1)''&amp;quot; выводит текст на экран(в терминал), содержащий только цифру '''1'''&lt;br /&gt;
* При выборе &amp;quot;''2)''&amp;quot; выводит текст на экран(в терминал), содержащий только цифру '''2'''&lt;br /&gt;
* При вводе любого другого символа, выводит на экран сообщение о неправильном вводе  и  просит повторить ввод.&lt;br /&gt;
При неправильном вводе цикл бесконечен, т.е. продолжается пока не будет введён нужный символ, а затем снова выводится меню выбора.&lt;br /&gt;
'''Модернизировать'''(№1) скрипт так, чтобы при ''неправильном вводе'' он выводил сообщение о выходе из скрипта через ''три секунды'', после трёх секунд ожидания осуществляется выход из скрипта. '''Модернизировать'''(№2) скрипт добавив в него возможность прекращения работы в меню.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;spoiler text=&amp;quot;Вариант решения Задачи №1&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/env bash&lt;br /&gt;
#trap 'echo -e &amp;quot;\e[31mВот фиг тебе, а не прерывание\e[0m!&amp;quot;' 1 2 3 5 9 15&lt;br /&gt;
PS3='Введите значение: ' &amp;amp;&amp;amp; echo&lt;br /&gt;
                                                                                              &lt;br /&gt;
while :&lt;br /&gt;
do&lt;br /&gt;
         #clear&lt;br /&gt;
         options=(&amp;quot;1&amp;quot; &amp;quot;2&amp;quot;)&lt;br /&gt;
         #options=(&amp;quot;1&amp;quot; &amp;quot;2&amp;quot; &amp;quot;Завершение работы скрипта&amp;quot;) — для модернизации №2&lt;br /&gt;
         select opt in &amp;quot;${options[@]}&amp;quot;; do&lt;br /&gt;
         case &amp;quot;$opt&amp;quot; in&lt;br /&gt;
                 1) echo 'Ввели ' &amp;quot;$opt&amp;quot;&lt;br /&gt;
                    break 1&lt;br /&gt;
                 ;;&lt;br /&gt;
                 2) echo  'Ввели ' &amp;quot;$opt&amp;quot;&lt;br /&gt;
                    break 1&lt;br /&gt;
                 ;;  &lt;br /&gt;
                 # Для модернизации №2:&lt;br /&gt;
                 #'Завершение работы скрипта')&lt;br /&gt;
                 #  echo &amp;quot;Завершили работу скрипта&amp;quot;&lt;br /&gt;
                 #  exit&lt;br /&gt;
                 ;;                                                                         &lt;br /&gt;
                 *) echo 'Ввели неверный символ'&lt;br /&gt;
                    echo 'Повторите ввод'&lt;br /&gt;
                    break 1&lt;br /&gt;
                    #echo &amp;quot;Прекращаем работу скрипта через 3 секунды и осуществляем выход&amp;quot; — для модернизации №1&lt;br /&gt;
                    #sleep 3; exit 0 — для модернизации №1&lt;br /&gt;
                 ;;&lt;br /&gt;
           esac&lt;br /&gt;
           #break&lt;br /&gt;
           done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''''Задача №2'''''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
'''Написать скрипт реализующий следующее''':&lt;br /&gt;
* Создать '''функцию''', которая реализует ''вывод списка директорий'' в файл '''/tmp/dir_list.log'''. При этом в качестве ''входного аргумента'' для функции служит переданный скрипту параметр, представляющий из себя ''абсолютный путь''.&lt;br /&gt;
* Создать '''функцию''', которая будет ''считывать содержимое'' '''/tmp/dir_list.log''' и выводить на экран, а также копировать это содержимое в '''/tmp/dir_list.0'''.&lt;br /&gt;
* Вызов функций происходит с ''задержкой в 5 секунд''.&lt;br /&gt;
* После успешной отработки скрипта и выхода из него файлы '''/tmp/dir_list.log''' и '''/tmp/dir_list.0''' должны быть автоматически удалены. Для этого пункта '''запрещается''' прямой вызов ''`rm -rf`'' или ''$(rm -rf)'' перед завершением скрипта.&lt;br /&gt;
&amp;lt;spoiler text=&amp;quot;Подсказки для задачи №2&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
find .  -maxdepth 1  -type d -printf '%f\n' — выводит все директории&lt;br /&gt;
find .  -maxdepth 1  -type d| sed 's|./*||' | sed '/^$/d' — выводит все директории&lt;br /&gt;
find .  -maxdepth 1  -type d -printf '%f\n'|sed '1d' — выводит все директории, кроме первой(в ней размещается &amp;quot;.&amp;quot;)&lt;br /&gt;
ls -l|grep 'drwx'| awk '{print $9}'&lt;br /&gt;
for i in *; do  [ -d &amp;quot;$i&amp;quot; ] &amp;amp;&amp;amp; echo &amp;quot;$i&amp;quot;;done&lt;br /&gt;
ls -d */ | sed 's|\/||g'&lt;br /&gt;
find * -maxdepth 0 -type d&lt;br /&gt;
&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;spoiler text=&amp;quot;Вариант решения Задачи №2&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/env bash&lt;br /&gt;
_find_dir=$1&lt;br /&gt;
log=&amp;quot;/tmp/dir_list.log&amp;quot;&lt;br /&gt;
log_0=&amp;quot;/tmp/dir_list.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
trap &amp;quot;rm -rf $log $log_0&amp;quot; EXIT&lt;br /&gt;
&lt;br /&gt;
find_dir (){&lt;br /&gt;
        find $_find_dir  -maxdepth 1  -type d -printf '%f\n'|sed '1d' &amp;gt;&amp;gt; $log&lt;br /&gt;
        #find $_find_dir -maxdepth 0 -type d &amp;gt;&amp;gt; $log&lt;br /&gt;
        #ls -l $_find_dir|grep 'drwx'| awk '{print $9}'&amp;gt;&amp;gt; $log&lt;br /&gt;
        #cd $_find_dir;for i in *; do  [ -d &amp;quot;$i&amp;quot; ] &amp;amp;&amp;amp; echo &amp;quot;$i&amp;quot;;done &amp;gt;&amp;gt; $log &lt;br /&gt;
}&lt;br /&gt;
                                                                             &lt;br /&gt;
cp_list (){                                                                  &lt;br /&gt;
        cat $log|tee -a $log_0&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
find_dir&lt;br /&gt;
sleep 5&lt;br /&gt;
cp_list&lt;br /&gt;
exit 0                                                                 &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''''Задача №3'''''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
'''Написать скрипт, который передаёт всю полученную в ходе своей работы информацию в системный журнал''':&lt;br /&gt;
* ''Дату и время'' в формате ''ГГГГ-ММ-ДД_ЧЧ-ММ-СС''.&lt;br /&gt;
* ''Список'' зарегистрировавшихся в системе,на ''текущий момент'', пользователей.&lt;br /&gt;
* ''Время'' работы системы(вывод должен быть представлен ''кириллицей'').&lt;br /&gt;
В консоли продемонстрировать вывод верно работающего скрипта.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;spoiler text=&amp;quot;Вариант решения Задачи №3&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/env bash&lt;br /&gt;
reg_u=$(who |awk {'print $1'})&lt;br /&gt;
xdate=$(date +%Y-%m-%d_%H-%M-%S)&lt;br /&gt;
upt=$(uptime -p |sed -e 's|up||g' -e 's|day.|дня(-ей)|' -e 's|hour.|час(-а,-ов)|' -e 's|minute.|минут(-ы)|')&lt;br /&gt;
upt_w=$(uptime -p |sed -e 's|up||g' -e 's|week.|недель(-я,-и)|' -e 's|day.|дня(-ь,-ей)|' -e 's|hour.|час(-а,-ов)|' -e's|minute.|минут(-ы)|')&lt;br /&gt;
&lt;br /&gt;
log_sys(){&lt;br /&gt;
        logger -i -t &amp;quot;CSys&amp;quot; Дата\/время: $xdate \| Зарегистрированные в системе пользователи: $reg_u \| Время работы системы: $1&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if [ $(uptime|awk {'print $3'}) -gt 7 ]; then log_sys &amp;quot;$upt_w&amp;quot;; else log_sys &amp;quot;$upt&amp;quot;; fi&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''''Задача №4'''''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
'''Написать bash скрипт, который будет принимать в себя аргумент и, если значение, которое он принял будет чётное, то скрипт будет печатать только чётные значения до этого числа, если значение аргумента нечётное число, то печатать только нечётные значения до этого числа. В конце работы скрипт должен вывести сколько чётных или нечётных значений до этого числа.'''&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;spoiler text=&amp;quot;Первый вариант решения Задачи №4&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/env bash&lt;br /&gt;
&lt;br /&gt;
export chislo=$1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if [[ $chislo =~  [a-zA-Z] ]]; then&lt;br /&gt;
        echo -e &amp;quot;\e[31mВвели не число\e[0m!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
elif [[ $chislo -eq 0 ]]; then&lt;br /&gt;
        echo -e &amp;quot;Ввели число \e[31m0\e[0m&amp;quot;&lt;br /&gt;
        echo -e &amp;quot;Количество \e[32mчётных\e[0m элементов в числе \e[31m0\e[0m равно \e[31m1\e[0m&amp;quot;&lt;br /&gt;
&lt;br /&gt;
elif [[ ($chislo -gt 0) &amp;amp;&amp;amp; ($(($chislo % 2)) -eq 0) ]]; then&lt;br /&gt;
        even_chislo=$(seq 2 2 $chislo)&lt;br /&gt;
        echo &amp;quot;Все чётные числа входящие в $chislo:&amp;quot;&lt;br /&gt;
        for i in $even_chislo&lt;br /&gt;
        do&lt;br /&gt;
            echo $i&lt;br /&gt;
            new_chislo=( &amp;quot;${new_chislo[@]}&amp;quot; &amp;quot;$i&amp;quot; )&lt;br /&gt;
        done&lt;br /&gt;
        echo -e &amp;quot;Количество \e[32mчётных\e[0m элементов в числе \e[32m$chislo\e[0m равно \e[31m${#new_chislo[@]}\e[0m&amp;quot;&lt;br /&gt;
elif [[ ($chislo -gt 0) &amp;amp;&amp;amp; ($(($chislo % 2)) -eq 1) ]]; then&lt;br /&gt;
        odd_chislo=$(seq 1 2 $chislo)&lt;br /&gt;
        echo &amp;quot;Все нечётные числа входящие в $chislo:&amp;quot;&lt;br /&gt;
        for i in $odd_chislo&lt;br /&gt;
        do&lt;br /&gt;
                echo $i&lt;br /&gt;
                new_chislo=( &amp;quot;${new_chislo[@]}&amp;quot; &amp;quot;$i&amp;quot; )&lt;br /&gt;
        done&lt;br /&gt;
        echo -e &amp;quot;Количество \e[31mнечётных\e[0m элементов в числе \e[31m$chislo\e[0m равно \e[32m${#new_chislo[@]}\e[0m&amp;quot;&lt;br /&gt;
&lt;br /&gt;
elif [[ ($chislo -lt 0) &amp;amp;&amp;amp; ($(($(echo $chislo | sed 's|^-||g') % 2)) -eq 0) ]]; then&lt;br /&gt;
        echo &amp;quot;Все чётные числа входящие в $chislo:&amp;quot;&lt;br /&gt;
        chislo=$(echo $chislo | sed 's|^-||g')&lt;br /&gt;
        even_chislo=$(seq 2 2 $chislo)&lt;br /&gt;
        for i in $even_chislo&lt;br /&gt;
        do&lt;br /&gt;
            echo &amp;quot;-$i&amp;quot;&lt;br /&gt;
            new_chislo=( &amp;quot;${new_chislo[@]}&amp;quot; &amp;quot;$i&amp;quot; )&lt;br /&gt;
        done&lt;br /&gt;
        echo -e &amp;quot;Количество отрицательных \e[32mчётных\e[0m элементов в числе \e[32m-$chislo\e[0m равно \e[31m${#new_chislo[@]}\e[0m&amp;quot;&lt;br /&gt;
&lt;br /&gt;
elif [[ ($chislo -lt 0) &amp;amp;&amp;amp; ($(($(echo $chislo | sed 's|^-||g') % 2)) -eq 1) ]]; then&lt;br /&gt;
        echo &amp;quot;Все нечётные числа входящие в $chislo:&amp;quot;&lt;br /&gt;
        chislo=$(echo $chislo | sed 's|^-||g')&lt;br /&gt;
        odd_chislo=$(seq 1 2 $chislo)&lt;br /&gt;
        #echo &amp;quot;Все нечётные числа входящие в $chislo:&amp;quot;&lt;br /&gt;
        for i in $odd_chislo&lt;br /&gt;
        do&lt;br /&gt;
                echo &amp;quot;-$i&amp;quot;&lt;br /&gt;
                new_chislo=( &amp;quot;${new_chislo[@]}&amp;quot; &amp;quot;$i&amp;quot; )&lt;br /&gt;
        done&lt;br /&gt;
        echo -e &amp;quot;Количество отрицательных \e[31mнечётных\e[0m элементов в числе \e[31m-$chislo\e[0m равно \e[32m${#new_chislo[@]}\e[0m&amp;quot;&lt;br /&gt;
&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;spoiler text=&amp;quot;Второй вариант решения Задачи №4&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/env bash&lt;br /&gt;
num=$1&lt;br /&gt;
if [[ $num =~ - ]]; then&lt;br /&gt;
  printf &amp;quot;Требуется передать в скрипт целое ПОЛОЖИТЕЛЬНОЕ число\n&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
elif [[ &amp;quot;`expr $num % 2`&amp;quot; == 0 ]]; then&lt;br /&gt;
  for ((i=1; i&amp;lt;=$num; i++)); do&lt;br /&gt;
    if [[ &amp;quot;`expr $i % 2`&amp;quot; == 0 ]]; then&lt;br /&gt;
      echo &amp;quot;$i&amp;quot;&lt;br /&gt;
      ((chet+=1))&lt;br /&gt;
    else&lt;br /&gt;
      ((nchet+=1))&lt;br /&gt;
    fi&lt;br /&gt;
  done&lt;br /&gt;
elif [[ &amp;quot;`expr $num % 2`&amp;quot; == 1 ]]; then&lt;br /&gt;
  for ((i=1; i&amp;lt;=$num; i++)); do&lt;br /&gt;
    if [[ &amp;quot;`expr $i % 2`&amp;quot; == 0 ]]; then&lt;br /&gt;
      ((chet+=1))&lt;br /&gt;
    else&lt;br /&gt;
      echo &amp;quot;$i&amp;quot;&lt;br /&gt;
      ((nchet+=1))&lt;br /&gt;
    fi&lt;br /&gt;
  done&lt;br /&gt;
else&lt;br /&gt;
  printf &amp;quot;Требуется передать в скрипт целое ПОЛОЖИТЕЛЬНОЕ число\n&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
printf &amp;quot;Количество четных чисел %d \nКоличество нечетных чисел %d \n&amp;quot; &amp;quot;$chet&amp;quot; &amp;quot;$nchet&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;spoiler text=&amp;quot;Третий вариант решения Задачи №4&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/env bash&lt;br /&gt;
num=$1&lt;br /&gt;
i=1&lt;br /&gt;
if [[ $num =~ - ]]; then&lt;br /&gt;
  printf &amp;quot;Требуется передать в скрипт целое ПОЛОЖИТЕЛЬНОЕ число\n&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
elif [[ &amp;quot;`expr $num % 2`&amp;quot; == 0 ]]; then&lt;br /&gt;
  while (($i&amp;lt;=$num)); do&lt;br /&gt;
    if [[ &amp;quot;`expr $i % 2`&amp;quot; == 0 ]]; then&lt;br /&gt;
      echo &amp;quot;$i&amp;quot;&lt;br /&gt;
      ((chet+=1))&lt;br /&gt;
    else&lt;br /&gt;
      ((nchet+=1))&lt;br /&gt;
    fi&lt;br /&gt;
    ((i+=1))&lt;br /&gt;
  done&lt;br /&gt;
elif [[ &amp;quot;`expr $num % 2`&amp;quot; == 1 ]]; then&lt;br /&gt;
  while (($i&amp;lt;=$num)); do&lt;br /&gt;
    if [[ &amp;quot;`expr $i % 2`&amp;quot; == 0 ]]; then&lt;br /&gt;
      ((chet+=1))&lt;br /&gt;
    else&lt;br /&gt;
      echo &amp;quot;$i&amp;quot;&lt;br /&gt;
      ((nchet+=1))&lt;br /&gt;
    fi&lt;br /&gt;
    ((i+=1))&lt;br /&gt;
  done&lt;br /&gt;
else&lt;br /&gt;
  printf &amp;quot;Требуется передать в скрипт целое ПОЛОЖИТЕЛЬНОЕ число\n&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
printf &amp;quot;Количество четных чисел %d \nКоличесвто нечетных чисел %d \n&amp;quot; &amp;quot;$chet&amp;quot; &amp;quot;$nchet&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%91%D0%94_PostgreSQL&amp;diff=697</id>
		<title>Установка БД PostgreSQL</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%91%D0%94_PostgreSQL&amp;diff=697"/>
				<updated>2018-03-05T17:55:37Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;На данной странице приводится инструкция по установке ПО СУБД PostgreSQL.&amp;lt;br /&amp;gt;&lt;br /&gt;
= &amp;lt;br /&amp;gt;&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;b &amp;gt;Установка СУБД PostgreSQL 9.4 на CentOS 7.x&amp;lt;/b &amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; =&lt;br /&gt;
Непосредственно перед установкой СУБД PostgreSQL необходимо выполнить следующие настройки:&lt;br /&gt;
== &amp;lt;br /&amp;gt;&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;b &amp;gt;Настройка параметров ядра CentOS 7&amp;lt;/b &amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ==&lt;br /&gt;
Настройка параметров ядра требуется для корректной установки и работы хостов на которых разворачиваются БД ''PostgreSQL 9.4''.&lt;br /&gt;
Перед тем как вносить изменения в файлы конфигурации, следует предварительно создать их резервные копии следующими командами:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# cp /etc/sysctl.conf /etc/sysctl.conf.bkp''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# cp /etc/security/limits.conf /etc/security/limits.conf.bkp''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# cp /etc/pam.d/login /etc/pam.d/login.bkp''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# cp /etc/profile /etc/profile.bkp''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
== &amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;b &amp;gt;Настройка параметров ядра ОС для инсталляции ''PostgreSQL 9.4''&amp;lt;/b &amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ==&lt;br /&gt;
Отредактируйте файл /etc/sysctl.conf:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# vim /etc/sysctl.conf''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
Рекомендуется закомментировать имеющиеся параметры kernel.shmmax и kernel.shmall.&amp;lt;br /&amp;gt;&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''Параметры виртуальной памяти'''&amp;lt;/span&amp;gt; ===&lt;br /&gt;
Добавьте в конец файла ''/etc/sysctl.conf'' следующие строки:&amp;lt;br /&amp;gt;&lt;br /&gt;
''vm.dirty_expire_centisecs=500''&amp;lt;br /&amp;gt;&lt;br /&gt;
''vm.dirty_writeback_centisecs=100''&amp;lt;br /&amp;gt;&lt;br /&gt;
''vm.swappiness=0''&amp;lt;br /&amp;gt;&lt;br /&gt;
''vm.dirty_background_ratio=3''&amp;lt;br /&amp;gt;&lt;br /&gt;
''vm.dirty_ratio=15''&amp;lt;br /&amp;gt;&lt;br /&gt;
Или выполните в терминале следующие команды(от '''''root'''''):&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# echo '#### New PostgreSQL Kernel Parameters ####'  &amp;gt;&amp;gt;  /etc/sysctl.conf''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# echo '#These parameters a recommended to control the rate at which virtual memory is reclaimed'  &amp;gt;&amp;gt;  /etc/sysctl.conf''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# echo 'vm.swappiness=0'  &amp;gt;&amp;gt;  /etc/sysctl.conf''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# echo 'vm.dirty_background_ratio=3'  &amp;gt;&amp;gt;  /etc/sysctl.conf''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# echo 'vm.dirty_ratio=15'  &amp;gt;&amp;gt;  /etc/sysctl.conf''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# echo 'vm.dirty_expire_centisecs=500'  &amp;gt;&amp;gt;  /etc/sysctl.conf''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# echo 'vm.dirty_writeback_centisecs=100'  &amp;gt;&amp;gt;  /etc/sysctl.conf''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# echo &amp;gt;&amp;gt; /etc/sysctl.conf''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# sysctl -p''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''Параметры общей памяти(kernel.shmmni, kernel.shmmax и kernel.shmall)'''&amp;lt;/span&amp;gt; ===&lt;br /&gt;
Параметры ''kernel.shmmax'' и ''kernel.shmall'' зависят от количества RAM, установленной на сервере. Параметр ''kernel.shmmax'' указывается в байтах, а ''kernel. shmall'' в страницах.&lt;br /&gt;
Для определения максимума общей памяти (параметр ядра ''shmall'') в элементах размера страницы памяти, необходимо получить размер страницы в операционной системе (выполняем в терминале команду):&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''#getconf PAGE_SIZE''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Максимальный размер общего сегмента ''shmmax'' должен равняться, по меньшей мере, половине общего объема памяти.''SHMMAX'' не может превышать размер RAM минус один байт, но должен быть больше чем сумма всех SGA на данном хосте. Минимальное значение ''536870912''. Рекомендуется установить максимальное количество сегментов общей памяти ''shmmni'' равным 4096.&lt;br /&gt;
Текущее значение этих параметров можно узнать, выполнив команды:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# cat /proc/sys/kernel/shmmax''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# cat /proc/sys/kernel/shmall''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;b &amp;gt; '''''# cat /proc/sys/kernel/shmmni''''' &amp;lt;/b &amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
Параметр ''kernel.shmmax'' вычисляется следующим образом:&amp;lt;br /&amp;gt;&lt;br /&gt;
kernel.shmmax = RAM (в байтах) / 2,&amp;lt;br /&amp;gt;&lt;br /&gt;
Например:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:navy&amp;quot;&amp;gt;'''33568968704/2=16784484352'''&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Количество байт оперативной памяти можно узнать, введя в терминале команду ''free -b''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Минимальное значение для ''kernel.shmmax'' равняется &amp;lt;span style=&amp;quot;color:DarkGreen&amp;quot;&amp;gt;'''''536870912'''''&amp;lt;/span&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
Параметр ''kernel.shmall'' вычисляется следующим образом:&amp;lt;br /&amp;gt;&lt;br /&gt;
kernel.shmall = RAM (в байтах) / 4096,&amp;lt;br /&amp;gt;&lt;br /&gt;
Например:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:navy&amp;quot;&amp;gt;'''33568968704/4096=8195549'''&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Количество байт оперативной памяти можно узнать, введя в терминале команду ''free -b''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Минимальное значение для ''kernel.shmall'' равняется &amp;lt;span style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;'''''2097152'''''&amp;lt;/span&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
В случае, если ''shmall'' или ''shmmax'' по вычислениям меньше минимально рекомендованного, то необходимо присвоить этим параметрам рекомендованные значения.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Ниже приводится пример расчёта параметров shmall и shmmax для сервера с количеством оперативной памяти равной 32 ГБ'''''.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Выполните следующие команды в терминале, которые обновят содержимое ''etc/sysctl.conf'' ''''':&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;&lt;br /&gt;
'''''# echo '## The following values are for 32 GB of RAM'  &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''# echo 'kernel.shmmax = 16784484352'  &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''# echo 'kernel.shmall = 8195549'  &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''# echo '# do not scale this parameter with RAM'  &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''# echo 'kernel.shmmni = 4096'  &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''# echo &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''# sysctl -p'''''&amp;lt;/span&amp;gt;&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''Семафоры'''&amp;lt;/span&amp;gt; ===&lt;br /&gt;
Linux предоставляет семафоры для передачи небольшого количества информации между процессами. Семафоры — это числа-счётчики или on/off значения, которые организуются в группы. СУБД PostgreSQL необходимо больше групп, больше комнат в каждой группе и больше счётчиков, чем предоставляется операционной системой по умолчанию.&lt;br /&gt;
Измените параметр ''kernel.sem'', определяющий необходимое количество семафоров, выполнив следующую команду:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# echo 'kernel.sem = 250 32000 100 128'&amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''Сетевые порты'''&amp;lt;/span&amp;gt; ===&lt;br /&gt;
Измените параметр ''net.ipv4.ip_local_port_range'' в /etc/sysctl.conf для модификации диапазона ip портов для автоматического назначения клиентам исходящих портов, выполнив в терминале команду:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# echo 'net.ipv4.ip_local_port_range = 9000 65500'&amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''Оптимизация сетевых настроек(TCP/IP)'''&amp;lt;/span&amp;gt; ===&lt;br /&gt;
Рекомендуется установить постоянные размеры для буфера - максимальный и по умолчанию для сокетов приложений. Их рекомендованные значения – разумная точка для начала. Выполните в терминале следующие команды:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# echo 'net.core.rmem_default = 262144' &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# echo 'net.core.rmem_max = 4194304' &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# echo 'net.core.wmem_default = 262144' &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# echo 'net.core.wmem_max = 1048576' &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''Различная системная конфигурация'''&amp;lt;/span&amp;gt; ===&lt;br /&gt;
*Вам может понадобиться увеличить следующие конфигурационные параметры, если они слишком малы:&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Максимальное количество открытых файлов:&amp;lt;/span&amp;gt;&lt;br /&gt;
Рекомендуется ввести, как минимум, значение ''6815744''. Проверьте значение на вашей системе, в случае необходимости изменения значения выполните в терминале команду&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''# echo 'fs.file-max = 6815744' &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Максимальное количество конкурентных асинхронных запросов ввода/вывода:&amp;lt;/span&amp;gt; &lt;br /&gt;
Рекомендуется увеличить это значение до значения ''1048576''. Выполните в терминале команду &amp;lt;br /&amp;gt;&lt;br /&gt;
'''''# echo 'fs.aio-max-nr = 1048576' &amp;gt;&amp;gt;  /etc/sysctl.conf'''''&lt;br /&gt;
&amp;lt;br &amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;b &amp;gt;Ограничения оболочки для пользователя postgres&amp;lt;/b &amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ==&lt;br /&gt;
Во время обычной работы запускается много процессов, открывается большое количество файлов и требуется больше ресурсов, чем обычно. В то же время, пределы (hard limits) на аккаунте предотвратит в некоторых случаях зависание процессов (resource starvation). Конфигурация PAM по умолчанию (в /etc/pam.d/system-auth) загружает модули (session required pam_limits.so) которые устанавливают и приводят в действие эти пределы.&amp;lt;br /&amp;gt;&lt;br /&gt;
Как администратор '''''root''''' добавьте следующие строчки в ''/etc/security/limits.conf'':&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
postgres&amp;amp;#9;&amp;amp;#9;soft&amp;amp;#9;&amp;amp;#9;nproc&amp;amp;#9;&amp;amp;#9;2047&lt;br /&gt;
postgres&amp;amp;#9;&amp;amp;#9;hard&amp;amp;#9;&amp;amp;#9;nproc&amp;amp;#9;&amp;amp;#9;16384&lt;br /&gt;
postgres&amp;amp;#9;&amp;amp;#9;soft&amp;amp;#9;&amp;amp;#9;nofile&amp;amp;#9;&amp;amp;#9;1024&lt;br /&gt;
postgres&amp;amp;#9;&amp;amp;#9;hard&amp;amp;#9;&amp;amp;#9;nofile&amp;amp;#9;&amp;amp;#9;65536&lt;br /&gt;
postgres&amp;amp;#9;&amp;amp;#9;soft&amp;amp;#9;&amp;amp;#9;stack&amp;amp;#9;&amp;amp;#9;10240&lt;br /&gt;
postgres&amp;amp;#9;&amp;amp;#9;hard&amp;amp;#9;&amp;amp;#9;stack&amp;amp;#9;&amp;amp;#9;32768&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Отредактируйте файл ''/etc/pam.d/login'', добавив в него строку ''session required pam_limits.so''&lt;br /&gt;
Отредактируйте файл ''/etc/profile'' добавив перед:&lt;br /&gt;
:''unset i''&lt;br /&gt;
:''unset pathmunge''&lt;br /&gt;
Текст со следующим содержанием:&lt;br /&gt;
:''if [ $USER = &amp;quot;postgres&amp;quot; ]; then''&lt;br /&gt;
:''	ulimit -u 16384 -n 65536''&lt;br /&gt;
:''fi''&lt;br /&gt;
&lt;br /&gt;
Настройка ОС для серверов БД PostgreSQL выполнена. Далее будет описан процесс установку СУБД PostgreSQL 9.4 на ОС CentOS 7.2.&lt;br /&gt;
== &amp;lt;br /&amp;gt;&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;b &amp;gt;Установка СУБД PostgreSQL 9.4&amp;lt;/b &amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; ==&lt;br /&gt;
Установку можно производить как из локальных репозиториев, так и из репозиториев, размещённых в интернете(при наличии соответствующего доступа). Пакеты которые должны быть установлены: postgresql94-server, postgresql94-contrib, postgresql94-libs, postgresql94-devel. Служба firewalld должна быть отключена, selinux должен быть отключен.&amp;lt;br /&amp;gt;&lt;br /&gt;
Командой '''''# locale''''' проверяем текущую локаль сервера БД. При правильной настройке вывод должен быть таким:&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:LOCALE PSQL.png|center]]&lt;br /&gt;
&lt;br /&gt;
1) Для установки пакетов PostgreSQL в командной строке выполнить команду от root:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# yum install postgresql94-server postgresql94-contrib postgresql94-libs postgresql94-devel'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
2) Инициализируем базу данных PostgreSQL, добавляем сервис в автозагрузку, стартуем сервис БД, проверяем статус, выполнив команды:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# /usr/pgsql-9.4/bin/postgresql94-setup initdb'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# systemctl enable postgresql-9.4'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# systemctl start postgresql-9.4'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# systemctl status postgresql-9.4'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
3) В /var/lib/pgsql ($HOME postgres) создаём файл .pgsql_profile следующего содержания: '''''export PATH=/usr/pgsql-9.4/bin:$PATH'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
4) Создадим резервную копию и отредактируем файл ''/var/lib/pgsql/9.4/data/postgresql.conf'':&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# cp /var/lib/pgsql/9.4/data/postgresql.conf /var/lib/pgsql/9.4/data/postgresql.conf.bkp'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# vi /var/lib/pgsql/9.4/data/postgresql.conf'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
Раскомментируем строку ''listen_addresses = 'localhost''' и заменим localhost на '*'. Это говорит PostgreSQL принимать запросы со всех интерфейсов. Должно получиться следующее: ''listen_addresses = '*' ''&lt;br /&gt;
На сервере 32 Gb RAM, выделим для PostgreSQL 16 Gb. Здесь же раскомментируем и изменим нижеследующие параметры исходя из 16 ГБ RAM доступных PostgreSQL:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
max_connections = 200&lt;br /&gt;
shared_buffers = 4GB&lt;br /&gt;
effective_cache_size = 12GB&lt;br /&gt;
work_mem = 21970 kB&lt;br /&gt;
maintenance_work_mem = 1024MB&lt;br /&gt;
wal_buffers = 32MB&lt;br /&gt;
checkpoint_segments = 64&lt;br /&gt;
checkpoint_completion_target = 0.9&lt;br /&gt;
default_statistics_target = 100&lt;br /&gt;
log_destination = 'stderr'&lt;br /&gt;
logging_collector = on&lt;br /&gt;
log_min_duration_statement = 3000&lt;br /&gt;
log_checkpoints = on&lt;br /&gt;
log_connections = on&lt;br /&gt;
log_disconnections = on&lt;br /&gt;
log_line_prefix = '%t [%p]: [%l-1]'&lt;br /&gt;
log_lock_waits = on&lt;br /&gt;
log_temp_files = 0&lt;br /&gt;
log_autovacuum_min_duration = 0&lt;br /&gt;
lc_messages = 'C'&lt;br /&gt;
log_statement = 'none'&lt;br /&gt;
log_min_messages = info&lt;br /&gt;
log_error_verbosity = verbose&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
5) Далее редактируем файл /var/lib/pgsql/9.4/data/pg_hba.conf. В конце файла добавляем строчку, прописав нужный адрес сети, вместо ''&amp;lt;адрес сети&amp;gt;'':&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;host&amp;amp;#9;all&amp;amp;#9;all&amp;amp;#9;&amp;lt;адрес сети&amp;gt;/24&amp;amp;#9;md5&amp;lt;/pre&amp;gt;&lt;br /&gt;
В строке ''local&amp;amp;#9;all&amp;amp;#9;all&amp;amp;#9;peer'' меняем ''peer'' на ''trust'':&lt;br /&gt;
&amp;lt;pre&amp;gt;local&amp;amp;#9;all&amp;amp;#9;all&amp;amp;#9;trust&amp;lt;/pre&amp;gt;&lt;br /&gt;
А в строке ''host&amp;amp;#9;all&amp;amp;#9;all&amp;amp;#9;127.0.0.1/32&amp;amp;#9;ident''&lt;br /&gt;
''ident'' меняем на ''md5'':&lt;br /&gt;
&amp;lt;pre&amp;gt;host&amp;amp;#9;all&amp;amp;#9;all&amp;amp;#9;127.0.0.1/32&amp;amp;#9;md5&amp;lt;/pre&amp;gt;&lt;br /&gt;
Добавляем в конец ''pg_hba.conf'',прописав нужный адрес сети, вместо ''&amp;lt;адрес сети&amp;gt;'':&lt;br /&gt;
&amp;lt;pre&amp;gt;host&amp;amp;#9;all&amp;amp;#9;&amp;amp;#9;all&amp;amp;#9;&amp;amp;#9;&amp;lt;адрес сети&amp;gt;/4&amp;amp;#9;md5&lt;br /&gt;
host&amp;amp;#9;replication&amp;amp;#9;postgres&amp;amp;#9;::1/128 &amp;amp;#9;trust&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
6) Перезапускаем службу PostgreSQL:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''#  systemctl restart postgresql-9.4'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
7) Меняем пароль для пользователя postgres (в ОС и в БД), после перезагружаем сервер и заходим под этим пользователем (postgres):&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# passwd postgres'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
Вводим пароль, подтверждаем пароль, перезагружаем систему.&lt;br /&gt;
После перезагрузки, заходим под postgres, в терминале набираем:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''$ psql'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
и меняем пароль для пользователя БД postgres:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''postgres=# \password postgres '''''&amp;lt;/p&amp;gt;&lt;br /&gt;
8) Установим PostgreSQL Adminpack:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''postgres=# CREATE EXTENSION adminpack;'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
9) Создаём базу данных и пользователя, где ''&amp;lt;user&amp;gt;'' - имя пользователя, ''&amp;lt;password&amp;gt;'' - пароль пользователя ''&amp;lt;user&amp;gt;'', ''&amp;lt;dbname&amp;gt;'' - имя базы:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''postgres=# CREATE DATABASE &amp;lt;dbname&amp;gt;;'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''postgres=# CREATE USER &amp;lt;user&amp;gt; WITH password '&amp;lt;password&amp;gt;';'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''postgres=# GRANT ALL privileges ON DATABASE &amp;lt;dbname&amp;gt; TO &amp;lt;user&amp;gt;;'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
Выходим из psql:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''postgres=# \q'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
10) Проверяем подключение к базе, выполнив следующую команду:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''$ psql -h 127.0.0.1 &amp;lt;dbname&amp;gt; &amp;lt;user&amp;gt;'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
Если всё нормально, отключаемся.&amp;lt;br /&amp;gt;&lt;br /&gt;
11) Для того, что бы параметры вступили с силу, необходимо перегрузить PostgreSQL:&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;'''''# systemctl restart postgresql-9.4'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
P.S. Некоторые параметры из postgresql.conf можно применять без перезагрузки PostgreSQL. Для этого служат следующие команды:&amp;lt;br /&amp;gt;&lt;br /&gt;
* '''''su - postgresl; /usr/bin/pg_ctl reload''''' — используя командный интерпретатор(bash)&amp;lt;br /&amp;gt;&lt;br /&gt;
* '''''SELECT pg_reload_conf();''''' — используя SQL-код&lt;br /&gt;
= &amp;lt;br /&amp;gt;&amp;lt;p style=&amp;quot;text-align:left&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;b &amp;gt;Установка СУБД PostgreSQL 9.4 на ОС Windows&amp;lt;/b &amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; =&lt;br /&gt;
В данном разделе рассматривается инсталляция СУБД PostgreSQL 9.4 на ОС Windows без использования штатного инсталлятора.&amp;lt;br /&amp;gt;&lt;br /&gt;
== &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''Установка СУБД PostgreSQL'''&amp;lt;/span&amp;gt; ==&lt;br /&gt;
Установка СУБД PostgreSQL включает в себя выполнение следующих шагов(выполняются из-под &amp;lt;u&amp;gt;административной учётной записи&amp;lt;/u&amp;gt;):&amp;lt;br /&amp;gt;&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''1)'''&amp;lt;/span&amp;gt; Скачиваем инсталляционный пакет &amp;lt;u&amp;gt;'''[https://www.microsoft.com/en-us/download/confirmation.aspx?id=17657 rktools.exe]'''&amp;lt;/u&amp;gt;. Инсталлируем его в систему.&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''2)'''&amp;lt;/span&amp;gt; Создаём директорию &amp;lt;u&amp;gt;PostgreSQL&amp;lt;/u&amp;gt; на диске C:\, используя терминал командной строки('''&amp;gt;mkdir &amp;quot;C:\PostgreSQL&amp;quot;''') или контекстное меню, вызываемое правой клавишей мыши('''Создать—&amp;gt;Папку''').&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''3)'''&amp;lt;/span&amp;gt; Скачиваем архив c бинарными файлами '''postgresql-9.4.xx-x-windows-x64-binaries.zip''' c https://www.enterprisedb.com/download-postgresql-binaries. Распаковываем архив в директорию '''C:\PostgreSQL'''.&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''4)'''&amp;lt;/span&amp;gt; Создаём каталог &amp;lt;u&amp;gt;C:\PostgreSQL\data&amp;lt;/u&amp;gt;('''&amp;gt;mkdir &amp;quot;C:\PostgreSQL\data&amp;quot;'''),  в нём будут лежать базы.&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''5)'''&amp;lt;/span&amp;gt; Создаём пользователя '''postgres''' с паролем ''postgres''. В командной строке(запущена из-под &amp;lt;u&amp;gt;'''Администратора'''&amp;lt;/u&amp;gt;) вводим:&lt;br /&gt;
::&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;'''''net user postgres postgres /add'''''&amp;lt;/span&amp;gt;&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''6)'''&amp;lt;/span&amp;gt; Устанавливаем ему неограниченный срок действия пароля:&lt;br /&gt;
::&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;'''''WMIC UserAccount WHERE Name=&amp;quot;postgres&amp;quot; Set PasswordExpires=FALSE'''''&amp;lt;/span&amp;gt;&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''7)'''&amp;lt;/span&amp;gt; Даём право входа в качестве службы утилитой '''ntrights''' из '''''Windows Resource Kit Tools(rktools)''''':&lt;br /&gt;
::&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;'''''ntrights +r SeServiceLogonRight -u postgres'''''&amp;lt;/span&amp;gt;&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''8)'''&amp;lt;/span&amp;gt; Даём все права на каталог &amp;lt;u&amp;gt;C:\PostgreSQL&amp;lt;/u&amp;gt;:&lt;br /&gt;
::&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;'''''cacls C:\PostgreSQL /E /G postgres:F'''''&amp;lt;/span&amp;gt;&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''9)'''&amp;lt;/span&amp;gt; Создаём в &amp;lt;u&amp;gt;C:\PostgreSQL\bin&amp;lt;/u&amp;gt; текстовый файл с именем &amp;lt;u&amp;gt;''pf''&amp;lt;/u&amp;gt;, содержащий пароль — ''postgres'':&lt;br /&gt;
::&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;'''''echo postgres&amp;gt; C:\PostgreSQL\bin\pf'''''&amp;lt;/span&amp;gt;&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''10)'''&amp;lt;/span&amp;gt; Переходим в терминале CMD в директорию &amp;lt;u&amp;gt;C:\PostgreSQL\bin&amp;lt;/u&amp;gt; и выполняем команду по инициализации базы:&lt;br /&gt;
::&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;'''''cd C:\PostgreSQL\bin'''''&amp;lt;/span&amp;gt;&lt;br /&gt;
::&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;'''''initdb -U postgres --pwfile=pf -A md5 -E UTF8 --locale=Russian_Russia -D C:\PostgreSQL\data'''''&amp;lt;/span&amp;gt;&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''11)'''&amp;lt;/span&amp;gt; Регистрируем сервис:&lt;br /&gt;
::&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;'''''pg_ctl register -N PostgreSQL -U postgres -P postgres -D C:\PostgreSQL\data -S auto'''''&amp;lt;/span&amp;gt;&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''12)'''&amp;lt;/span&amp;gt; Запускаем службу:&lt;br /&gt;
::&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;'''''sc start PostgreSQL'''''&amp;lt;/span&amp;gt;&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''13)'''&amp;lt;/span&amp;gt; Для удобства прописываем путь к бинарным файлам '''PostgreSQL''' в ''PATH''(переменные окружения):&lt;br /&gt;
::&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;'''''pathman /as c:\PostgreSQL\bin'''''&amp;lt;/span&amp;gt;&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''14)'''&amp;lt;/span&amp;gt; Вносим изменения в системный сервис '''PostgreSQL'''(В ''cmd'' ввести '''services.msc''', выбрать службу '''PostgreSQL''', вкладка '''Восстановление'''):&lt;br /&gt;
::&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;'''''Первый сбой: Перезапуск службы'''''&amp;lt;/span&amp;gt;&lt;br /&gt;
::&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;'''''Второй сбой: Перезапуск службы'''''&amp;lt;/span&amp;gt;&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''15)'''&amp;lt;/span&amp;gt; Добавляем в системные переменные окружения ключ '''PGDATA''' со значением &amp;lt;u&amp;gt;C:\PostgreSQL\data&amp;lt;/u&amp;gt;:&lt;br /&gt;
::&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;'''''setx PGDATA &amp;quot;C:\PostgreSQL\data&amp;quot;'''''&amp;lt;/span&amp;gt;&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''16)'''&amp;lt;/span&amp;gt; Для настройки кодовой страницы с корректным выводом кириллицы в терминале выполняем следующие команды:&lt;br /&gt;
::&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;'''''psql -d postgres -U postgres'''''&lt;br /&gt;
::&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;'''''\! chcp 1251'''''&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''Создание БД в PostgreSQL в Windows'''&amp;lt;/span&amp;gt; ==&lt;br /&gt;
Для создания БД в PostgreSQL необходимо выполнить следующие шаги(выполняются из-под &amp;lt;u&amp;gt;административной учётной записи&amp;lt;/u&amp;gt;):&amp;lt;br /&amp;gt;&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''1)'''&amp;lt;/span&amp;gt; Запускаем интерпретатор командной строки(CMD)&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''2)'''&amp;lt;/span&amp;gt; Подключаемся к инстансу БД:&lt;br /&gt;
::&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;'''''psql -d postgres -U postgres'''''&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''3)'''&amp;lt;/span&amp;gt; Устанавливаем '''''PostgreSQL Adminpack''''':&lt;br /&gt;
::&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;'''''CREATE EXTENSION adminpack;'''''&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''4)'''&amp;lt;/span&amp;gt; Создаём базу данных '''test''' и пользователя БД '''test''' с паролем '''test''':&lt;br /&gt;
::&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;'''''CREATE DATABASE test;'''''&lt;br /&gt;
::&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;'''''CREATE USER test WITH password 'test';'''''&lt;br /&gt;
::&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;'''''GRANT ALL privileges ON DATABASE test TO test;'''''&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''5)'''&amp;lt;/span&amp;gt; Проверяем соединение с созданной базой данных:&lt;br /&gt;
::&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;'''''psql -h 127.0.0.1 -p 5432 -U test -d test'''''&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B_%D0%B8_%D1%83%D1%82%D0%B8%D0%BB%D0%B8%D1%82%D1%8B_Unix/Linux&amp;diff=696</id>
		<title>Основные команды и утилиты Unix/Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B_%D0%B8_%D1%83%D1%82%D0%B8%D0%BB%D0%B8%D1%82%D1%8B_Unix/Linux&amp;diff=696"/>
				<updated>2018-02-28T07:14:06Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;На данной странице приводится список основных утилит пакета ''GNU Coreutils'', а также команд не входящих в данный пакет. Описание некоторых команд/утилит приводится на страницах данной WIKI.&lt;br /&gt;
&lt;br /&gt;
*[[bzip2|bzip2 — Утилита сжатия данных]]&lt;br /&gt;
*[[cat|cat — Команда выводящая последовательно указанные файлы]]&lt;br /&gt;
*[[cd — Команда смены директории]]&lt;br /&gt;
*[[chattr — Команда изменения атрибутов файлов]]&lt;br /&gt;
*[[chgrp — Команда изменяющая группу владельца файла]]&lt;br /&gt;
*[[Chmod|chmod — Команда изменения прав доступа к файлам и/или каталогам]]&lt;br /&gt;
*[[chown — Команда назначения владельца файлов и/или каталога]]&lt;br /&gt;
*[[cp — Команда копирования файлов и/или каталогов]]&lt;br /&gt;
*[[dd|dd — Команда копирования и преобразования файлов]]&lt;br /&gt;
*[[df|df — Команда отображение свободного места на смонтированных файловых системах]]&lt;br /&gt;
*[[find|find — Команда поиска файлов]]&lt;br /&gt;
*[[getfacl|getfacl — Команда просмотра установленных ACL]]&lt;br /&gt;
*[[grep|grep — Команда находящая на вводе строки, отвечающие заданному регулярному выражению]]&lt;br /&gt;
*[[gzip|gzip — Утилита сжатия данных]]&lt;br /&gt;
*[[ifconfig|ifconfig — Утилита конфигурирования параметров сетевого интерфейса]]&lt;br /&gt;
*[[install|install — Команда копирования файлов и установка атрибутов]]&lt;br /&gt;
*[[iproute2|iproute2 — набор утилит для управления параметрами сетевых устройств в Linux]]&lt;br /&gt;
*[[iptables|iptables — Утилита управления брендмауэром]]&lt;br /&gt;
*[[less|less — Команда просмотра текстовых файлов]]&lt;br /&gt;
*[[ln|ln — Команда создания ссылки на файл]]&lt;br /&gt;
*[[ls — Команда печати содержимого каталога]]&lt;br /&gt;
*[[lsattr — Команда просмотра установленных атрибутов файлов]]&lt;br /&gt;
*[[mkdir — Команда создания директории]]&lt;br /&gt;
*[[more|more — Команда просмотра текстовых файлов]]&lt;br /&gt;
*[[mv — Команда перемещения/переименовывания файлов и/или каталогов]]&lt;br /&gt;
*[[netstat|netstat — Команда выводящая на дисплей состояние TCP-соединений]]&lt;br /&gt;
*[[ping|ping — Команда проверки целостности и качества соединения в сетях]]&lt;br /&gt;
*[[ps|ps — Команда выводящая информацию о работающих процессах]]&lt;br /&gt;
*[[rm — Команда удаления файлов]]&lt;br /&gt;
*[[rmdir — Команда удаления пустой директории]]&lt;br /&gt;
*[[rsync —  Cинхронизация файлов и каталогов в двух местах]]&lt;br /&gt;
*[[setfacl|setfacl — Команда назначения, модификации и удаления ACL]]&lt;br /&gt;
*[[Scp — Команда безопасного сетевого копирования файлов|scp — Команда безопасного сетевого копирования файлов]]&lt;br /&gt;
*[[shred|shred — Команда перезаписывающая файлы, чтобы скрыть содержимое]]&lt;br /&gt;
*[[sort|sort — Команда сортировки строк текстовых файлов]]&lt;br /&gt;
*[[ssh|ssh — Команда безопасного удалённого соединения]]&lt;br /&gt;
*[[sudo|sudo — Команда повышения привилегий пользователя]]&lt;br /&gt;
*[[tar|tar — Утилита для работы с архивами .tar]]&lt;br /&gt;
*[[touch — Команда создания пустого файла и модификации времени последнего изменения файла]]&lt;br /&gt;
*[[useradd|useradd — Утилита для создания нового пользователя или изменения информации пользователях]]&lt;br /&gt;
*[[userdel|userdel — Утилита удаляющая учётную запись и файлы пользователя]]&lt;br /&gt;
*[[usermod|usermod — Утилита изменяющая учётную запись пользователя]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Некоторые пакеты coreutils 8.23 и команды не входящие в данный пакет:&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[cat|cat]]&amp;lt;/code&amp;gt; || Команда выводящая последовательно указанные файлы)&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Chcon|chcon]]&amp;lt;/code&amp;gt; || Изменяет контекст безопасности файла (SELinux)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Chgrp — Команда изменяющая группу владельца файла|chgrp]]&amp;lt;/code&amp;gt; || Изменяет группу владельца файла&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Chown — Команда назначения владельца файлов и/или каталога|chown]]&amp;lt;/code&amp;gt; || Изменяет владельца файла&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Chmod|chmod]]&amp;lt;/code&amp;gt; || Изменяет права доступа к файлу&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Cd — Команда смены директории|сd]]&amp;lt;/code&amp;gt; || Изменяет права доступа к файлу&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Cp_—_Команда_копирования_файлов_и/или_каталогов|cp]]&amp;lt;/code&amp;gt; || Копирование файлов и(или) каталогов&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[dd]]&amp;lt;/code&amp;gt; || Копирование и преобразование файлов&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[df]]&amp;lt;/code&amp;gt; || Отображает свободное место на смонтированных файловых системах&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Ls_—_Команда_печати_содержимого_каталога#.D0.9E.D0.BA.D1.80.D1.83.D0.B6.D0.B5.D0.BD.D0.B8.D0.B5|dir]]&amp;lt;/code&amp;gt; || То же самое, что и &amp;lt;tt&amp;gt;ls -C -b&amp;lt;/tt&amp;gt; (список файлов выводится в колонках с вертикальной сортировкой)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[dircolors]]&amp;lt;/code&amp;gt; || Устанавливает цветовую схему для вывода команды &amp;lt;tt&amp;gt;ls&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[install]]&amp;lt;/code&amp;gt; || Копирует файлы и устанавливает атрибуты&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[ln (UNIX)|ln]]&amp;lt;/code&amp;gt; || Создаёт ссылку на файл&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Ls_—_Команда_печати_содержимого_каталога|ls]]&amp;lt;/code&amp;gt; || Выводит список файлов&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Mkdir — Команда создания директории|mkdir]]&amp;lt;/code&amp;gt; || Создаёт каталоги&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[mkfifo]]&amp;lt;/code&amp;gt; || Создаёт FIFO (именованные каналы)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[mknod]]&amp;lt;/code&amp;gt; || Создаёт специальные файлы&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[mktemp]]&amp;lt;/code&amp;gt; || Создаёт временный файл или каталог&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Mv_—_Команда_перемещения/переименовывания_файлов_и/или_каталогов | mv]]&amp;lt;/code&amp;gt; || Перемещает и переименовывает файлы&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[realpath]]&amp;lt;/code&amp;gt; || Возвращает полученный абсолютный или относительный путь к файлу&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Rm_—_Команда_удаления_файлов|rm]]&amp;lt;/code&amp;gt; || Удаляет файлы&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Rmdir — Команда удаления пустой директории | rmdir]]&amp;lt;/code&amp;gt; || Удаляет пустые каталоги&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[shred]]&amp;lt;/code&amp;gt; || Перезаписывает файлы чтобы скрыть содержимое (так называемое безопасное удаление), и опционально удаляет файлы&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[sync]]&amp;lt;/code&amp;gt; || Записывает на диск буферы файловых систем&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Touch_—_Команда_создания_пустого_файла_и_модификации_времени_последнего_изменения_файла|touch]]&amp;lt;/code&amp;gt; || Изменяет время создания, модификации файлов&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[truncate]]&amp;lt;/code&amp;gt; || Уменьшает или увеличивает размер файла до заданного размера&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Ls_—_Команда_печати_содержимого_каталога#.D0.9F.D0.BE.D0.B4.D1.80.D0.BE.D0.B1.D0.BD.D0.BE.D1.81.D1.82.D0.B8_.D0.B2.D0.B5.D1.80.D1.81.D0.B8.D0.B8_GNU|vdir]]&amp;lt;/code&amp;gt; || То же самое, что и &amp;lt;tt&amp;gt;ls -l -b&amp;lt;/tt&amp;gt; (выводит список файлов в длинном формате)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=Iproute2&amp;diff=695</id>
		<title>Iproute2</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=Iproute2&amp;diff=695"/>
				<updated>2018-02-28T07:13:58Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: Новая страница: «'''iproute2''' — это набор '''утилит''' для управления параметрами сетевых устройств в ядре ''Linux'…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''iproute2''' — это набор '''утилит''' для управления параметрами сетевых устройств в ядре ''Linux''. Эти утилиты были разработаны в качестве унифицированного интерфейса к ядру ''Linux'', которое непосредственно управляет сетевым трафиком.&lt;br /&gt;
&lt;br /&gt;
== Основные сведения ==&lt;br /&gt;
&lt;br /&gt;
''iproute2'' заменил полный набор классических сетевых утилит UNIX, которые ранее использовались для настройки сетевых интерфейсов, таблиц маршрутизации и управления arp‐таблицами: [[ifconfig]], [[route]], [[ARP|arp]], [[netstat]] и других, предназначенных для создания IP‐туннелей. ''iproute2'' предлагает унифицированный синтаксис для управления самыми разными аспектами сетевых интерфейсов. Этот синтаксис во многом проще и логичнее, чем синтаксис наследованных *nix утилит, и подобен синтаксису операционной системы ''Cisco IOS'''.&lt;br /&gt;
&lt;br /&gt;
Набор утилит включает в себя три основные программы:&lt;br /&gt;
&lt;br /&gt;
* '''ip''' — утилита для просмотра параметров и конфигурирования сетевых интерфейсов, сетевых адресов, таблиц маршрутизации, правил маршрутизации, arp‐таблиц, IP‐туннелей, адресов multicast рассылки, маршрутизацией multicast пакетов.&lt;br /&gt;
&lt;br /&gt;
* '''tc''' — утилита для просмотра и конфигурирования параметров управления трафиком (tc — аббревиатура от traffic control). Позволяет управлять классификацией трафика, дисциплинами управления очередями для различных классов трафика либо целиком для сетевого интерфейса (корневые дисциплины), что, в свою очередь, позволяет реализовать [[QoS]] в нужном для системы объёме:&lt;br /&gt;
** разделение разных типов трафика по классам (не только по битам [[ToS]] в [[IP‐пакет]]е, но и по другим данным из заголовка IP‐пакета)&lt;br /&gt;
** назначение разных дисциплин обработки очередей трафика с разным приоритетом, механизмами прохождения очереди, ограничениями по скорости и т. п.&lt;br /&gt;
&lt;br /&gt;
* '''ss''' — утилита для просмотра текущих соединений и открытых портов. Аналог традиционной утилиты [[netstat]].&lt;br /&gt;
&lt;br /&gt;
Автором ''iproute2'' является Алексей Кузнецов (Alexey Kuznetsov). Он разработал этот пакет, когда занимался расширением сетевых возможностей ядра Linux.&lt;br /&gt;
&lt;br /&gt;
== Утилита ip ==&lt;br /&gt;
'''ip''' — утилита командной строки из пакета ''iproute2'' для систем ''Linux''. Она позволяет выполнять настройку сетевой подсистемы и является заменой таких утилит как: [[ifconfig]], [[route]], [[ARP|arp]]. В следующей таблице показаны предлагаемые замены.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Соответствие утилит из устаревшего пакета net-tools утилитам пакета iproute2&lt;br /&gt;
!Устаревшая утилита&lt;br /&gt;
!Заменена на&lt;br /&gt;
!Описание&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ifconfig&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ip link&amp;lt;/code&amp;gt;&lt;br /&gt;
|Настройка сетевого адреса, включение и выключение интерфейса&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;route&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;ip route&amp;lt;/code&amp;gt;&lt;br /&gt;
|Управление таблицами маршрутизации&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;arp&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;ip neigh&amp;lt;/code&amp;gt;&lt;br /&gt;
|Управление [[ARP]]-кэшем&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;iptunnel&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;ip tunnel&amp;lt;/code&amp;gt;&lt;br /&gt;
|Настройка тоннелей&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;nameif&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;ifrename&amp;lt;/code&amp;gt;&lt;br /&gt;
|Переименование сетевого интерфейса&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ipmaddr&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;ip maddr&amp;lt;/code&amp;gt;&lt;br /&gt;
|Настройка [[мультикаст]]-групп рассылки&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;netstat&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;ip -s&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ss&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ip route&amp;lt;/code&amp;gt;&lt;br /&gt;
|Отображение различной сетевой статистики&lt;br /&gt;
|}&lt;br /&gt;
Для выполнения какой-либо операции после основной команды ip, указывается «объект» и команда (возможно с аргументами), которая должна быть выполнена для этого объекта.&lt;br /&gt;
&lt;br /&gt;
В качестве «объектов» можно указывать следующие значения: link, addr (адреса сетевых интерфейсов), route (маршруты), rule (правила), neigh, ntable, tunnel (тоннели), maddr, mroute, monitor, xfrm. Вместо полного имени объекта можно указывать только первые буквы, если это не вызывает неоднозначность.&lt;br /&gt;
&lt;br /&gt;
Можно указать команду &amp;lt;tt&amp;gt;help&amp;lt;/tt&amp;gt;, для вывода подсказки. Если не указывать объект, но указать команду &amp;lt;tt&amp;gt;help&amp;lt;/tt&amp;gt;, то выводится справка о программе. Если указать объект без команды, то выполняется команда &amp;lt;tt&amp;gt;show&amp;lt;/tt&amp;gt; — распечатывается список объектов указанного типа.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;spoiler text=&amp;quot;Примеры использования утилит из пакета iproute2 &amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Команда&lt;br /&gt;
! Комментарий&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;tt&amp;gt;ip help&amp;lt;/tt&amp;gt;'''&lt;br /&gt;
| Вывод общей справки&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;tt&amp;gt;ip a h&amp;lt;/tt&amp;gt;'''&lt;br /&gt;
&amp;lt;pre&amp;gt;Usage: ip addr {add|change|replace} IFADDR dev STRING [ LIFETIME ]&lt;br /&gt;
                                                      [ CONFFLAG-LIST]&lt;br /&gt;
       ip addr del IFADDR dev STRING&lt;br /&gt;
       ip addr {show|flush} [ dev STRING ] [ scope SCOPE-ID ]&lt;br /&gt;
                            [ to PREFIX ] [ FLAG-LIST ] [ label PATTERN ]&lt;br /&gt;
IFADDR := PREFIX | ADDR peer PREFIX&lt;br /&gt;
          [ broadcast ADDR ] [ anycast ADDR ]&lt;br /&gt;
          [ label STRING ] [ scope SCOPE-ID ]&lt;br /&gt;
SCOPE-ID := [ host | link | global | NUMBER ]&lt;br /&gt;
FLAG-LIST := [ FLAG-LIST ] FLAG&lt;br /&gt;
FLAG  := [ permanent | dynamic | secondary | primary |&lt;br /&gt;
           tentative | deprecated | CONFFLAG-LIST ]&lt;br /&gt;
CONFFLAG-LIST := [ CONFFLAG-LIST ] CONFFLAG&lt;br /&gt;
CONFFLAG  := [ home | nodad ]&lt;br /&gt;
LIFETIME := [ valid_lft LFT ] [ preferred_lft LFT ]&lt;br /&gt;
LFT := forever | SECONDS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
| Распечатка подсказки — команд и их аргументов для объекта addr. &amp;lt;br /&amp;gt;'''Заметьте, что вместо слов addr и help указаны сокращения.'''&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;tt&amp;gt;ip a&amp;lt;/tt&amp;gt;''' &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 brd 127.255.255.255 scope host lo&lt;br /&gt;
    inet6 ::1/128 scope host&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
2: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
    link/ether 00:16:17:eb:a9:da brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.22.2.1/16 brd 172.22.255.255 scope global eth1&lt;br /&gt;
    inet6 fe80::216:17ff:feeb:a9da/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
3: eth2: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
    link/ether 00:16:17:eb:d3:20 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 10.19.121.211/22 brd 10.19.123.255 scope global eth2&lt;br /&gt;
    inet6 fe80::216:17ff:feeb:d320/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
5: ppp0: &amp;lt;POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP&amp;gt; mtu 1492 qdisc pfifo_fast qlen 3&lt;br /&gt;
    link/ppp&lt;br /&gt;
    inet 89.37.48.117 peer 81.9.101.117/32 scope global ppp0&amp;lt;/pre&amp;gt;&lt;br /&gt;
| Распечатка всех (физических и виртуальных интерфейсов). Для сравнения приводится информацией, выводимая командой &amp;lt;tt&amp;gt;ifconfig -a&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;eth1      Link encap:Ethernet  HWaddr 00:16:17:EB:A9:DA&lt;br /&gt;
          inet addr:172.22.2.1  Bcast:172.22.255.255  Mask:255.255.0.0&lt;br /&gt;
          inet6 addr: fe80::216:17ff:feeb:a9da/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:13444859 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:7073798 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:2540456241 (2422.7 Mb)  TX bytes:916670636 (874.2 Mb)&lt;br /&gt;
          Interrupt:16 Base address:0x2000&lt;br /&gt;
&lt;br /&gt;
eth2      Link encap:Ethernet  HWaddr 00:16:17:EB:D3:20&lt;br /&gt;
          inet addr:10.19.121.211  Bcast:10.19.123.255  Mask:255.255.252.0&lt;br /&gt;
          inet6 addr: fe80::216:17ff:feeb:d320/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:266115675 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:409606457 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:294857473 (281.1 Mb)  TX bytes:109522306 (104.4 Mb)&lt;br /&gt;
          Interrupt:17 Base address:0x4000&lt;br /&gt;
&lt;br /&gt;
lo        Link encap:Local Loopback&lt;br /&gt;
          inet addr:127.0.0.1  Mask:255.0.0.0&lt;br /&gt;
          inet6 addr: ::1/128 Scope:Host&lt;br /&gt;
          UP LOOPBACK RUNNING  MTU:16436  Metric:1&lt;br /&gt;
          RX packets:3480203 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:3480203 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:0&lt;br /&gt;
          RX bytes:1531400801 (1460.4 Mb)  TX bytes:1531400801 (1460.4 Mb)&lt;br /&gt;
&lt;br /&gt;
ppp0      Link encap:Point-to-Point Protocol&lt;br /&gt;
          inet addr:89.37.48.117  P-t-P:81.9.101.117  Mask:255.255.255.255&lt;br /&gt;
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1&lt;br /&gt;
          RX packets:46940444 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:66480329 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:3&lt;br /&gt;
          RX bytes:3859205550 (3680.4 Mb)  TX bytes:1343026828 (1280.8 Mb)&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;tt&amp;gt;ip link&amp;lt;/tt&amp;gt;'''&lt;br /&gt;
&amp;lt;pre&amp;gt;1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN &lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether 00:16:d4:b3:68:de brd ff:ff:ff:ff:ff:ff&amp;lt;/pre&amp;gt;&lt;br /&gt;
| Вывод информации об интерфейсах. Напоминает данные, выводимые об адресах, но намного короче, так как указываются только [[MAC-адрес|физические адреса]] интерфейсов и не выводятся логические [[IP]]/[[IPv6]].&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;tt&amp;gt;ip rou&amp;lt;/tt&amp;gt;'''&amp;lt;pre&amp;gt;81.9.101.117 dev ppp0  proto kernel  scope link  src 89.37.48.117&lt;br /&gt;
10.19.120.0/22 dev eth2  proto kernel  scope link  src 10.19.121.211&lt;br /&gt;
172.22.0.0/16 dev eth1  proto kernel  scope link  src 172.22.2.1&lt;br /&gt;
127.0.0.0/8 dev lo  scope link&lt;br /&gt;
default via 81.9.101.117 dev ppp0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
| Список сетевых маршрутов.&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;tt&amp;gt;ip ro flush cache&amp;lt;/tt&amp;gt;'''&lt;br /&gt;
| Очистка кэша маршрутов.&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;tt&amp;gt;ip ro add 81.9.100.12   via 89.37.48.117 dev ppp0&amp;lt;/tt&amp;gt;'''&lt;br /&gt;
| Добавление нового маршрута.&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;tt&amp;gt;ip ru&amp;lt;/tt&amp;gt;'''&amp;lt;pre&amp;gt;0:      from all lookup local&lt;br /&gt;
32764:  from 192.168.72.115 lookup co-tbl&lt;br /&gt;
32765:  from 89.37.48.117 lookup zet-tbl&lt;br /&gt;
32766:  from all lookup main&lt;br /&gt;
32767:  from all lookup default&amp;lt;/pre&amp;gt;&lt;br /&gt;
| Распечатка правил маршрутизации. Заметьте что в данном случае используются несколько таблиц маршрутизации.&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;tt&amp;gt;ip t&amp;lt;/tt&amp;gt;''' &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;tunl0: ip/ip  remote any  local any  ttl inherit  nopmtudisc&lt;br /&gt;
&amp;lt;/tt&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;gre0: gre/ip  remote any  local any  ttl inherit  nopmtudisc&amp;lt;/tt&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;sit0: ipv6/ip  remote any  local any  ttl 64  nopmtudisc&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Распечатка списка тоннелей.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/spoiler&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [https://web.archive.org/web/20140623231840/http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2 Текущий официальный сайт]&lt;br /&gt;
* [http://ubuntologia.ru/forum/viewtopic.php?f=109&amp;amp;t=2300 Продолжение по мотивам статьи для системных администраторов старой закалки, которая поможет перейти на ''iproute2'' с legacy-утилит]&lt;br /&gt;
* [https://habrahabr.ru/post/320278/ Тяжелое расставание с Net-Tools, Хабрахабр, Микаел temujin Григорян]&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B_%D0%B8_%D1%83%D1%82%D0%B8%D0%BB%D0%B8%D1%82%D1%8B_Unix/Linux&amp;diff=694</id>
		<title>Основные команды и утилиты Unix/Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B_%D0%B8_%D1%83%D1%82%D0%B8%D0%BB%D0%B8%D1%82%D1%8B_Unix/Linux&amp;diff=694"/>
				<updated>2018-02-28T07:00:01Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;На данной странице приводится список основных утилит пакета ''GNU Coreutils'', а также команд не входящих в данный пакет. Описание некоторых команд/утилит приводится на страницах данной WIKI.&lt;br /&gt;
&lt;br /&gt;
*[[bzip2|bzip2 — Утилита сжатия данных]]&lt;br /&gt;
*[[cat|cat — Команда выводящая последовательно указанные файлы]]&lt;br /&gt;
*[[cd — Команда смены директории]]&lt;br /&gt;
*[[chattr — Команда изменения атрибутов файлов]]&lt;br /&gt;
*[[chgrp — Команда изменяющая группу владельца файла]]&lt;br /&gt;
*[[Chmod|chmod — Команда изменения прав доступа к файлам и/или каталогам]]&lt;br /&gt;
*[[chown — Команда назначения владельца файлов и/или каталога]]&lt;br /&gt;
*[[cp — Команда копирования файлов и/или каталогов]]&lt;br /&gt;
*[[dd|dd — Команда копирования и преобразования файлов]]&lt;br /&gt;
*[[df|df — Команда отображение свободного места на смонтированных файловых системах]]&lt;br /&gt;
*[[find|find — Команда поиска файлов]]&lt;br /&gt;
*[[getfacl|getfacl — Команда просмотра установленных ACL]]&lt;br /&gt;
*[[grep|grep — Команда находящая на вводе строки, отвечающие заданному регулярному выражению]]&lt;br /&gt;
*[[gzip|gzip — Утилита сжатия данных]]&lt;br /&gt;
*[[ifconfig|ifconfig — Утилита конфигурирования параметров сетевого интерфейса]]&lt;br /&gt;
*[[install|install — Команда копирования файлов и установка атрибутов]]&lt;br /&gt;
*[[iptables|iptables — Утилита управления брендмауэром]]&lt;br /&gt;
*[[less|less — Команда просмотра текстовых файлов]]&lt;br /&gt;
*[[ln|ln — Команда создания ссылки на файл]]&lt;br /&gt;
*[[ls — Команда печати содержимого каталога]]&lt;br /&gt;
*[[lsattr — Команда просмотра установленных атрибутов файлов]]&lt;br /&gt;
*[[mkdir — Команда создания директории]]&lt;br /&gt;
*[[more|more — Команда просмотра текстовых файлов]]&lt;br /&gt;
*[[mv — Команда перемещения/переименовывания файлов и/или каталогов]]&lt;br /&gt;
*[[netstat|netstat — Команда выводящая на дисплей состояние TCP-соединений]]&lt;br /&gt;
*[[ping|ping — Команда проверки целостности и качества соединения в сетях]]&lt;br /&gt;
*[[ps|ps — Команда выводящая информацию о работающих процессах]]&lt;br /&gt;
*[[rm — Команда удаления файлов]]&lt;br /&gt;
*[[rmdir — Команда удаления пустой директории]]&lt;br /&gt;
*[[rsync —  Cинхронизация файлов и каталогов в двух местах]]&lt;br /&gt;
*[[setfacl|setfacl — Команда назначения, модификации и удаления ACL]]&lt;br /&gt;
*[[Scp — Команда безопасного сетевого копирования файлов|scp — Команда безопасного сетевого копирования файлов]]&lt;br /&gt;
*[[shred|shred — Команда перезаписывающая файлы, чтобы скрыть содержимое]]&lt;br /&gt;
*[[sort|sort — Команда сортировки строк текстовых файлов]]&lt;br /&gt;
*[[ssh|ssh — Команда безопасного удалённого соединения]]&lt;br /&gt;
*[[sudo|sudo — Команда повышения привилегий пользователя]]&lt;br /&gt;
*[[tar|tar — Утилита для работы с архивами .tar]]&lt;br /&gt;
*[[touch — Команда создания пустого файла и модификации времени последнего изменения файла]]&lt;br /&gt;
*[[useradd|useradd — Утилита для создания нового пользователя или изменения информации пользователях]]&lt;br /&gt;
*[[userdel|userdel — Утилита удаляющая учётную запись и файлы пользователя]]&lt;br /&gt;
*[[usermod|usermod — Утилита изменяющая учётную запись пользователя]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Некоторые пакеты coreutils 8.23 и команды не входящие в данный пакет:&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[cat|cat]]&amp;lt;/code&amp;gt; || Команда выводящая последовательно указанные файлы)&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Chcon|chcon]]&amp;lt;/code&amp;gt; || Изменяет контекст безопасности файла (SELinux)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Chgrp — Команда изменяющая группу владельца файла|chgrp]]&amp;lt;/code&amp;gt; || Изменяет группу владельца файла&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Chown — Команда назначения владельца файлов и/или каталога|chown]]&amp;lt;/code&amp;gt; || Изменяет владельца файла&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Chmod|chmod]]&amp;lt;/code&amp;gt; || Изменяет права доступа к файлу&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Cd — Команда смены директории|сd]]&amp;lt;/code&amp;gt; || Изменяет права доступа к файлу&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Cp_—_Команда_копирования_файлов_и/или_каталогов|cp]]&amp;lt;/code&amp;gt; || Копирование файлов и(или) каталогов&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[dd]]&amp;lt;/code&amp;gt; || Копирование и преобразование файлов&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[df]]&amp;lt;/code&amp;gt; || Отображает свободное место на смонтированных файловых системах&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Ls_—_Команда_печати_содержимого_каталога#.D0.9E.D0.BA.D1.80.D1.83.D0.B6.D0.B5.D0.BD.D0.B8.D0.B5|dir]]&amp;lt;/code&amp;gt; || То же самое, что и &amp;lt;tt&amp;gt;ls -C -b&amp;lt;/tt&amp;gt; (список файлов выводится в колонках с вертикальной сортировкой)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[dircolors]]&amp;lt;/code&amp;gt; || Устанавливает цветовую схему для вывода команды &amp;lt;tt&amp;gt;ls&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[install]]&amp;lt;/code&amp;gt; || Копирует файлы и устанавливает атрибуты&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[ln (UNIX)|ln]]&amp;lt;/code&amp;gt; || Создаёт ссылку на файл&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Ls_—_Команда_печати_содержимого_каталога|ls]]&amp;lt;/code&amp;gt; || Выводит список файлов&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Mkdir — Команда создания директории|mkdir]]&amp;lt;/code&amp;gt; || Создаёт каталоги&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[mkfifo]]&amp;lt;/code&amp;gt; || Создаёт FIFO (именованные каналы)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[mknod]]&amp;lt;/code&amp;gt; || Создаёт специальные файлы&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[mktemp]]&amp;lt;/code&amp;gt; || Создаёт временный файл или каталог&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Mv_—_Команда_перемещения/переименовывания_файлов_и/или_каталогов | mv]]&amp;lt;/code&amp;gt; || Перемещает и переименовывает файлы&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[realpath]]&amp;lt;/code&amp;gt; || Возвращает полученный абсолютный или относительный путь к файлу&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Rm_—_Команда_удаления_файлов|rm]]&amp;lt;/code&amp;gt; || Удаляет файлы&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Rmdir — Команда удаления пустой директории | rmdir]]&amp;lt;/code&amp;gt; || Удаляет пустые каталоги&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[shred]]&amp;lt;/code&amp;gt; || Перезаписывает файлы чтобы скрыть содержимое (так называемое безопасное удаление), и опционально удаляет файлы&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[sync]]&amp;lt;/code&amp;gt; || Записывает на диск буферы файловых систем&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Touch_—_Команда_создания_пустого_файла_и_модификации_времени_последнего_изменения_файла|touch]]&amp;lt;/code&amp;gt; || Изменяет время создания, модификации файлов&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[truncate]]&amp;lt;/code&amp;gt; || Уменьшает или увеличивает размер файла до заданного размера&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Ls_—_Команда_печати_содержимого_каталога#.D0.9F.D0.BE.D0.B4.D1.80.D0.BE.D0.B1.D0.BD.D0.BE.D1.81.D1.82.D0.B8_.D0.B2.D0.B5.D1.80.D1.81.D0.B8.D0.B8_GNU|vdir]]&amp;lt;/code&amp;gt; || То же самое, что и &amp;lt;tt&amp;gt;ls -l -b&amp;lt;/tt&amp;gt; (выводит список файлов в длинном формате)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=Ifconfig&amp;diff=693</id>
		<title>Ifconfig</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=Ifconfig&amp;diff=693"/>
				<updated>2018-02-28T06:59:24Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: Новая страница: «'''ifconfig''' (сокр. '''i'''nter'''f'''ace '''config'''uration) — команда UNIXи UNIX‐подобных операционных систем.  ==…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''ifconfig''' (сокр. '''i'''nter'''f'''ace '''config'''uration) — команда UNIXи UNIX‐подобных операционных систем.&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
 ifconfig [interface]&lt;br /&gt;
 ifconfig interface [aftype] options | address ...&lt;br /&gt;
&lt;br /&gt;
== Описание ==&lt;br /&gt;
Команда &amp;lt;tt&amp;gt;ifconfig&amp;lt;/tt&amp;gt; - аналог '''ipconfig''' Windows, с другими ключевыми параметрами и ''более широким функционалом''. Используется для назначения сетевого адреса, изменения настроек параметров сетевого адаптера и ''IP'' протокола. Она используется в большинстве ''*nix'' систем на этапе загрузки операционной системы для настройки сетевых интерфейсов. После этого она обычно используется только при отладке, настройке или восстановлении системы.&lt;br /&gt;
&lt;br /&gt;
При вызове '''''man ifconfig''''' (для '''FreeBSD''') — выводится полное руководство о параметрах команды.&lt;br /&gt;
&lt;br /&gt;
Если аргументы не переданы, &amp;lt;tt&amp;gt;ifconfig&amp;lt;/tt&amp;gt; выдаёт информацию о состоянии активных интерфейсов. Если указан один аргумент — '''интерфейс''', выдаётся информация только о состоянии этого '''интерфейса'''; если указан один аргумент &amp;lt;tt&amp;gt;-a&amp;lt;/tt&amp;gt;, выдаётся информация о состоянии всех '''интерфейсов''', даже отключенных. Иначе команда конфигурирует указанный '''интерфейс'''.&lt;br /&gt;
&lt;br /&gt;
В современных дистрибутивах ''Linux'' утилита &amp;lt;tt&amp;gt;ifconfig&amp;lt;/tt&amp;gt; считается устаревшей и заменена утилитой [[iproute2]], основные функции настроек сетевого '''интерфейса''' получила утилита ip из состава [[iproute2]]. Для ''Unix'' систем не потеряло актуальности.&lt;br /&gt;
&lt;br /&gt;
== Семейство протоколов ==&lt;br /&gt;
Если первым после имени интерфейса идёт имя поддерживаемого семейства адресов, это семейство адресов используется для декодирования и выдачи всех адресов протокола. В настоящее время поддерживаются семейства адресов inet (TCP/IP, используется по умолчанию), inet6 (IPv6), ax25 (AMPR Packet Radio), ddp (Appletalk Phase 2), ipx (Novell [[IPX]]) и netrom (AMPR Packet Radio).&lt;br /&gt;
&lt;br /&gt;
== Опции ==&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-----&lt;br /&gt;
! |Опция&lt;br /&gt;
! |Описание&lt;br /&gt;
|-----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''interface'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| ''Имя интерфейса. Обычно это имя драйвера, за которым идет номер устройства, например, eth0 для первого интерфейса Ethernet.''&lt;br /&gt;
|-----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''up'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| ''Помечает интерфейс как включенный. Это можно использовать для включения интерфейса после ifconfig down. Это происходит автоматически при установке первого адреса интерфейса. Если интерфейс был переустановлен при предыдущей пометке в качестве отключенного, аппаратное обеспечение будет переинициализировано.''&lt;br /&gt;
|-----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''down'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| ''Помечает интерфейс как отключенный. Когда интерфейс помечен как отключенный, система не пытается пересылать сообщения через этот интерфейс. При возможности, интерфейс будет переустановлен, чтобы отключить также прием. Это действие не отключает автоматически маршруты, использующие данный интерфейс.''&lt;br /&gt;
|-----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''arp'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| ''Включает использование протокола разрешения адреса ([[ARP|Address Resolution Protocol]]) при сопоставлении адресов на уровне сети и адресов на уровне связи (используется по умолчанию). В настоящее время это реализуется путём сопоставления адресов DARPA Internet и адресов Ethernet 10 Мбит/с.''&lt;br /&gt;
|-----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''-arp'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| ''Отключает использование протокола разрешения адреса ([[ARP|Address Resolution Protocol]]).''&lt;br /&gt;
|-----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''promisc'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| ''Помещает интерфейс в состояние promiscuous. В широковещательной сети это заставляет интерфейс получать все пакеты независимо от того, были ли они предназначены для этой машины или нет. Это позволяет, используя фильтры пакетов, анализировать сетевой трафик. Обычно, это хорошая техника охоты на сетевые проблемы, которые иначе трудно отловить. Здесь весьма полезна утилита [[tcpdump]]. С другой стороны, это позволяет хакерам исследовать движение паролей по сети и делать другие черные дела. Одна защита против этого типа нападения: не позволять присоединяться к сети чужим компьютерам. Другой способ: использовать безопасные опознавательные протоколы, типа Kerberos, или SRA login. Эта опция соответствует флагу PROMISC.''&lt;br /&gt;
|-----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''-promisc'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| ''Запрещает режим promiscuous.''&lt;br /&gt;
|-----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''allmulti'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| ''Включает или отключает режим all-multicast. В этом режиме все многоадресные (multicast) пакеты в сети будут приниматься этим интерфейсом.''&lt;br /&gt;
|-----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''-allmulti'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| ''Отключает режим all-multicast.''&lt;br /&gt;
|-----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''metric N'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| ''Устанавливает стоимость маршрутизации для интерфейса равной n, вместо стандартного значения 0. Стоимость маршрутизации (routing metric) используется протоколом маршрутизации (см. [[routed]]). Большие стоимости делают маршрут менее предпочтительным; стоимости учитываются как дополнительные пересылки на пути к целей сети или хосту.''&lt;br /&gt;
|-----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''mtu N'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| ''Этот параметр устанавливает максимальный размер пакета ([[maximum transmission unit]] — MTU) для интерфейса. Обычно нет необходимости менять значение этого параметра, но, в некоторых случаях, уменьшение значения MTU позволяет добиться устойчивой работы абонентов с очень низким уровнем сигнала. Кроме того, он может использоваться для изменения параметров туннельных интерфейсов.''&lt;br /&gt;
|-----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''dstaddr addr'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| ''Устанавливает удаленный IP-адрес для двухточечной связи (например, по протоколу [[PPP (сетевой протокол)|PPP]]). Это ключевое слово сейчас считается устаревшим; используйте вместо него ключевое слово pointopoint.''&lt;br /&gt;
|-----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''netmask addr'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| ''Устанавливает маску сети IP для этого интерфейса. По умолчанию используется обычная маска сети класса A, B или C (что определяется по IP-адресу интерфейса), но можно установить любое значение.''&lt;br /&gt;
|-----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''add addr/prefixlen'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| ''Добавляет адрес IPv6 для интерфейса.''&lt;br /&gt;
|-----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''del addr/prefixlen'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| ''Удаляет адрес IPv6 для интерфейса.''&lt;br /&gt;
|-----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''tunnel aa.bb.cc.dd'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| ''Создаёт новое устройство SIT (IPv6-в-IPv4) — тоннель к указанной цели.''&lt;br /&gt;
|-----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''irq'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| ''Устанавливает аппаратное прерывание, используемое данным устройством. Не для всех устройств можно динамически менять значение IRQ.''&lt;br /&gt;
|-----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''io_addr addr'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| ''Устанавливает адрес начала области ввода-вывода для данного устройства.''&lt;br /&gt;
|-----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''mem_start addr'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| ''Устанавливает адрес начала области разделяемой памяти, используемой этим устройством. Это нужно лишь для немногих устройств.''&lt;br /&gt;
|-----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''media type'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| ''Устанавливает физический порт или тип носителя, используемый устройством. Не для всех устройств можно менять этот параметр, и для разных устройств могут поддерживаться различные значения. Типичные значения типа — [[10base2]] (коаксиальный кабель Ethernet), [[10baseT]] (витая пара Ethernet 10 Мбит/сек), [[AUI]] (внешний передатчик) и т. д. Специальный тип носителя auto можно использовать, чтобы потребовать от драйвера автоматически определять тип носителя. Не все драйверы могут это делать.''&lt;br /&gt;
|-----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''bootproto [[static][dhcp]]'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| ''Устанавливает способ получения IP адреса.&lt;br /&gt;
(статический, которые описывается Вами, либо динамический получаемый от DHCP-сервера)''&lt;br /&gt;
|-----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''broadcast [addr]'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| ''Устанавливает широковещательный адрес. Широковещательный адрес обычно создается из сетевого адреса установкой всех бит части машины. Некоторые реализации IP используют другую схему, эта опция помогает приспособиться к этим странным средам. Если широковещательный (broadcast) адрес был установлен, ifconfig показывает флаг BROADCAST .''&lt;br /&gt;
|-----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''pointopoint [addr]'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| ''Это ключевое слово включает двухточечный (point-to-point) режим интерфейса, означающий, что он обеспечивает непосредственную связь между двумя машинами, которую никто не прослушивает. Если указан также аргумент адрес, устанавливает соответствующий протоколу адрес другой стороны связи, как и устаревшее ключевое слово dstaddr. В противном случае, устанавливает или сбрасывает флаг IFF_POINTOPOINT для интерфейса.''&lt;br /&gt;
|-----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''-pointopoint [addr]'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| ''Это ключевое слово отключает двухточечный (point-to-point) режим интерфейса.''&lt;br /&gt;
|-----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''hw class address'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| ''Устанавливает аппаратный адрес соответствующего интерфейса, если драйвер устройства поддерживает такую возможность. После ключевого слова hw необходимо указать имя класса оборудования, а также аппаратный адрес в текстовом виде. В настоящее время поддерживается оборудование классов ether (Ethernet), ax25 (AMPR AX.25), ARCnet и netrom (AMPR NET/ROM).''&lt;br /&gt;
|-----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''multicast'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| ''Устанавливает у интерфейса флаг поддержки групповой передачи данных. Обычно в этом нет нужды, поскольку драйвер сам выставляет этот флаг.''&lt;br /&gt;
|-----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''address'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| ''IP-адрес, присваиваемый интерфейсу.''&lt;br /&gt;
|-----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''txqueuelen length'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| ''Устанавливает длину очереди передачи для устройства. Это позволяет установить меньшие значения для более медленных устройств с продолжительными задержками (модемные линии, ISDN), чтобы быстрая передача больших объёмов данных не слишком мешала передаче данных интерактивных сеансов, например, telnet.''&lt;br /&gt;
|+&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
&lt;br /&gt;
 # ifconfig eth0 inet 192.168.10.15 netmask 255.255.255.0&lt;br /&gt;
 # ifconfig eth0 up&lt;br /&gt;
 # ifconfig&lt;br /&gt;
 eth0      Link encap:Ethernet  HWaddr 00:18:F3:BE:18:1E&lt;br /&gt;
           inet addr:192.168.10.15  Bcast:192.168.10.255  Mask:255.255.255.0&lt;br /&gt;
           inet6 addr: fe80::218:f3ff:febe:181e/64 Scope:Link&lt;br /&gt;
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
           RX packets:39456 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
           TX packets:45730 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
           collisions:0 txqueuelen:1000&lt;br /&gt;
           RX bytes:25457904 (24.2 Mb)  TX bytes:6540945 (6.2 Mb)&lt;br /&gt;
           Interrupt:20&lt;br /&gt;
 &lt;br /&gt;
 lo        Link encap:Local Loopback&lt;br /&gt;
           inet addr:127.0.0.1  Mask:255.0.0.0&lt;br /&gt;
           inet6 addr: ::1/128 Scope:Host&lt;br /&gt;
           UP LOOPBACK RUNNING  MTU:16436  Metric:1&lt;br /&gt;
           RX packets:182 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
           TX packets:182 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
           collisions:0 txqueuelen:0&lt;br /&gt;
           RX bytes:12812 (12.5 Kb)  TX bytes:12812 (12.5 Kb)&lt;br /&gt;
 &lt;br /&gt;
 #&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[netstat]]&lt;br /&gt;
* [[iptables]]&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
[http://semenushkin.ru/2010/09/28/ifconfig-alias/ Дополнительный ip для интерфейса (ifconfig alias)]&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=692</id>
		<title>Заглавная страница</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=692"/>
				<updated>2018-02-20T12:18:17Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:God_yes.JPG|center]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;center&amp;gt;'''&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Личная WIKI&amp;lt;/span&amp;gt;''' ''тов. Верещаги Артёма'' '''''&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;'''''&amp;lt;/center&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;center&amp;gt;'''''&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Используется для заметок и всякого такого...&amp;lt;/span&amp;gt;'''''&amp;lt;/center&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Для корректного использования данной '''&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;WIKI&amp;lt;/span&amp;gt;''' &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;крайне рекомендуется использовать браузер&amp;lt;/span&amp;gt; на основе свободного браузера [https://chromium.woolyss.com/download/ '''''Chromium&amp;amp;copy;'''''] — [https://www.google.ru/chrome/browser/desktop/index.html Google Chrome&amp;amp;copy;], [https://browser.yandex.ru/ Яндекс.Браузер&amp;amp;copy;] и т.д.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''''Все права на представленные материалы принадлежат их авторам, размещены исключительно для ознакомления'''''&amp;lt;/span&amp;gt;.&lt;br /&gt;
== Оглавление ==&lt;br /&gt;
&lt;br /&gt;
* Основы Linux/Unix систем:&lt;br /&gt;
** [[Работа в терминале Unix/Linux]]&lt;br /&gt;
** [[Основные команды и утилиты Unix/Linux]]&lt;br /&gt;
**[[faq|Полезные советы при работе в терминале]]&lt;br /&gt;
**[[Vim|Vim — Текстовый редактор]]&lt;br /&gt;
**[[sed|SEd — Неинтерактивный потоковый редактор]]&lt;br /&gt;
&lt;br /&gt;
*Справочная информация:&lt;br /&gt;
**[[Subnetting|Подсети и префиксы IPv4]]&lt;br /&gt;
**[[ACL|ACL — списки контроля доступа]]&lt;br /&gt;
**[[Advanced Bash-Scripting Guide|Искусство программирования на языке сценариев командной оболочки(BASH)]]&lt;br /&gt;
**[[bash-task|Простые bash-задачи]]&lt;br /&gt;
&amp;lt;!--**[[Links|Ссылки на полезные ресурсы и статьи]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Установка/настройка системного ПО: &lt;br /&gt;
** [[Установка ОС CentOS 7.x]]&lt;br /&gt;
*** [[Создание репозитория CentOS/RHEL]]&lt;br /&gt;
*** [[yum|Работа с менеджером пакетов YUM]]&lt;br /&gt;
*** [[diskadd|Обновление дисков Linux ВМ без перезагрузки в инфраструктуре VMware]]&lt;br /&gt;
** [[Установка ОС RHEL 6.x]]&lt;br /&gt;
** [[Установка БД PostgreSQL]] 9.4.x&lt;br /&gt;
** [[Установка СУБД Oracle 11g]] (11.2.0.3/11.2.0.4)&lt;br /&gt;
*** [[Настройка ОС для серверов СУБД Oracle]]&lt;br /&gt;
** [[Max Open Files|Настройка дескрипторов для ОС]]&lt;br /&gt;
** [[proFTPD_vsFTPD|Настройка ftp-сервера proftpd/vsftp ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Установка/настройка прикладного ПО:&lt;br /&gt;
** [[Установка Java/Jruby]]&lt;br /&gt;
** [[Установка ZooKeeper на ОС RHEL/CentOS]]&lt;br /&gt;
&amp;lt;!-- Это комментарий&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Информацию по работе с этой вики можно найти в [//meta.wikimedia.org/wiki/Help:Contents/ru справочном руководстве].&lt;br /&gt;
&lt;br /&gt;
== Некоторые полезные ресурсы ==&lt;br /&gt;
* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Список возможных настроек];&lt;br /&gt;
* [//www.mediawiki.org/wiki/Manual:FAQ/ru Часто задаваемые вопросы и ответы по MediaWiki];&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Рассылка уведомлений о выходе новых версий MediaWiki].&lt;br /&gt;
* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Перевод MediaWiki на свой язык]&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=Bash-task&amp;diff=691</id>
		<title>Bash-task</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=Bash-task&amp;diff=691"/>
				<updated>2018-02-20T07:55:02Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;На данной странице представлены задачи  и примерные решения на bash(актуально для RHEL 7.x/CentOS 7.x. В других случаях требуется проверка).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''''Задача №1'''''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
'''Используя цикл и оператор выбора написать скрипт, реализующий следующее''':&lt;br /&gt;
* Выводит на экран(в терминал) '''меню с выбором''', состоящим из двух пунктов &amp;quot;''1)''&amp;quot; &amp;quot;''2)''&amp;quot;&lt;br /&gt;
* При выборе &amp;quot;''1)''&amp;quot; выводит текст на экран(в терминал), содержащий только цифру '''1'''&lt;br /&gt;
* При выборе &amp;quot;''2)''&amp;quot; выводит текст на экран(в терминал), содержащий только цифру '''2'''&lt;br /&gt;
* При вводе любого другого символа, выводит на экран сообщение о неправильном вводе  и  просит повторить ввод.&lt;br /&gt;
При неправильном вводе цикл бесконечен, т.е. продолжается пока не будет введён нужный символ, а затем снова выводится меню выбора.&lt;br /&gt;
'''Модернизировать'''(№1) скрипт так, чтобы при ''неправильном вводе'' он выводил сообщение о выходе из скрипта через ''три секунды'', после трёх секунд ожидания осуществляется выход из скрипта. '''Модернизировать'''(№2) скрипт добавив в него возможность прекращения работы в меню.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;spoiler text=&amp;quot;Вариант решения Задачи №1&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/env bash&lt;br /&gt;
#trap 'echo -e &amp;quot;\e[31mВот фиг тебе, а не прерывание\e[0m!&amp;quot;' 1 2 3 5 9 15&lt;br /&gt;
PS3='Введите значение: ' &amp;amp;&amp;amp; echo&lt;br /&gt;
                                                                                              &lt;br /&gt;
while :&lt;br /&gt;
do&lt;br /&gt;
         #clear&lt;br /&gt;
         options=(&amp;quot;1&amp;quot; &amp;quot;2&amp;quot;)&lt;br /&gt;
         #options=(&amp;quot;1&amp;quot; &amp;quot;2&amp;quot; &amp;quot;Завершение работы скрипта&amp;quot;) — для модернизации №2&lt;br /&gt;
         select opt in &amp;quot;${options[@]}&amp;quot;; do&lt;br /&gt;
         case &amp;quot;$opt&amp;quot; in&lt;br /&gt;
                 1) echo 'Ввели ' &amp;quot;$opt&amp;quot;&lt;br /&gt;
                    break 1&lt;br /&gt;
                 ;;&lt;br /&gt;
                 2) echo  'Ввели ' &amp;quot;$opt&amp;quot;&lt;br /&gt;
                    break 1&lt;br /&gt;
                 ;;  &lt;br /&gt;
                 # Для модернизации №2:&lt;br /&gt;
                 #'Завершение работы скрипта')&lt;br /&gt;
                 #  echo &amp;quot;Завершили работу скрипта&amp;quot;&lt;br /&gt;
                 #  exit&lt;br /&gt;
                 ;;                                                                         &lt;br /&gt;
                 *) echo 'Ввели неверный символ'&lt;br /&gt;
                    echo 'Повторите ввод'&lt;br /&gt;
                    break 1&lt;br /&gt;
                    #echo &amp;quot;Прекращаем работу скрипта через 3 секунды и осуществляем выход&amp;quot; — для модернизации №1&lt;br /&gt;
                    #sleep 3; exit 0 — для модернизации №1&lt;br /&gt;
                 ;;&lt;br /&gt;
           esac&lt;br /&gt;
           #break&lt;br /&gt;
           done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''''Задача №2'''''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
'''Написать скрипт реализующий следующее''':&lt;br /&gt;
* Создать '''функцию''', которая реализует ''вывод списка директорий'' в файл '''/tmp/dir_list.log'''. При этом в качестве ''входного аргумента'' для функции служит переданный скрипту параметр, представляющий из себя ''абсолютный путь''.&lt;br /&gt;
* Создать '''функцию''', которая будет ''считывать содержимое'' '''/tmp/dir_list.log''' и выводить на экран, а также копировать это содержимое в '''/tmp/dir_list.0'''.&lt;br /&gt;
* Вызов функций происходит с ''задержкой в 5 секунд''.&lt;br /&gt;
* После успешной отработки скрипта и выхода из него файлы '''/tmp/dir_list.log''' и '''/tmp/dir_list.0''' должны быть автоматически удалены. Для этого пункта '''запрещается''' прямой вызов ''`rm -rf`'' или ''$(rm -rf)'' перед завершением скрипта.&lt;br /&gt;
&amp;lt;spoiler text=&amp;quot;Подсказки для задачи №2&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
find .  -maxdepth 1  -type d -printf '%f\n' — выводит все директории&lt;br /&gt;
find .  -maxdepth 1  -type d| sed 's|./*||' | sed '/^$/d' — выводит все директории&lt;br /&gt;
find .  -maxdepth 1  -type d -printf '%f\n'|sed '1d' — выводит все директории, кроме первой(в ней размещается &amp;quot;.&amp;quot;)&lt;br /&gt;
ls -l|grep 'drwx'| awk '{print $9}'&lt;br /&gt;
for i in *; do  [ -d &amp;quot;$i&amp;quot; ] &amp;amp;&amp;amp; echo &amp;quot;$i&amp;quot;;done&lt;br /&gt;
ls -d */ | sed 's|\/||g'&lt;br /&gt;
find * -maxdepth 0 -type d&lt;br /&gt;
&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;spoiler text=&amp;quot;Вариант решения Задачи №2&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/env bash&lt;br /&gt;
_find_dir=$1&lt;br /&gt;
log=&amp;quot;/tmp/dir_list.log&amp;quot;&lt;br /&gt;
log_0=&amp;quot;/tmp/dir_list.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
trap &amp;quot;rm -rf $log $log_0&amp;quot; EXIT&lt;br /&gt;
&lt;br /&gt;
find_dir (){&lt;br /&gt;
        find $_find_dir  -maxdepth 1  -type d -printf '%f\n'|sed '1d' &amp;gt;&amp;gt; $log&lt;br /&gt;
        #find $_find_dir -maxdepth 0 -type d &amp;gt;&amp;gt; $log&lt;br /&gt;
        #ls -l $_find_dir|grep 'drwx'| awk '{print $9}'&amp;gt;&amp;gt; $log&lt;br /&gt;
        #cd $_find_dir;for i in *; do  [ -d &amp;quot;$i&amp;quot; ] &amp;amp;&amp;amp; echo &amp;quot;$i&amp;quot;;done &amp;gt;&amp;gt; $log &lt;br /&gt;
}&lt;br /&gt;
                                                                             &lt;br /&gt;
cp_list (){                                                                  &lt;br /&gt;
        cat $log|tee -a $log_0&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
find_dir&lt;br /&gt;
sleep 5&lt;br /&gt;
cp_list&lt;br /&gt;
exit 0                                                                 &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''''Задача №3'''''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
'''Написать скрипт, который передаёт всю полученную в ходе своей работы информацию в системный журнал''':&lt;br /&gt;
* ''Дату и время'' в формате ''ГГГГ-ММ-ДД_ЧЧ-ММ-СС''.&lt;br /&gt;
* ''Список'' зарегистрировавшихся в системе,на ''текущий момент'', пользователей.&lt;br /&gt;
* ''Время'' работы системы(вывод должен быть представлен ''кириллицей'').&lt;br /&gt;
В консоли продемонстрировать вывод верно работающего скрипта.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;spoiler text=&amp;quot;Вариант решения Задачи №3&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/env bash&lt;br /&gt;
reg_u=$(who |awk {'print $1'})&lt;br /&gt;
xdate=$(date +%Y-%m-%d_%H-%M-%S)&lt;br /&gt;
upt=$(uptime -p |sed -e 's|up||g' -e 's|day.|дня(-ей)|' -e 's|hour.|час(-а,-ов)|' -e 's|minute.|минут(-ы)|')&lt;br /&gt;
upt_w=$(uptime -p |sed -e 's|up||g' -e 's|week.|недель(-я,-и)|' -e 's|day.|дня(-ь,-ей)|' -e 's|hour.|час(-а,-ов)|' -e's|minute.|минут(-ы)|')&lt;br /&gt;
&lt;br /&gt;
log_sys(){&lt;br /&gt;
        logger -i -t &amp;quot;CSys&amp;quot; Дата\/время: $xdate \| Зарегистрированные в системе пользователи: $reg_u \| Время работы системы: $1&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if [ $(uptime|awk {'print $3'}) -gt 7 ]; then log_sys &amp;quot;$upt_w&amp;quot;; else log_sys &amp;quot;$upt&amp;quot;; fi&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=Bash-task&amp;diff=690</id>
		<title>Bash-task</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=Bash-task&amp;diff=690"/>
				<updated>2018-02-20T07:47:48Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: bash_task Обновление решения №3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''''Задача №1'''''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
'''Используя цикл и оператор выбора написать скрипт, реализующий следующее''':&lt;br /&gt;
* Выводит на экран(в терминал) '''меню с выбором''', состоящим из двух пунктов &amp;quot;''1)''&amp;quot; &amp;quot;''2)''&amp;quot;&lt;br /&gt;
* При выборе &amp;quot;''1)''&amp;quot; выводит текст на экран(в терминал), содержащий только цифру '''1'''&lt;br /&gt;
* При выборе &amp;quot;''2)''&amp;quot; выводит текст на экран(в терминал), содержащий только цифру '''2'''&lt;br /&gt;
* При вводе любого другого символа, выводит на экран сообщение о неправильном вводе  и  просит повторить ввод.&lt;br /&gt;
При неправильном вводе цикл бесконечен, т.е. продолжается пока не будет введён нужный символ, а затем снова выводится меню выбора.&lt;br /&gt;
'''Модернизировать'''(№1) скрипт так, чтобы при ''неправильном вводе'' он выводил сообщение о выходе из скрипта через ''три секунды'', после трёх секунд ожидания осуществляется выход из скрипта. '''Модернизировать'''(№2) скрипт добавив в него возможность прекращения работы в меню.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;spoiler text=&amp;quot;Вариант решения Задачи №1&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/env bash&lt;br /&gt;
#trap 'echo -e &amp;quot;\e[31mВот фиг тебе, а не прерывание\e[0m!&amp;quot;' 1 2 3 5 9 15&lt;br /&gt;
PS3='Введите значение: ' &amp;amp;&amp;amp; echo&lt;br /&gt;
                                                                                              &lt;br /&gt;
while :&lt;br /&gt;
do&lt;br /&gt;
         #clear&lt;br /&gt;
         options=(&amp;quot;1&amp;quot; &amp;quot;2&amp;quot;)&lt;br /&gt;
         #options=(&amp;quot;1&amp;quot; &amp;quot;2&amp;quot; &amp;quot;Завершение работы скрипта&amp;quot;) — для модернизации №2&lt;br /&gt;
         select opt in &amp;quot;${options[@]}&amp;quot;; do&lt;br /&gt;
         case &amp;quot;$opt&amp;quot; in&lt;br /&gt;
                 1) echo 'Ввели ' &amp;quot;$opt&amp;quot;&lt;br /&gt;
                    break 1&lt;br /&gt;
                 ;;&lt;br /&gt;
                 2) echo  'Ввели ' &amp;quot;$opt&amp;quot;&lt;br /&gt;
                    break 1&lt;br /&gt;
                 ;;  &lt;br /&gt;
                 # Для модернизации №2:&lt;br /&gt;
                 #'Завершение работы скрипта')&lt;br /&gt;
                 #  echo &amp;quot;Завершили работу скрипта&amp;quot;&lt;br /&gt;
                 #  exit&lt;br /&gt;
                 ;;                                                                         &lt;br /&gt;
                 *) echo 'Ввели неверный символ'&lt;br /&gt;
                    echo 'Повторите ввод'&lt;br /&gt;
                    break 1&lt;br /&gt;
                    #echo &amp;quot;Прекращаем работу скрипта через 3 секунды и осуществляем выход&amp;quot; — для модернизации №1&lt;br /&gt;
                    #sleep 3; exit 0 — для модернизации №1&lt;br /&gt;
                 ;;&lt;br /&gt;
           esac&lt;br /&gt;
           #break&lt;br /&gt;
           done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''''Задача №2'''''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
'''Написать скрипт реализующий следующее''':&lt;br /&gt;
* Создать '''функцию''', которая реализует ''вывод списка директорий'' в файл '''/tmp/dir_list.log'''. При этом в качестве ''входного аргумента'' для функции служит переданный скрипту параметр, представляющий из себя ''абсолютный путь''.&lt;br /&gt;
* Создать '''функцию''', которая будет ''считывать содержимое'' '''/tmp/dir_list.log''' и выводить на экран, а также копировать это содержимое в '''/tmp/dir_list.0'''.&lt;br /&gt;
* Вызов функций происходит с ''задержкой в 5 секунд''.&lt;br /&gt;
* После успешной отработки скрипта и выхода из него файлы '''/tmp/dir_list.log''' и '''/tmp/dir_list.0''' должны быть автоматически удалены. Для этого пункта '''запрещается''' прямой вызов ''`rm -rf`'' или ''$(rm -rf)'' перед завершением скрипта.&lt;br /&gt;
&amp;lt;spoiler text=&amp;quot;Подсказки для задачи №2&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
find .  -maxdepth 1  -type d -printf '%f\n' — выводит все директории&lt;br /&gt;
find .  -maxdepth 1  -type d| sed 's|./*||' | sed '/^$/d' — выводит все директории&lt;br /&gt;
find .  -maxdepth 1  -type d -printf '%f\n'|sed '1d' — выводит все директории, кроме первой(в ней размещается &amp;quot;.&amp;quot;)&lt;br /&gt;
ls -l|grep 'drwx'| awk '{print $9}'&lt;br /&gt;
for i in *; do  [ -d &amp;quot;$i&amp;quot; ] &amp;amp;&amp;amp; echo &amp;quot;$i&amp;quot;;done&lt;br /&gt;
ls -d */ | sed 's|\/||g'&lt;br /&gt;
find * -maxdepth 0 -type d&lt;br /&gt;
&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;spoiler text=&amp;quot;Вариант решения Задачи №2&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/env bash&lt;br /&gt;
_find_dir=$1&lt;br /&gt;
log=&amp;quot;/tmp/dir_list.log&amp;quot;&lt;br /&gt;
log_0=&amp;quot;/tmp/dir_list.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
trap &amp;quot;rm -rf $log $log_0&amp;quot; EXIT&lt;br /&gt;
&lt;br /&gt;
find_dir (){&lt;br /&gt;
        find $_find_dir  -maxdepth 1  -type d -printf '%f\n'|sed '1d' &amp;gt;&amp;gt; $log&lt;br /&gt;
        #find $_find_dir -maxdepth 0 -type d &amp;gt;&amp;gt; $log&lt;br /&gt;
        #ls -l $_find_dir|grep 'drwx'| awk '{print $9}'&amp;gt;&amp;gt; $log&lt;br /&gt;
        #cd $_find_dir;for i in *; do  [ -d &amp;quot;$i&amp;quot; ] &amp;amp;&amp;amp; echo &amp;quot;$i&amp;quot;;done &amp;gt;&amp;gt; $log &lt;br /&gt;
}&lt;br /&gt;
                                                                             &lt;br /&gt;
cp_list (){                                                                  &lt;br /&gt;
        cat $log|tee -a $log_0&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
find_dir&lt;br /&gt;
sleep 5&lt;br /&gt;
cp_list&lt;br /&gt;
exit 0                                                                 &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''''Задача №3'''''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
'''Написать скрипт, который передаёт всю полученную в ходе своей работы информацию в системный журнал''':&lt;br /&gt;
* ''Дату и время'' в формате ''ГГГГ-ММ-ДД_ЧЧ-ММ-СС''.&lt;br /&gt;
* ''Список'' зарегистрировавшихся в системе,на ''текущий момент'', пользователей.&lt;br /&gt;
* ''Время'' работы системы(вывод должен быть представлен ''кириллицей'').&lt;br /&gt;
В консоли продемонстрировать вывод верно работающего скрипта.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;spoiler text=&amp;quot;Вариант решения Задачи №3&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/env bash&lt;br /&gt;
reg_u=$(who |awk {'print $1'})&lt;br /&gt;
xdate=$(date +%Y-%m-%d_%H-%M-%S)&lt;br /&gt;
upt=$(uptime -p |sed -e 's|up||g' -e 's|day.|дня(-ей)|' -e 's|hour.|час(-а,-ов)|' -e 's|minute.|минут(-ы)|')&lt;br /&gt;
upt_w=$(uptime -p |sed -e 's|up||g' -e 's|week.|недель(-я,-и)|' -e 's|day.|дня(-ь,-ей)|' -e 's|hour.|час(-а,-ов)|' -e's|minute.|минут(-ы)|')&lt;br /&gt;
&lt;br /&gt;
log_sys(){&lt;br /&gt;
        logger -i -t &amp;quot;CSys&amp;quot; Дата\/время: $xdate \| Зарегистрированные в системе пользователи: $reg_u \| Время работы системы: $1&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if [ $(uptime|awk {'print $3'}) -gt 7 ]; then log_sys &amp;quot;$upt_w&amp;quot;; else log_sys &amp;quot;$upt&amp;quot;; fi&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=Bash-task&amp;diff=689</id>
		<title>Bash-task</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=Bash-task&amp;diff=689"/>
				<updated>2018-02-20T06:14:20Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: bash_task_Обновление&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''''Задача №1'''''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
'''Используя цикл и оператор выбора написать скрипт, реализующий следующее''':&lt;br /&gt;
* Выводит на экран(в терминал) '''меню с выбором''', состоящим из двух пунктов &amp;quot;''1)''&amp;quot; &amp;quot;''2)''&amp;quot;&lt;br /&gt;
* При выборе &amp;quot;''1)''&amp;quot; выводит текст на экран(в терминал), содержащий только цифру '''1'''&lt;br /&gt;
* При выборе &amp;quot;''2)''&amp;quot; выводит текст на экран(в терминал), содержащий только цифру '''2'''&lt;br /&gt;
* При вводе любого другого символа, выводит на экран сообщение о неправильном вводе  и  просит повторить ввод.&lt;br /&gt;
При неправильном вводе цикл бесконечен, т.е. продолжается пока не будет введён нужный символ, а затем снова выводится меню выбора.&lt;br /&gt;
'''Модернизировать'''(№1) скрипт так, чтобы при ''неправильном вводе'' он выводил сообщение о выходе из скрипта через ''три секунды'', после трёх секунд ожидания осуществляется выход из скрипта. '''Модернизировать'''(№2) скрипт добавив в него возможность прекращения работы в меню.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;spoiler text=&amp;quot;Вариант решения Задачи №1&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/env bash&lt;br /&gt;
#trap 'echo -e &amp;quot;\e[31mВот фиг тебе, а не прерывание\e[0m!&amp;quot;' 1 2 3 5 9 15&lt;br /&gt;
PS3='Введите значение: ' &amp;amp;&amp;amp; echo&lt;br /&gt;
                                                                                              &lt;br /&gt;
while :&lt;br /&gt;
do&lt;br /&gt;
         #clear&lt;br /&gt;
         options=(&amp;quot;1&amp;quot; &amp;quot;2&amp;quot;)&lt;br /&gt;
         #options=(&amp;quot;1&amp;quot; &amp;quot;2&amp;quot; &amp;quot;Завершение работы скрипта&amp;quot;) — для модернизации №2&lt;br /&gt;
         select opt in &amp;quot;${options[@]}&amp;quot;; do&lt;br /&gt;
         case &amp;quot;$opt&amp;quot; in&lt;br /&gt;
                 1) echo 'Ввели ' &amp;quot;$opt&amp;quot;&lt;br /&gt;
                    break 1&lt;br /&gt;
                 ;;&lt;br /&gt;
                 2) echo  'Ввели ' &amp;quot;$opt&amp;quot;&lt;br /&gt;
                    break 1&lt;br /&gt;
                 ;;  &lt;br /&gt;
                 # Для модернизации №2:&lt;br /&gt;
                 #'Завершение работы скрипта')&lt;br /&gt;
                 #  echo &amp;quot;Завершили работу скрипта&amp;quot;&lt;br /&gt;
                 #  exit&lt;br /&gt;
                 ;;                                                                         &lt;br /&gt;
                 *) echo 'Ввели неверный символ'&lt;br /&gt;
                    echo 'Повторите ввод'&lt;br /&gt;
                    break 1&lt;br /&gt;
                    #echo &amp;quot;Прекращаем работу скрипта через 3 секунды и осуществляем выход&amp;quot; — для модернизации №1&lt;br /&gt;
                    #sleep 3; exit 0 — для модернизации №1&lt;br /&gt;
                 ;;&lt;br /&gt;
           esac&lt;br /&gt;
           #break&lt;br /&gt;
           done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''''Задача №2'''''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
'''Написать скрипт реализующий следующее''':&lt;br /&gt;
* Создать '''функцию''', которая реализует ''вывод списка директорий'' в файл '''/tmp/dir_list.log'''. При этом в качестве ''входного аргумента'' для функции служит переданный скрипту параметр, представляющий из себя ''абсолютный путь''.&lt;br /&gt;
* Создать '''функцию''', которая будет ''считывать содержимое'' '''/tmp/dir_list.log''' и выводить на экран, а также копировать это содержимое в '''/tmp/dir_list.0'''.&lt;br /&gt;
* Вызов функций происходит с ''задержкой в 5 секунд''.&lt;br /&gt;
* После успешной отработки скрипта и выхода из него файлы '''/tmp/dir_list.log''' и '''/tmp/dir_list.0''' должны быть автоматически удалены. Для этого пункта '''запрещается''' прямой вызов ''`rm -rf`'' или ''$(rm -rf)'' перед завершением скрипта.&lt;br /&gt;
&amp;lt;spoiler text=&amp;quot;Подсказки для задачи №2&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
find .  -maxdepth 1  -type d -printf '%f\n' — выводит все директории&lt;br /&gt;
find .  -maxdepth 1  -type d| sed 's|./*||' | sed '/^$/d' — выводит все директории&lt;br /&gt;
find .  -maxdepth 1  -type d -printf '%f\n'|sed '1d' — выводит все директории, кроме первой(в ней размещается &amp;quot;.&amp;quot;)&lt;br /&gt;
ls -l|grep 'drwx'| awk '{print $9}'&lt;br /&gt;
for i in *; do  [ -d &amp;quot;$i&amp;quot; ] &amp;amp;&amp;amp; echo &amp;quot;$i&amp;quot;;done&lt;br /&gt;
ls -d */ | sed 's|\/||g'&lt;br /&gt;
find * -maxdepth 0 -type d&lt;br /&gt;
&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;spoiler text=&amp;quot;Вариант решения Задачи №2&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/env bash&lt;br /&gt;
_find_dir=$1&lt;br /&gt;
log=&amp;quot;/tmp/dir_list.log&amp;quot;&lt;br /&gt;
log_0=&amp;quot;/tmp/dir_list.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
trap &amp;quot;rm -rf $log $log_0&amp;quot; EXIT&lt;br /&gt;
&lt;br /&gt;
find_dir (){&lt;br /&gt;
        find $_find_dir  -maxdepth 1  -type d -printf '%f\n'|sed '1d' &amp;gt;&amp;gt; $log&lt;br /&gt;
        #find $_find_dir -maxdepth 0 -type d &amp;gt;&amp;gt; $log&lt;br /&gt;
        #ls -l $_find_dir|grep 'drwx'| awk '{print $9}'&amp;gt;&amp;gt; $log&lt;br /&gt;
        #cd $_find_dir;for i in *; do  [ -d &amp;quot;$i&amp;quot; ] &amp;amp;&amp;amp; echo &amp;quot;$i&amp;quot;;done &amp;gt;&amp;gt; $log &lt;br /&gt;
}&lt;br /&gt;
                                                                             &lt;br /&gt;
cp_list (){                                                                  &lt;br /&gt;
        cat $log|tee -a $log_0&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
find_dir&lt;br /&gt;
sleep 5&lt;br /&gt;
cp_list&lt;br /&gt;
exit 0                                                                 &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''''Задача №3'''''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
'''Написать скрипт, который передаёт всю полученную в ходе своей работы информацию в системный журнал''':&lt;br /&gt;
* ''Дату и время'' в формате ''ГГГГ-ММ-ДД_ЧЧ-ММ-СС''.&lt;br /&gt;
* ''Список'' зарегистрировавшихся в системе,на ''текущий момент'', пользователей.&lt;br /&gt;
* ''Время'' работы системы(вывод должен быть представлен ''кириллицей'').&lt;br /&gt;
В консоли продемонстрировать вывод верно работающего скрипта.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;spoiler text=&amp;quot;Вариант решения Задачи №3&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/env bash&lt;br /&gt;
&lt;br /&gt;
reg_u=$(who |awk {'print $1'})&lt;br /&gt;
xdate=$(date +%Y-%m-%d_%H-%M-%S)&lt;br /&gt;
upt=$(uptime -p |sed -e 's|up||g' -e 's|day.|дня(-ей)|' -e 's|hour.|час(-а,-ов)|' -e 's|minute.|минут(-ы)|')&lt;br /&gt;
upt_w=$(uptime -p |sed -e 's|up||g' -e 's|week.|недель(-я,-и)|' -e 's|day.|дня(-ь,-ей)|' \&lt;br /&gt;
		       -e 's|hour.|час(-а,-ов)|' -e's|minute.|минут(-ы)|')&lt;br /&gt;
log_sys(){&lt;br /&gt;
        logger -i -t &amp;quot;Check Sys Params&amp;quot; Дата и время: $xdate \| Зарегистрированные в системе пользователи: $reg_u \&lt;br /&gt;
		\| Время работы системы: $1&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if [ $(uptime|awk {'print $3'}) -gt 7 ]; then log_sys $upt_w; else log_sys $upt_w; fi&lt;br /&gt;
&lt;br /&gt;
log_sys&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=Bash-task&amp;diff=688</id>
		<title>Bash-task</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=Bash-task&amp;diff=688"/>
				<updated>2018-02-20T05:28:37Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: bash_task_Обновление форматирования&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''''Задача №1'''''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
'''Используя цикл и оператор выбора написать скрипт, реализующий следующее''':&lt;br /&gt;
* Выводит на экран(в терминал) '''меню с выбором''', состоящим из двух пунктов &amp;quot;''1)''&amp;quot; &amp;quot;''2)''&amp;quot;&lt;br /&gt;
* При выборе &amp;quot;''1)''&amp;quot; выводит текст на экран(в терминал), содержащий только цифру '''1'''&lt;br /&gt;
* При выборе &amp;quot;''2)''&amp;quot; выводит текст на экран(в терминал), содержащий только цифру '''2'''&lt;br /&gt;
* При вводе любого другого символа, выводит на экран сообщение о неправильном вводе  и  просит повторить ввод.&lt;br /&gt;
При неправильном вводе цикл бесконечен, т.е. продолжается пока не будет введён нужный символ, а затем снова выводится меню выбора.&lt;br /&gt;
'''Модернизировать''' скрипт так, чтобы при ''неправильном вводе'' он выводил сообщение о выходе из скрипта через ''три секунды'', после трёх секунд ожидания осуществляется выход из скрипта.                                                                                  &lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;spoiler text=&amp;quot;Вариант решения Задачи №1&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/env bash&lt;br /&gt;
#trap 'echo -e &amp;quot;\e[31mВот фиг тебе, а не прерывание\e[0m!&amp;quot;' 1 2 3 5 9 15&lt;br /&gt;
PS3='Введите значение: ' &amp;amp;&amp;amp; echo&lt;br /&gt;
                                                                                              &lt;br /&gt;
while :&lt;br /&gt;
do&lt;br /&gt;
         #clear&lt;br /&gt;
         options=(&amp;quot;1&amp;quot; &amp;quot;2&amp;quot;)&lt;br /&gt;
         select opt in &amp;quot;${options[@]}&amp;quot;; do&lt;br /&gt;
         case &amp;quot;$opt&amp;quot; in&lt;br /&gt;
                 1) echo 'Ввели ' &amp;quot;$opt&amp;quot;&lt;br /&gt;
                    break 1&lt;br /&gt;
                 ;;&lt;br /&gt;
                 2) echo  'Ввели ' &amp;quot;$opt&amp;quot;&lt;br /&gt;
                    break 1&lt;br /&gt;
                 ;;                                                                           &lt;br /&gt;
                 *) echo 'Ввели неверный символ'&lt;br /&gt;
                    echo 'Повторите ввод'&lt;br /&gt;
                    break 1&lt;br /&gt;
                    #echo &amp;quot;Прекращаем работу скрипта через 3 секунды и осуществляем выход&amp;quot;&lt;br /&gt;
                    #sleep 3; exit 0&lt;br /&gt;
                 ;;&lt;br /&gt;
           esac&lt;br /&gt;
           #break&lt;br /&gt;
           done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''''Задача №2'''''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
'''Написать скрипт реализующий следующее''':&lt;br /&gt;
* Создать '''функцию''', которая реализует ''вывод списка директорий'' в файл '''/tmp/dir_list.log'''. При этом в качестве ''входного аргумента'' для функции служит переданный скрипту параметр, представляющий из себя ''абсолютный путь''.&lt;br /&gt;
* Создать '''функцию''', которая будет ''считывать содержимое'' '''/tmp/dir_list.log''' и выводить на экран, а также копировать это содержимое в '''/tmp/dir_list.0'''.&lt;br /&gt;
* Вызов функций происходит с ''задержкой в 5 секунд''.&lt;br /&gt;
* После успешной отработки скрипта и выхода из него файлы '''/tmp/dir_list.log''' и '''/tmp/dir_list.0''' должны быть автоматически удалены. Для этого пункта '''запрещается''' прямой вызов ''`rm -rf`'' или ''$(rm -rf)'' перед завершением скрипта.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;spoiler text=&amp;quot;Вариант решения Задачи №2&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/env bash&lt;br /&gt;
_find_dir=$1&lt;br /&gt;
log=&amp;quot;/tmp/dir_list.log&amp;quot;&lt;br /&gt;
log_0=&amp;quot;/tmp/dir_list.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
trap &amp;quot;rm -rf $log $log_0&amp;quot; EXIT&lt;br /&gt;
&lt;br /&gt;
find_dir (){&lt;br /&gt;
        find $_find_dir  -maxdepth 1  -type d -printf '%f\n'|sed '1d' &amp;gt;&amp;gt; $log&lt;br /&gt;
        #find $_find_dir -maxdepth 0 -type d &amp;gt;&amp;gt; $log&lt;br /&gt;
        #ls -l $_find_dir|grep 'drwx'| awk '{print $9}'&amp;gt;&amp;gt; $log&lt;br /&gt;
        #cd $_find_dir;for i in *; do  [ -d &amp;quot;$i&amp;quot; ] &amp;amp;&amp;amp; echo &amp;quot;$i&amp;quot;;done &amp;gt;&amp;gt; $log &lt;br /&gt;
}&lt;br /&gt;
                                                                             &lt;br /&gt;
cp_list (){                                                                  &lt;br /&gt;
        cat $log|tee -a $log_0&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
find_dir&lt;br /&gt;
sleep 5&lt;br /&gt;
cp_list&lt;br /&gt;
exit 0                                                                 &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=Bash-task&amp;diff=687</id>
		<title>Bash-task</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=Bash-task&amp;diff=687"/>
				<updated>2018-02-19T18:03:31Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: Добавлена задача №2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''''Задача №1'''''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
Используя цикл и оператор выбора написать скрипт, реализующий следующее:                                                           &lt;br /&gt;
* Выводит на экран меню с выбором, состоящим из двух пунктов &amp;quot;1)&amp;quot; &amp;quot;2)&amp;quot;                                                           &lt;br /&gt;
* При выборе &amp;quot;1)&amp;quot; выводит надпись на экран о выводе 1                                                                            &lt;br /&gt;
* При выборе &amp;quot;2)&amp;quot; выводит надпись на экран о выводе 2                                                                            &lt;br /&gt;
* При вводе любого другого символа, выводит сообщение о неправильном вводе на экран и  просит повторить ввод.                    &lt;br /&gt;
При неправильном вводе цикл бесконечен, т.е. продолжается пока не будет введён нужный символ, а затем снова выводится меню выбора.&lt;br /&gt;
Модернизировать скрипт так, чтобы при неправильном вводе он выводил сообщение о выходе из скрипта через три секунды,              &lt;br /&gt;
после ожидание в три секунды и выход из скрипта.                                                                                  &lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;spoiler text=&amp;quot;Вариант решения Задачи №1&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/env bash&lt;br /&gt;
#trap 'echo -e &amp;quot;\e[31mХер тебе, а не прерывание\e[0m!&amp;quot;' 1 2 3 5 9 15&lt;br /&gt;
PS3='Введите значение: ' &amp;amp;&amp;amp; echo&lt;br /&gt;
                                                                                              &lt;br /&gt;
while :&lt;br /&gt;
do&lt;br /&gt;
         #clear&lt;br /&gt;
         options=(&amp;quot;1&amp;quot; &amp;quot;2&amp;quot;)&lt;br /&gt;
         select opt in &amp;quot;${options[@]}&amp;quot;; do&lt;br /&gt;
         case &amp;quot;$opt&amp;quot; in&lt;br /&gt;
                 1) echo 'Ввели ' &amp;quot;$opt&amp;quot;&lt;br /&gt;
                    break 1&lt;br /&gt;
                 ;;&lt;br /&gt;
                 2) echo  'Ввели ' &amp;quot;$opt&amp;quot;&lt;br /&gt;
                    break 1&lt;br /&gt;
                 ;;                                                                           &lt;br /&gt;
                 *) echo 'Ввели неверный символ'&lt;br /&gt;
                    echo 'Повторите ввод'&lt;br /&gt;
                    break 1&lt;br /&gt;
                    #echo &amp;quot;Прекращаем работу скрипта через 3 секунды и осуществляем выход&amp;quot;&lt;br /&gt;
                    #sleep 3; exit 0&lt;br /&gt;
                 ;;&lt;br /&gt;
           esac&lt;br /&gt;
           #break&lt;br /&gt;
           done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''''Задача №2'''''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
Написать скрипт реализующий следующее:                                                                                           &lt;br /&gt;
* Создать функцию, которая реализует вывод списка директорий в файл /tmp/dir_list.log. При этом в качестве входного аргумента для функции служит переданный самому скрипту параметр, представляющий из себя абсолютный путь.                                                                                     &lt;br /&gt;
* Создать функцию, которая будет считывать содержимое /tmp/dir_list.log и выводить на экран, а также копировать это содержимое в /tmp/dir_list.0.                                                                           &lt;br /&gt;
* Вызов функций происходит с задержкой в 5 секунд                                                                               &lt;br /&gt;
* После успешной отработки скрипта и выхода из него файлы /tmp/dir_list.log и /tmp/dir_list.0 должны быть автоматически удалены. Для этого пункта запрещается прямой вызов `rm -rf` перед завершением скрипта.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;spoiler text=&amp;quot;Вариант решения Задачи №2&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/env bash&lt;br /&gt;
_find_dir=$1&lt;br /&gt;
log=&amp;quot;/tmp/dir_list.log&amp;quot;&lt;br /&gt;
log_0=&amp;quot;/tmp/dir_list.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
trap &amp;quot;rm -rf $log $log_0&amp;quot; EXIT&lt;br /&gt;
&lt;br /&gt;
find_dir (){&lt;br /&gt;
        find $_find_dir  -maxdepth 1  -type d -printf '%f\n'|sed '1d' &amp;gt;&amp;gt; $log&lt;br /&gt;
        #find $_find_dir -maxdepth 0 -type d &amp;gt;&amp;gt; $log&lt;br /&gt;
        #ls -l $_find_dir|grep 'drwx'| awk '{print $9}'&amp;gt;&amp;gt; $log&lt;br /&gt;
        #cd $_find_dir;for i in *; do  [ -d &amp;quot;$i&amp;quot; ] &amp;amp;&amp;amp; echo &amp;quot;$i&amp;quot;;done &amp;gt;&amp;gt; $log &lt;br /&gt;
}&lt;br /&gt;
                                                                             &lt;br /&gt;
cp_list (){                                                                  &lt;br /&gt;
        cat $log|tee -a $log_0&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
find_dir&lt;br /&gt;
sleep 5&lt;br /&gt;
cp_list&lt;br /&gt;
exit 0                                                                 &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=Bash-task&amp;diff=686</id>
		<title>Bash-task</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=Bash-task&amp;diff=686"/>
				<updated>2018-02-19T17:45:34Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: bash-task_первое_задание&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Используя цикл и оператор выбора написать скрипт, реализующий следующее:                                                           &lt;br /&gt;
* Выводит на экран меню с выбором, состоящим из двух пунктов &amp;quot;1)&amp;quot; &amp;quot;2)&amp;quot;                                                           &lt;br /&gt;
* При выборе &amp;quot;1)&amp;quot; выводит надпись на экран о выводе 1                                                                            &lt;br /&gt;
* При выборе &amp;quot;2)&amp;quot; выводит надпись на экран о выводе 2                                                                            &lt;br /&gt;
* При вводе любого другого символа, выводит сообщение о неправильном вводе на экран и  просит повторить ввод.                    &lt;br /&gt;
При неправильном вводе цикл бесконечен, т.е. продолжается пока не будет введён нужный символ, а затем снова выводится меню выбора.&lt;br /&gt;
Модернизировать скрипт так, чтобы при неправильном вводе он выводил сообщение о выходе из скрипта через три секунды,              &lt;br /&gt;
после ожидание в три секунды и выход из скрипта.                                                                                  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;spoiler text=&amp;quot;Вариант решения Задачи №1&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/env bash                                                             &lt;br /&gt;
 #trap 'echo -e &amp;quot;\e[31mХер тебе, а не прерывание\e[0m!&amp;quot;' 1 2 3 5 9 15                         &lt;br /&gt;
 PS3='Введите значение: ' &amp;amp;&amp;amp; echo                                                             &lt;br /&gt;
                                                                                              &lt;br /&gt;
 while :                                                                                      &lt;br /&gt;
 do                                                                                           &lt;br /&gt;
         #clear                                                                               &lt;br /&gt;
         options=(&amp;quot;1&amp;quot; &amp;quot;2&amp;quot;)                                                                    &lt;br /&gt;
         select opt in &amp;quot;${options[@]}&amp;quot;; do                                                    &lt;br /&gt;
         case &amp;quot;$opt&amp;quot; in                                                                       &lt;br /&gt;
                 1) echo 'Ввели ' &amp;quot;$opt&amp;quot;                                                      &lt;br /&gt;
                    break 1                                                                   &lt;br /&gt;
                 ;;                                                                           &lt;br /&gt;
                 2) echo  'Ввели ' &amp;quot;$opt&amp;quot;                                                     &lt;br /&gt;
                    break 1                                                                   &lt;br /&gt;
                 ;;                                                                           &lt;br /&gt;
                 *) echo 'Ввели неверный символ'                                              &lt;br /&gt;
                    echo 'Повторите ввод'                                                     &lt;br /&gt;
                    break 1                                                                   &lt;br /&gt;
                    #echo &amp;quot;Прекращаем работу скрипта через 3 секунды и осуществляем выход&amp;quot;    &lt;br /&gt;
                    #sleep 3; exit 0                                                          &lt;br /&gt;
                 ;;                                                                           &lt;br /&gt;
           esac                                                                               &lt;br /&gt;
           #break                                                                             &lt;br /&gt;
           done                                                                               &lt;br /&gt;
 done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/spoiler&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=685</id>
		<title>Заглавная страница</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=685"/>
				<updated>2018-02-19T16:20:52Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:God_yes.JPG|center]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;center&amp;gt;'''&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Личная WIKI&amp;lt;/span&amp;gt;''' ''тов. Верещаги Артёма'' '''''&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;'''''&amp;lt;/center&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;center&amp;gt;'''''&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Используется для заметок и всякого такого...&amp;lt;/span&amp;gt;'''''&amp;lt;/center&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Для корректного использования данной '''&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;WIKI&amp;lt;/span&amp;gt;''' &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;крайне рекомендуется использовать браузер&amp;lt;/span&amp;gt; на основе свободного браузера [https://chromium.woolyss.com/download/ '''''Chromium&amp;amp;copy;'''''] — [https://www.google.ru/chrome/browser/desktop/index.html Google Chrome&amp;amp;copy;], [https://browser.yandex.ru/ Яндекс.Браузер&amp;amp;copy;] и т.д.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''''Все права на представленные материалы принадлежат их авторам, размещены исключительно для ознакомления'''''&amp;lt;/span&amp;gt;.&lt;br /&gt;
== Оглавление ==&lt;br /&gt;
&lt;br /&gt;
* Основы Linux/Unix систем:&lt;br /&gt;
** [[Работа в терминале Unix/Linux]]&lt;br /&gt;
** [[Основные команды и утилиты Unix/Linux]]&lt;br /&gt;
**[[faq|Полезные советы при работе в терминале]]&lt;br /&gt;
**[[Vim|Vim — Текстовый редактор]]&lt;br /&gt;
**[[sed|SEd — Неинтерактивный потоковый редактор]]&lt;br /&gt;
&lt;br /&gt;
*Справочная информация:&lt;br /&gt;
**[[Subnetting|Подсети и префиксы IPv4]]&lt;br /&gt;
**[[ACL|ACL — списки контроля доступа]]&lt;br /&gt;
**[[Advanced Bash-Scripting Guide|Искусство программирования на языке сценариев командной оболочки(BASH)]]&lt;br /&gt;
**[[bash-task|Простые bash-задачки]]&lt;br /&gt;
&amp;lt;!--**[[Links|Ссылки на полезные ресурсы и статьи]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Установка/настройка системного ПО: &lt;br /&gt;
** [[Установка ОС CentOS 7.x]]&lt;br /&gt;
*** [[Создание репозитория CentOS/RHEL]]&lt;br /&gt;
*** [[yum|Работа с менеджером пакетов YUM]]&lt;br /&gt;
*** [[diskadd|Обновление дисков Linux ВМ без перезагрузки в инфраструктуре VMware]]&lt;br /&gt;
** [[Установка ОС RHEL 6.x]]&lt;br /&gt;
** [[Установка БД PostgreSQL]] 9.4.x&lt;br /&gt;
** [[Установка СУБД Oracle 11g]] (11.2.0.3/11.2.0.4)&lt;br /&gt;
*** [[Настройка ОС для серверов СУБД Oracle]]&lt;br /&gt;
** [[Max Open Files|Настройка дескрипторов для ОС]]&lt;br /&gt;
** [[proFTPD_vsFTPD|Настройка ftp-сервера proftpd/vsftp ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Установка/настройка прикладного ПО:&lt;br /&gt;
** [[Установка Java/Jruby]]&lt;br /&gt;
** [[Установка ZooKeeper на ОС RHEL/CentOS]]&lt;br /&gt;
&amp;lt;!-- Это комментарий&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Информацию по работе с этой вики можно найти в [//meta.wikimedia.org/wiki/Help:Contents/ru справочном руководстве].&lt;br /&gt;
&lt;br /&gt;
== Некоторые полезные ресурсы ==&lt;br /&gt;
* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Список возможных настроек];&lt;br /&gt;
* [//www.mediawiki.org/wiki/Manual:FAQ/ru Часто задаваемые вопросы и ответы по MediaWiki];&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Рассылка уведомлений о выходе новых версий MediaWiki].&lt;br /&gt;
* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Перевод MediaWiki на свой язык]&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=684</id>
		<title>Заглавная страница</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=684"/>
				<updated>2018-02-16T19:30:21Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:God_yes.JPG|center]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;center&amp;gt;'''&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Личная WIKI&amp;lt;/span&amp;gt;''' ''тов. Верещаги Артёма'' '''''&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;'''''&amp;lt;/center&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;center&amp;gt;'''''&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Используется для заметок и всякого такого...&amp;lt;/span&amp;gt;'''''&amp;lt;/center&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Для корректного использования данной '''&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;WIKI&amp;lt;/span&amp;gt;''' &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;крайне рекомендуется использовать браузер&amp;lt;/span&amp;gt; на основе свободного браузера [https://chromium.woolyss.com/download/ '''''Chromium&amp;amp;copy;'''''] — [https://www.google.ru/chrome/browser/desktop/index.html Google Chrome&amp;amp;copy;], [https://browser.yandex.ru/ Яндекс.Браузер&amp;amp;copy;] и т.д.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''''Все права на представленные материалы принадлежат их авторам, размещены исключительно для ознакомления'''''&amp;lt;/span&amp;gt;.&lt;br /&gt;
== Оглавление ==&lt;br /&gt;
&lt;br /&gt;
* Основы Linux/Unix систем:&lt;br /&gt;
** [[Работа в терминале Unix/Linux]]&lt;br /&gt;
** [[Основные команды и утилиты Unix/Linux]]&lt;br /&gt;
**[[faq|Полезные советы при работе в терминале]]&lt;br /&gt;
**[[Vim|Vim — Текстовый редактор]]&lt;br /&gt;
**[[sed|SEd — Неинтерактивный потоковый редактор]]&lt;br /&gt;
&lt;br /&gt;
*Справочная информация:&lt;br /&gt;
**[[Subnetting|Подсети и префиксы IPv4]]&lt;br /&gt;
**[[ACL|ACL — списки контроля доступа]]&lt;br /&gt;
**[[Advanced Bash-Scripting Guide|Искусство программирования на языке сценариев командной оболочки(BASH)]]&lt;br /&gt;
&amp;lt;!--**[[Links|Ссылки на полезные ресурсы и статьи]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Установка/настройка системного ПО: &lt;br /&gt;
** [[Установка ОС CentOS 7.x]]&lt;br /&gt;
*** [[Создание репозитория CentOS/RHEL]]&lt;br /&gt;
*** [[yum|Работа с менеджером пакетов YUM]]&lt;br /&gt;
*** [[diskadd|Обновление дисков Linux ВМ без перезагрузки в инфраструктуре VMware]]&lt;br /&gt;
** [[Установка ОС RHEL 6.x]]&lt;br /&gt;
** [[Установка БД PostgreSQL]] 9.4.x&lt;br /&gt;
** [[Установка СУБД Oracle 11g]] (11.2.0.3/11.2.0.4)&lt;br /&gt;
*** [[Настройка ОС для серверов СУБД Oracle]]&lt;br /&gt;
** [[Max Open Files|Настройка дескрипторов для ОС]]&lt;br /&gt;
** [[proFTPD_vsFTPD|Настройка ftp-сервера proftpd/vsftp ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Установка/настройка прикладного ПО:&lt;br /&gt;
** [[Установка Java/Jruby]]&lt;br /&gt;
** [[Установка ZooKeeper на ОС RHEL/CentOS]]&lt;br /&gt;
&amp;lt;!-- Это комментарий&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Информацию по работе с этой вики можно найти в [//meta.wikimedia.org/wiki/Help:Contents/ru справочном руководстве].&lt;br /&gt;
&lt;br /&gt;
== Некоторые полезные ресурсы ==&lt;br /&gt;
* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Список возможных настроек];&lt;br /&gt;
* [//www.mediawiki.org/wiki/Manual:FAQ/ru Часто задаваемые вопросы и ответы по MediaWiki];&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Рассылка уведомлений о выходе новых версий MediaWiki].&lt;br /&gt;
* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Перевод MediaWiki на свой язык]&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_ZooKeeper_%D0%BD%D0%B0_%D0%9E%D0%A1_RHEL/CentOS&amp;diff=683</id>
		<title>Установка ZooKeeper на ОС RHEL/CentOS</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_ZooKeeper_%D0%BD%D0%B0_%D0%9E%D0%A1_RHEL/CentOS&amp;diff=683"/>
				<updated>2018-02-16T19:29:22Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Введение ==&lt;br /&gt;
На данной странице приводится инструкция по установке прикладного ПО ''Zookeeper'' на ОС RHEL и CentOS веток 5.x-6.x, 7.x.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''ZooKeeper''''' — распределённый сервис конфигурирования и синхронизации, не знаю как вам, но мне данное определение мало что раскрывает. Оглядываясь на свой опыт, могу дать альтернативное определение '''''ZooKeeper''''', это распределенное ''&amp;lt;u&amp;gt;key&amp;lt;/u&amp;gt;''/''&amp;lt;u&amp;gt;value&amp;lt;/u&amp;gt;''(''&amp;lt;u&amp;gt;ключ&amp;lt;/u&amp;gt;''/''&amp;lt;u&amp;gt;значение&amp;lt;/u&amp;gt;'') хранилище со следующими свойствами:&lt;br /&gt;
* ''пространство ключей образует &amp;lt;u&amp;gt;дерево&amp;lt;/u&amp;gt; (иерархию подобную файловой системе)'';&lt;br /&gt;
* ''значения могут содержаться в любом &amp;lt;u&amp;gt;узле&amp;lt;/u&amp;gt; иерархии, а не только в &amp;lt;u&amp;gt;листьях&amp;lt;/u&amp;gt; (как если бы файлы одновременно были бы и каталогами), &amp;lt;u&amp;gt;узел&amp;lt;u/&amp;gt; иерархии называется &amp;lt;u&amp;gt;znode&amp;lt;/u&amp;gt;'';&lt;br /&gt;
* ''между клиентом и сервером двунаправленная связь, следовательно, клиент может подписываться как изменение конкретного значения или части иерархии'';&lt;br /&gt;
* ''возможно создать временную пару &amp;lt;u&amp;gt;ключ&amp;lt;/u&amp;gt;/&amp;lt;u&amp;gt;значение&amp;lt;/u&amp;gt;, которая существует, пока клиент, её создавший, подключен к кластеру'';&lt;br /&gt;
* ''все данные должны помещаться в память'';&lt;br /&gt;
* ''устойчивость к смерти некритического кол-ва узлов кластера(наличие &amp;lt;u&amp;gt;кворума&amp;lt;/u&amp;gt;)''.&lt;br /&gt;
&lt;br /&gt;
== Установка ПО Zookeeper на RHEL/CentOS 6.x ==&lt;br /&gt;
Для инсталляции будет использоваться [http://apache-mirror.rbc.ru/pub/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz zookeeper версии 3.4.6]. &lt;br /&gt;
В файл ''~/.bash_profile'', пользователя из-под которого планируется запуск сервисов, должны быть внесены переменные окружения ''JAVA''/''JRUBY'':&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# .bash_profile&lt;br /&gt;
&lt;br /&gt;
# Get the aliases and functions&lt;br /&gt;
if [ -f ~/.bashrc ]; then&lt;br /&gt;
        . ~/.bashrc&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# User specific environment and startup programs&lt;br /&gt;
&lt;br /&gt;
PATH=/opt/java/bin:$PATH:$HOME/bin:/opt/jruby/bin&lt;br /&gt;
JRUBY_HOME=/opt/jruby&lt;br /&gt;
PATH=$PATH:$HOME/bin&lt;br /&gt;
&lt;br /&gt;
export PATH&lt;br /&gt;
export JRUBY_HOME&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В данном примере настройка ПО ''ZooKeeper'' выполняется под суперпользователем &amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;root&amp;lt;/span&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
В данной главе рассматривается вариант установки ПО ''ZooKeeper'' на 6 хостах(&amp;lt;u&amp;gt;'''официальная документация рекомендует использовать нечётное кол-во хостов — 3, 5, 7 и т.д.'''&amp;lt;/u&amp;gt;). При этом, в данном случае, для работы ПО ''ZooKeeper'' необходимо обеспечить &amp;lt;u&amp;gt;постоянную&amp;lt;/u&amp;gt; работу любых четырёх узлов ПО ''ZooKeeper'' из шести. &amp;lt;br /&amp;gt;&lt;br /&gt;
Для установки ПО ''ZooKeeper'' на серверах,  необходимо выполнить следующие команды на сервере:&amp;lt;br /&amp;gt;&lt;br /&gt;
::::&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;1)&amp;lt;/span&amp;gt;'''# wget &amp;lt;nowiki&amp;gt;http://apache-mirror.rbc.ru/pub/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz&amp;lt;/nowiki&amp;gt; -O /opt/zookeeper.tar.gz'''&amp;lt;br /&amp;gt;&lt;br /&gt;
::::::::::::::::::::::или&lt;br /&gt;
::::&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# wget &amp;lt;nowiki&amp;gt;http://apache-mirror.rbc.ru/pub/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz&amp;lt;/nowiki&amp;gt; -O /opt/zookeeper.tar.gz'''&lt;br /&gt;
::::&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;2)&amp;lt;/span&amp;gt;'''# cd /opt; tar zxvf zookeeper.tar.gz &amp;amp;&amp;amp; mv zookeeper-3.4.6 zookeeper; chmod +x -R zookeeper/ &amp;amp;&amp;amp; mkdir -p /opt/zookeeper/{data,log}'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# sed -i &amp;quot;s|#!/usr/bin/env bash|#!/usr/bin/env bash \n . ~/.bash_profile|&amp;quot; /opt/zookeeper/bin/zkEnv.sh'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# sed -i &amp;quot;s|ZOO_LOG_DIR=\x22\x2E\x22|ZOO_LOG_DIR=\x22/opt/zookeeper/log\x22|&amp;quot; /opt/zookeeper/bin/zkEnv.sh'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# sed -i &amp;quot;s|ZOO_LOG4J_PROP=\x22INFO,CONSOLE\x22|ZOO_LOG4J_PROP=\x22INFO,ROLLINGFILE\x22|&amp;quot; /opt/zookeeper/bin/zkEnv.sh'''&lt;br /&gt;
::::&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;3)&amp;lt;/span&amp;gt;'''# cat &amp;gt;&amp;gt;/opt/zookeeper/conf/zoo.cfg&amp;lt;&amp;lt;EOF'''&lt;br /&gt;
::::'''# Конфигурационный файл ZooKeeper'''&lt;br /&gt;
::::'''# Порт для подключения клиентов'''&lt;br /&gt;
::::'''clientPort=3000'''&lt;br /&gt;
::::'''# Путь к директории с данными ZooKeeper'''&lt;br /&gt;
::::'''dataDir=/opt/zookeeper/data'''&lt;br /&gt;
::::'''# Длина такта (в миллисекундах)'''&lt;br /&gt;
::::'''tickTime=2000'''&lt;br /&gt;
::::'''# Количество тактов для подключения к лидеру и синхронизации с ним'''&lt;br /&gt;
::::'''initLimit=10'''&lt;br /&gt;
::::'''# Количество тактов для синхронизации с лидером'''&lt;br /&gt;
::::'''syncLimit=5'''&lt;br /&gt;
::::'''# Периодичность удаления старых данных ZooKeeper (в часах). 0 - не удалять.'''&lt;br /&gt;
::::'''autopurge.purgeInterval=1'''&lt;br /&gt;
::::'''# Количество файлов, оставляемое при удалении старых данных'''&lt;br /&gt;
::::'''autopurge.snapRetainCount=3'''&lt;br /&gt;
::::'''# Адреса всех серверов кластера ZooKeeper'''&lt;br /&gt;
::::'''# Формат: server.number=host:leader_port:election_port[:observer]'''&lt;br /&gt;
::::'''server.1=&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_1&amp;lt;/span&amp;gt;:3001:3002'''&lt;br /&gt;
::::'''server.2=&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_2&amp;lt;/span&amp;gt;:3001:3002'''&lt;br /&gt;
::::'''server.3=&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_3&amp;lt;/span&amp;gt;:3001:3002'''&lt;br /&gt;
::::'''server.4=&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_4&amp;lt;/span&amp;gt;:3001:3002'''&lt;br /&gt;
::::'''server.5=&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_5&amp;lt;/span&amp;gt;:3001:3002'''&lt;br /&gt;
::::'''server.6=&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_6&amp;lt;/span&amp;gt;:3001:3002'''&lt;br /&gt;
::::'''EOF'''&lt;br /&gt;
::::&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;4)&amp;lt;/span&amp;gt;'''# chown user_dev:user_dev -R /opt/zookeeper/ &amp;amp;&amp;amp; scp -Cqr  /opt/zookeeper/ root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_2&amp;lt;/span&amp;gt;:/opt/;'''&amp;lt;br /&amp;gt;&amp;amp;ensp;&amp;amp;nbsp;'''# scp -Cqr  /opt/zookeeper/ root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_3&amp;lt;/span&amp;gt;:/opt/'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# scp -Cqr  /opt/zookeeper/ root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_4&amp;lt;/span&amp;gt;:/opt/'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# scp -Cqr  /opt/zookeeper/ root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_5&amp;lt;/span&amp;gt;:/opt/'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# scp -Cqr  /opt/zookeeper/ root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_6&amp;lt;/span&amp;gt;:/opt/'''&lt;br /&gt;
::::&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;5)&amp;lt;/span&amp;gt;'''# echo '1' &amp;gt; /opt/zookeeper/data/myid;'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# ssh root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_2&amp;lt;/span&amp;gt; &amp;quot;echo 2 &amp;gt; /opt/zookeeper/data/myid &amp;amp;&amp;amp; chown user_dev. /opt/zookeeper/data/myid;&amp;quot;'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# ssh root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_3&amp;lt;/span&amp;gt; &amp;quot;echo 3 &amp;gt; /opt/zookeeper/data/myid &amp;amp;&amp;amp; chown user_dev. /opt/zookeeper/data/myid;&amp;quot;'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# ssh root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_4&amp;lt;/span&amp;gt; &amp;quot;echo 4 &amp;gt; /opt/zookeeper/data/myid &amp;amp;&amp;amp; chown user_dev. /opt/zookeeper/data/myid;&amp;quot;'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# ssh root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_5&amp;lt;/span&amp;gt; &amp;quot;echo 5 &amp;gt; /opt/zookeeper/data/myid &amp;amp;&amp;amp; chown user_dev. /opt/zookeeper/data/myid;&amp;quot;'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# ssh root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_6&amp;lt;/span&amp;gt; &amp;quot;echo 6 &amp;gt; /opt/zookeeper/data/myid &amp;amp;&amp;amp; chown user_dev. /opt/zookeeper/data/myid;&amp;quot;'''&lt;br /&gt;
::::&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;6)&amp;lt;/span&amp;gt;'''# chmod +x /opt/zookeeper/check_zoo.sh; sleep 0.2; echo '*/1 * * * * /opt/zookeeper/check_zoo.sh' &amp;gt;&amp;gt; /var/spool/cron/root'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# ssh root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_2&amp;lt;/span&amp;gt; &amp;quot;chmod +x /opt/zookeeper/check_zoo.sh; sleep 0.2; echo '*/1 * * * * /opt/zookeeper/check_zoo.sh' &amp;gt;&amp;gt; /var/spool/cron/root&amp;quot;'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# ssh root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_3&amp;lt;/span&amp;gt; &amp;quot;chmod +x /opt/zookeeper/check_zoo.sh; sleep 0.2; echo '*/1 * * * * /opt/zookeeper/check_zoo.sh' &amp;gt;&amp;gt; /var/spool/cron/root&amp;quot;'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# ssh root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_4&amp;lt;/span&amp;gt; &amp;quot;chmod +x /opt/zookeeper/check_zoo.sh; sleep 0.2; echo '*/1 * * * * /opt/zookeeper/check_zoo.sh' &amp;gt;&amp;gt; /var/spool/cron/root&amp;quot;'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# ssh root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_5&amp;lt;/span&amp;gt; &amp;quot;chmod +x /opt/zookeeper/check_zoo.sh; sleep 0.2; echo '*/1 * * * * /opt/zookeeper/check_zoo.sh' &amp;gt;&amp;gt; /var/spool/cron/root&amp;quot;'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# ssh root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_6&amp;lt;/span&amp;gt; &amp;quot;chmod +x /opt/zookeeper/check_zoo.sh; sleep 0.2; echo '*/1 * * * * /opt/zookeeper/check_zoo.sh' &amp;gt;&amp;gt; /var/spool/cron/root&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
== Установка ПО Zookeeper на RHEL/CentOS 7.x ==&lt;br /&gt;
Для инсталляции будет использоваться [http://apache-mirror.rbc.ru/pub/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz zookeeper версии 3.4.10]. &lt;br /&gt;
В файл ~/.bash_profile, пользователя из-под которого планируется запуск сервисов, должны быть внесены переменные окружения JAVA/JRUBY:&lt;br /&gt;
 # .bash_profile&lt;br /&gt;
 # Get the aliases and functions&lt;br /&gt;
 if [ -f ~/.bashrc ]; then&lt;br /&gt;
       . ~/.bashrc&lt;br /&gt;
 fi&amp;lt;br /&amp;gt;&lt;br /&gt;
 # User specific environment and startup programs&lt;br /&gt;
 PATH=/opt/java/bin:$PATH:$HOME/bin:/opt/jruby/bin&lt;br /&gt;
 JRUBY_HOME=/opt/jruby&lt;br /&gt;
 PATH=$PATH:$HOME/bin&amp;lt;br /&amp;gt;&lt;br /&gt;
 export PATH&lt;br /&gt;
 export JRUBY_HOME&lt;br /&gt;
&lt;br /&gt;
Все действия выполняются под пользователем root(&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;сервер 10.160.20.186&amp;lt;/span&amp;gt;, владельцем директорий будет пользователь ''user_dev'', запуск сервиса будет осуществляться из-под пользователя ''user_dev''): &lt;br /&gt;
* '''Переходим в каталог /opt и скачиваем актуальную версию ПО Zookeeper(в нашем случае — 3.4.10) с официального сайта'''&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''# cd /opt &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;http://apache-mirror.rbc.ru/pub/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz&amp;lt;/nowiki&amp;gt;'''&amp;lt;/span&amp;gt;&lt;br /&gt;
* '''Распаковываем скачанный архив, переименовываем директорию, назначаем владельцем пользователя ''user_dev'' '''&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''# tar xzvf zookeeper-3.4.10.tar.gz &amp;amp;&amp;amp; mv zookeeper-3.4.10 zookeeper &amp;amp;&amp;amp; chown user_dev. -R /opt/zookeeper'''&amp;lt;/span&amp;gt;&lt;br /&gt;
* '''Настраиваем инстанс ''zookeeper'' на сервере''': &lt;br /&gt;
 '''a)''' Добавляем в файл zkEnv.sh строку &amp;quot;. ~/.bash_profile&amp;quot; сразу после строки &amp;quot;#!/usr/bin/env bash&amp;quot; (для упрощения приводится команда [[sed]]):&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;# sed -i &amp;quot;s|#!/usr/bin/env bash|#!/usr/bin/env bash \n . ~/.bash_profile|&amp;quot; /opt/zookeeper/bin/zkEnv.sh&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''b)''' Изменяем параметр ZOO_LOG_DIR в файле zkEnv.sh(для упрощения приводится команда sed):&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;# sed -i &amp;quot;s|ZOO_LOG_DIR=\x22\x2E\x22|ZOO_LOG_DIR=\x22/opt/zookeeper/log\x22|&amp;quot; /opt/zookeeper/bin/zkEnv.sh&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''c)''' Изменяем параметр ZOO_LOG4J_PROP в файле zkEnv.sh(для упрощения приводится команда [[sed]]):&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;# sed -i &amp;quot;s|ZOO_LOG4J_PROP=\x22INFO,CONSOLE\x22|ZOO_LOG4J_PROP=\x22INFO,ROLLINGFILE\x22|&amp;quot; /opt/zookeeper/bin/zkEnv.sh&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''d)''' Создаём директории data и log:&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;#  mkdir -p /opt/zookeeper/{data,log}&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''e)''' Создаём файл myid в директории data и в него помещаем значение 1:&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;# echo '1' &amp;gt; /opt/zookeeper/data/myid&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''f)''' Настраиваем файл /opt/zookeeper/conf/zoo.cfg, далее приведена настройка для сервера 10.160.22.186:&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;# echo &amp;gt; /opt/zookeeper/conf/zoo.cfg&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;# cat &amp;gt;&amp;gt;/opt/zookeeper/conf/zoo.cfg &amp;lt;&amp;lt;EOF&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;#   ZooKeeper   node2 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;#.... &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;clientPort=3010 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;#      ZooKeeper &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;dataDir=/opt/zookeeper/data &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;#   ( ) &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;tickTime=2000 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;#.......... &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;initLimit=20 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;#...... &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;syncLimit=10 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;#     ZooKeeper ( ). 0 -  . &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;autopurge.purgeInterval=1 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;#  ,..... &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;autopurge.snapRetainCount=3 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;#     ZooKeeper &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;# : server.number=host:leader_port:election_port[:observer] &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;server.1=10.160.22.186:3001:3002 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;server.2=10.160.22.186:3003:3004 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;server.3=10.160.22.188:3005:3006 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;server.4=10.160.22.188:3007:3008 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;EOF &amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
 '''g)''' Создаём файл сервиса ZooKeeper:&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;# touch /etc/systemd/system/ZooKeeper.service&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''h)''' Редактируем созданный на этапе '''g''') файл:&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;# cat &amp;gt;&amp;gt; /etc/systemd/system/ZooKeeper.service &amp;lt;&amp;lt;EOF&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;[Unit]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Description=Apache Zookeeper server.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;Documentation=http://zookeeper.apache.org&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Requires=network.target remote-fs.target.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;After=network.target remote-fs.target&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;br /&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;[Service]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Type=forking&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;User=user_dev&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Group=user_dev&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;ExecStart=/opt/zookeeper/bin/zkServer.sh start&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;ExecStop=/opt/zookeeper/bin/zkServer.sh stop&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;ExecReload=/opt/zookeeper/bin/zkServer.sh restart&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Restart=always&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;br/&amp;gt;		&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;[Install]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;WantedBy=multi-user.target&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;EOF&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;		&lt;br /&gt;
* '''Назначаем владельцем директорий /opt/zookeeper пользователя user_dev:'''&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''#chown user_dev. -R /opt/zookeeper'''&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* '''Добавляем сервис ZooKeeper.service в автозагрузку:'''&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''# systemctl enable ZooKeeper.service&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* '''Запускаем сервисы:'''&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''#systemctl daemon-reload &amp;amp;&amp;amp; systemctl start ZooKeeper.service&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* '''Проверяем статусы сервиса:'''&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''#systemctl status ZooKeeper.service&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
 * ZooKeeper.service - Apache Zookeeper server&lt;br /&gt;
    Loaded: loaded (/etc/systemd/system/ZooKeeper.service; enabled; vendor preset: disabled)&lt;br /&gt;
    Active: active (running) since Пт 2017-07-28 08:44:33 MSK; 1h 2min ago&lt;br /&gt;
     Docs: &amp;lt;nowiki&amp;gt;http://zookeeper.apache.org&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   Process: 2275 ExecStart=/opt/zookeeper/bin/zkServer.sh start (code=exited, status=0/SUCCESS)&lt;br /&gt;
  Main PID: 2290 (java)&lt;br /&gt;
    CGroup: /system.slice/ZooKeeper.service&lt;br /&gt;
            L-2290 java -Dzookeeper.log.dir=/opt/zookeeper/log -Dzookeeper.root.logger=INFO,ROLLINGFILE -cp /o &lt;br /&gt;
  pt/zookeeper/bin/../build/classes:/opt/zookeeper/bin/../build/lib/*.jar:/op...&lt;br /&gt;
 июл 28 08:44:32 VM-V-App-03 systemd[1]: Starting Apache Zookeeper server...&lt;br /&gt;
 июл 28 08:44:32 VM-V-App-03 zkServer.sh[2275]: ZooKeeper JMX enabled by default&lt;br /&gt;
 июл 28 08:44:32 VM-V-App-03 zkServer.sh[2275]: Using config: /opt/zookeeper/bin/../conf/zoo.cfg&lt;br /&gt;
 июл 28 08:44:33 VM-V-App-03 systemd[1]: Started Apache Zookeeper server.&lt;br /&gt;
&lt;br /&gt;
* '''Перезагружаем сервер, после чего проверяем загрузились ли сервисы ZooKeeper'''&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;P.S.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; ==&lt;br /&gt;
'''''Для проверки получения ответа с сервера 10.160.22.186 выполним команды на сервере 10.160.22.188(должен быть инсталлирован netcat):'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''# echo &amp;quot;ruok&amp;quot; | nc 10.160.22.186 3010  ; echo '''&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''# echo &amp;quot;ruok&amp;quot; | nc 10.160.22.186 3020  ; echo '''&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
[http://zookeeper.apache.org Apache Zookeeper Home]&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://apache-mirror.rbc.ru/pub/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz Пакет ПО Zookeeper версии 3.4.10]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://habrahabr.ru/post/144708/ ZooKeeper или пишем сервис распределенных блокировок ]&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://10.160.22.182:9009/scripts/Var_Scripts/blob/master/zk_inst_kbsh_tk2.sh Скрипт первоначальной установки ZooKeeper]&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://10.160.22.182:9009/scripts/Var_Scripts/tree/master Репозиторий со скриптами автоматизации установки ZooKeeper]&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Java/Jruby&amp;diff=682</id>
		<title>Установка Java/Jruby</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Java/Jruby&amp;diff=682"/>
				<updated>2018-02-16T19:26:38Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Введение ==&lt;br /&gt;
На данной странице приводится инструкция по установке прикладного ПО Java и JRuby. Данное ПО служит основной для запуска программной платформы Вектор-М.&lt;br /&gt;
ПО Вектор-М может функционировать на 64-битных ОС Windows(Windows 7/Windows 8) и Linux(RHEL/CentOS 5.5/6.x/7.x).&lt;br /&gt;
&lt;br /&gt;
== Установка ПО Java и Jruby на Windows ==&lt;br /&gt;
Для установки ПО Java(JDK) и Jruby рекомендуется использовать исполняемые файлы(с расширением .exe) для архитектуры x86_64. Версия JDK рекомендуемая к использованию — 1.7.0 Update 67 и выше, версия для Jruby – 1.7.4.&lt;br /&gt;
Вся установка сводится к простому следованию подсказкам установщика программ Windows. При установке Jruby необходимо убедиться  в добавление значения переменной PATH равной &amp;quot;c:\jruby-1.7.4\bin&amp;quot;(Отмечается в соответствующем окне инсталлятора). После установки JDK необходимо добавить переменную JAVA_HOME со значением &amp;quot;C:\Program Files\Java\jdk1.7.0_67\jre&amp;quot;, где вместо &amp;quot;_67&amp;quot; указывается значение актуальной версии Update.&lt;br /&gt;
Для проверки добавления переменных в переменные среды нужно выполнить команды '''''java -version''''' и '''''jruby -v''''':&lt;br /&gt;
[[File:Java-jruby_version_win.PNG|center|700px]]&lt;br /&gt;
&lt;br /&gt;
== Установка ПО Java и Jruby на Linux ==&lt;br /&gt;
Для установка ПО Java и Jruby на ОС Linux требуется выполнить следующие действия(из-под root):&lt;br /&gt;
* Создать директории java и jruby в /opt/:&lt;br /&gt;
  #mkdir -p /opt/{java,jruby}&lt;br /&gt;
* Скачать в /opt/ файлы с ПО Java и Jruby с ftp, например:&lt;br /&gt;
 #wget -t 3 &amp;lt;nowiki&amp;gt;ftp://login:pass@ip_addr:/Software/java.zip&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 #wget -t 3 &amp;lt;nowiki&amp;gt;ftp://login:pass@ip_addr:/Software/jruby.zip&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;!-- Комментарий --&amp;gt;&lt;br /&gt;
* Разархивировать содержимое скачанных архивов в /opt/java и /opt/jruby, можно использовать Midnight Commander(mc).&lt;br /&gt;
* Назначить владельцем директорий необходимого пользователя, например user_dev:&lt;br /&gt;
  #chown user_dev:user_dev -R /opt&lt;br /&gt;
* Установить &amp;quot;бит исполнения&amp;quot; на /opt/java и /opt/jruby:&lt;br /&gt;
  #chmod +x -R /opt/{java,jruby}&lt;br /&gt;
* Привести файл /home/&amp;lt;username&amp;gt;/.bash_profile, где &amp;lt;username&amp;gt; имя пользователя(например user_dev, далее будет использован этот пользователь),к следующему виду:&lt;br /&gt;
[[File:Bash profile.PNG|center]]&lt;br /&gt;
* Обновить переменные среды выполнив команду:&lt;br /&gt;
   #. /home/user_dev/.bash_profile&lt;br /&gt;
* Залогиниться по пользователем user_dev и проверить версии java и jruby:&lt;br /&gt;
   $java -version&lt;br /&gt;
   $jruby -v&lt;br /&gt;
[[File:Java-jruby_version_.PNG|center]]&lt;br /&gt;
* Залогиниться по суперпользователем root и отредактировать файл /root/.bash_profile аналогично файлу /home/user_dev/.bash_profile, проверить версии java и jruby.&lt;br /&gt;
&lt;br /&gt;
== Решение возможных проблем ==&lt;br /&gt;
Для ОС Windows большинство проблем решается переустановкой ПО из установочных файлов и проверкой переменных сред окружения.&lt;br /&gt;
Для ОС Linux необходимо проверять назначенных на директории java и jruby владельцев, наличие &amp;quot;бита исполнения&amp;quot; и занесение переменных окружения в .bash_profile.&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Java-jruby_version_.PNG&amp;diff=681</id>
		<title>Файл:Java-jruby version .PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Java-jruby_version_.PNG&amp;diff=681"/>
				<updated>2018-02-16T19:26:06Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Java/Jruby&amp;diff=679</id>
		<title>Установка Java/Jruby</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Java/Jruby&amp;diff=679"/>
				<updated>2018-02-16T19:23:29Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Введение ==&lt;br /&gt;
На данной странице приводится инструкция по установке прикладного ПО Java и JRuby. Данное ПО служит основной для запуска программной платформы Вектор-М.&lt;br /&gt;
ПО Вектор-М может функционировать на 64-битных ОС Windows(Windows 7/Windows 8) и Linux(RHEL/CentOS 5.5/6.x/7.x).&lt;br /&gt;
&lt;br /&gt;
== Установка ПО Java и Jruby на Windows ==&lt;br /&gt;
Для установки ПО Java(JDK) и Jruby рекомендуется использовать исполняемые файлы(с расширением .exe) для архитектуры x86_64. Версия JDK рекомендуемая к использованию — 1.7.0 Update 67 и выше, версия для Jruby – 1.7.4.&lt;br /&gt;
Вся установка сводится к простому следованию подсказкам установщика программ Windows. При установке Jruby необходимо убедиться  в добавление значения переменной PATH равной &amp;quot;c:\jruby-1.7.4\bin&amp;quot;(Отмечается в соответствующем окне инсталлятора). После установки JDK необходимо добавить переменную JAVA_HOME со значением &amp;quot;C:\Program Files\Java\jdk1.7.0_67\jre&amp;quot;, где вместо &amp;quot;_67&amp;quot; указывается значение актуальной версии Update.&lt;br /&gt;
Для проверки добавления переменных в переменные среды нужно выполнить команды '''''java -version''''' и '''''jruby -v''''':&lt;br /&gt;
[[File:Java-jruby_version_win.PNG|center|700px]]&lt;br /&gt;
&lt;br /&gt;
== Установка ПО Java и Jruby на Linux ==&lt;br /&gt;
Для установка ПО Java и Jruby на ОС Linux требуется выполнить следующие действия(из-под root):&lt;br /&gt;
* Создать директории java и jruby в /opt/:&lt;br /&gt;
  #mkdir -p /opt/{java,jruby}&lt;br /&gt;
* Скачать в /opt/ файлы с ПО Java и Jruby с ftp, например:&lt;br /&gt;
 #wget -t 3 &amp;lt;nowiki&amp;gt;ftp://login:pass@ip_addr:/Software/java.zip&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 #wget -t 3 &amp;lt;nowiki&amp;gt;ftp://login:pass@ip_addr:/Software/jruby.zip&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;!-- Комментарий --&amp;gt;&lt;br /&gt;
* Разархивировать содержимое скачанных архивов в /opt/java и /opt/jruby, можно использовать Midnight Commander(mc).&lt;br /&gt;
* Назначить владельцем директорий необходимого пользователя, например user_dev:&lt;br /&gt;
  #chown user_dev:user_dev -R /opt&lt;br /&gt;
* Установить &amp;quot;бит исполнения&amp;quot; на /opt/java и /opt/jruby:&lt;br /&gt;
  #chmod +x -R /opt/{java,jruby}&lt;br /&gt;
* Привести файл /home/&amp;lt;username&amp;gt;/.bash_profile, где &amp;lt;username&amp;gt; имя пользователя(например user_dev, далее будет использован этот пользователь),к следующему виду:&lt;br /&gt;
[[File:Bash profile.PNG|center]]&lt;br /&gt;
* Обновить переменные среды выполнив команду:&lt;br /&gt;
   #. /home/user_dev/.bash_profile&lt;br /&gt;
* Залогиниться по пользователем user_dev и проверить версии java и jruby:&lt;br /&gt;
   $java -version&lt;br /&gt;
   $jruby -v&lt;br /&gt;
[[File:Java-jruby_version.PNG|center]]&lt;br /&gt;
* Залогиниться по суперпользователем root и отредактировать файл /root/.bash_profile аналогично файлу /home/user_dev/.bash_profile, проверить версии java и jruby.&lt;br /&gt;
&lt;br /&gt;
== Решение возможных проблем ==&lt;br /&gt;
Для ОС Windows большинство проблем решается переустановкой ПО из установочных файлов и проверкой переменных сред окружения.&lt;br /&gt;
Для ОС Linux необходимо проверять назначенных на директории java и jruby владельцев, наличие &amp;quot;бита исполнения&amp;quot; и занесение переменных окружения в .bash_profile.&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_ZooKeeper_%D0%BD%D0%B0_%D0%9E%D0%A1_RHEL/CentOS&amp;diff=677</id>
		<title>Установка ZooKeeper на ОС RHEL/CentOS</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_ZooKeeper_%D0%BD%D0%B0_%D0%9E%D0%A1_RHEL/CentOS&amp;diff=677"/>
				<updated>2018-02-16T19:15:57Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Введение ==&lt;br /&gt;
На данной странице приводится инструкция по установке прикладного ПО ''Zookeeper'' на ОС RHEL и CentOS веток 5.x-6.x, 7.x.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''ZooKeeper''''' — распределённый сервис конфигурирования и синхронизации, не знаю как вам, но мне данное определение мало что раскрывает. Оглядываясь на свой опыт, могу дать альтернативное определение '''''ZooKeeper''''', это распределенное ''&amp;lt;u&amp;gt;key&amp;lt;/u&amp;gt;''/''&amp;lt;u&amp;gt;value&amp;lt;/u&amp;gt;''(''&amp;lt;u&amp;gt;ключ&amp;lt;/u&amp;gt;''/''&amp;lt;u&amp;gt;значение&amp;lt;/u&amp;gt;'') хранилище со следующими свойствами:&lt;br /&gt;
* ''пространство ключей образует &amp;lt;u&amp;gt;дерево&amp;lt;/u&amp;gt; (иерархию подобную файловой системе)'';&lt;br /&gt;
* ''значения могут содержаться в любом &amp;lt;u&amp;gt;узле&amp;lt;/u&amp;gt; иерархии, а не только в &amp;lt;u&amp;gt;листьях&amp;lt;/u&amp;gt; (как если бы файлы одновременно были бы и каталогами), &amp;lt;u&amp;gt;узел&amp;lt;u/&amp;gt; иерархии называется &amp;lt;u&amp;gt;znode&amp;lt;/u&amp;gt;'';&lt;br /&gt;
* ''между клиентом и сервером двунаправленная связь, следовательно, клиент может подписываться как изменение конкретного значения или части иерархии'';&lt;br /&gt;
* ''возможно создать временную пару &amp;lt;u&amp;gt;ключ&amp;lt;/u&amp;gt;/&amp;lt;u&amp;gt;значение&amp;lt;/u&amp;gt;, которая существует, пока клиент, её создавший, подключен к кластеру'';&lt;br /&gt;
* ''все данные должны помещаться в память'';&lt;br /&gt;
* ''устойчивость к смерти некритического кол-ва узлов кластера(наличие &amp;lt;u&amp;gt;кворума&amp;lt;/u&amp;gt;)''.&lt;br /&gt;
&lt;br /&gt;
== Установка ПО Zookeeper на RHEL/CentOS 6.x ==&lt;br /&gt;
Для инсталляции будет использоваться [http://apache-mirror.rbc.ru/pub/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz zookeeper версии 3.4.6]. &lt;br /&gt;
В файл ''~/.bash_profile'', пользователя из-под которого планируется запуск сервисов, должны быть внесены переменные окружения ''JAVA''/''JRUBY'':&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# .bash_profile&lt;br /&gt;
&lt;br /&gt;
# Get the aliases and functions&lt;br /&gt;
if [ -f ~/.bashrc ]; then&lt;br /&gt;
        . ~/.bashrc&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# User specific environment and startup programs&lt;br /&gt;
&lt;br /&gt;
PATH=/opt/java/bin:$PATH:$HOME/bin:/opt/jruby/bin&lt;br /&gt;
JRUBY_HOME=/opt/jruby&lt;br /&gt;
PATH=$PATH:$HOME/bin&lt;br /&gt;
&lt;br /&gt;
export PATH&lt;br /&gt;
export JRUBY_HOME&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В данном примере настройка ПО ''ZooKeeper'' выполняется под суперпользователем &amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;root&amp;lt;/span&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
В данной главе рассматривается вариант установки ПО ''ZooKeeper'' на 6 хостах(&amp;lt;u&amp;gt;'''официальная документация рекомендует использовать нечётное кол-во хостов — 3, 5, 7 и т.д.'''&amp;lt;/u&amp;gt;). При этом, в данном случае, для работы ПО ''ZooKeeper'' необходимо обеспечить &amp;lt;u&amp;gt;постоянную&amp;lt;/u&amp;gt; работу любых четырёх узлов ПО ''ZooKeeper'' из шести. &amp;lt;br /&amp;gt;&lt;br /&gt;
Для установки ПО ''ZooKeeper'' на серверах,  необходимо выполнить следующие команды на сервере:&amp;lt;br /&amp;gt;&lt;br /&gt;
::::&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;1)&amp;lt;/span&amp;gt;'''# wget &amp;lt;nowiki&amp;gt;http://apache-mirror.rbc.ru/pub/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz&amp;lt;/nowiki&amp;gt; -O /opt/zookeeper.tar.gz'''&amp;lt;br /&amp;gt;&lt;br /&gt;
::::::::::::::::::::::или&lt;br /&gt;
::::&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# wget &amp;lt;nowiki&amp;gt;http://apache-mirror.rbc.ru/pub/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz&amp;lt;/nowiki&amp;gt; -O /opt/zookeeper.tar.gz'''&lt;br /&gt;
::::&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;2)&amp;lt;/span&amp;gt;'''# cd /opt; tar zxvf zookeeper.tar.gz &amp;amp;&amp;amp; mv zookeeper-3.4.6 zookeeper; chmod +x -R zookeeper/ &amp;amp;&amp;amp; mkdir -p /opt/zookeeper/{data,log}'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# sed -i &amp;quot;s|#!/usr/bin/env bash|#!/usr/bin/env bash \n . ~/.bash_profile|&amp;quot; /opt/zookeeper/bin/zkEnv.sh'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# sed -i &amp;quot;s|ZOO_LOG_DIR=\x22\x2E\x22|ZOO_LOG_DIR=\x22/opt/zookeeper/log\x22|&amp;quot; /opt/zookeeper/bin/zkEnv.sh'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# sed -i &amp;quot;s|ZOO_LOG4J_PROP=\x22INFO,CONSOLE\x22|ZOO_LOG4J_PROP=\x22INFO,ROLLINGFILE\x22|&amp;quot; /opt/zookeeper/bin/zkEnv.sh'''&lt;br /&gt;
::::&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;3)&amp;lt;/span&amp;gt;'''# cat &amp;gt;&amp;gt;/opt/zookeeper/conf/zoo.cfg&amp;lt;&amp;lt;EOF'''&lt;br /&gt;
::::'''# Конфигурационный файл ZooKeeper'''&lt;br /&gt;
::::'''# Порт для подключения клиентов'''&lt;br /&gt;
::::'''clientPort=3000'''&lt;br /&gt;
::::'''# Путь к директории с данными ZooKeeper'''&lt;br /&gt;
::::'''dataDir=/opt/zookeeper/data'''&lt;br /&gt;
::::'''# Длина такта (в миллисекундах)'''&lt;br /&gt;
::::'''tickTime=2000'''&lt;br /&gt;
::::'''# Количество тактов для подключения к лидеру и синхронизации с ним'''&lt;br /&gt;
::::'''initLimit=10'''&lt;br /&gt;
::::'''# Количество тактов для синхронизации с лидером'''&lt;br /&gt;
::::'''syncLimit=5'''&lt;br /&gt;
::::'''# Периодичность удаления старых данных ZooKeeper (в часах). 0 - не удалять.'''&lt;br /&gt;
::::'''autopurge.purgeInterval=1'''&lt;br /&gt;
::::'''# Количество файлов, оставляемое при удалении старых данных'''&lt;br /&gt;
::::'''autopurge.snapRetainCount=3'''&lt;br /&gt;
::::'''# Адреса всех серверов кластера ZooKeeper'''&lt;br /&gt;
::::'''# Формат: server.number=host:leader_port:election_port[:observer]'''&lt;br /&gt;
::::'''server.1=&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_1&amp;lt;/span&amp;gt;:3001:3002'''&lt;br /&gt;
::::'''server.2=&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_2&amp;lt;/span&amp;gt;:3001:3002'''&lt;br /&gt;
::::'''server.3=&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_3&amp;lt;/span&amp;gt;:3001:3002'''&lt;br /&gt;
::::'''server.4=&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_4&amp;lt;/span&amp;gt;:3001:3002'''&lt;br /&gt;
::::'''server.5=&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_5&amp;lt;/span&amp;gt;:3001:3002'''&lt;br /&gt;
::::'''server.6=&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_6&amp;lt;/span&amp;gt;:3001:3002'''&lt;br /&gt;
::::'''EOF'''&lt;br /&gt;
::::&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;4)&amp;lt;/span&amp;gt;'''# chown rvec-adm:rvec-adm -R /opt/zookeeper/ &amp;amp;&amp;amp; scp -Cqr  /opt/zookeeper/ root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_2&amp;lt;/span&amp;gt;:/opt/;'''&amp;lt;br /&amp;gt;&amp;amp;ensp;&amp;amp;nbsp;'''# scp -Cqr  /opt/zookeeper/ root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_3&amp;lt;/span&amp;gt;:/opt/'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# scp -Cqr  /opt/zookeeper/ root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_4&amp;lt;/span&amp;gt;:/opt/'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# scp -Cqr  /opt/zookeeper/ root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_5&amp;lt;/span&amp;gt;:/opt/'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# scp -Cqr  /opt/zookeeper/ root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_6&amp;lt;/span&amp;gt;:/opt/'''&lt;br /&gt;
::::&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;5)&amp;lt;/span&amp;gt;'''# echo '1' &amp;gt; /opt/zookeeper/data/myid;'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# ssh root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_2&amp;lt;/span&amp;gt; &amp;quot;echo 2 &amp;gt; /opt/zookeeper/data/myid &amp;amp;&amp;amp; chown rvec-adm. /opt/zookeeper/data/myid;&amp;quot;'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# ssh root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_3&amp;lt;/span&amp;gt; &amp;quot;echo 3 &amp;gt; /opt/zookeeper/data/myid &amp;amp;&amp;amp; chown rvec-adm. /opt/zookeeper/data/myid;&amp;quot;'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# ssh root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_4&amp;lt;/span&amp;gt; &amp;quot;echo 4 &amp;gt; /opt/zookeeper/data/myid &amp;amp;&amp;amp; chown rvec-adm. /opt/zookeeper/data/myid;&amp;quot;'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# ssh root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_5&amp;lt;/span&amp;gt; &amp;quot;echo 5 &amp;gt; /opt/zookeeper/data/myid &amp;amp;&amp;amp; chown rvec-adm. /opt/zookeeper/data/myid;&amp;quot;'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# ssh root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_6&amp;lt;/span&amp;gt; &amp;quot;echo 6 &amp;gt; /opt/zookeeper/data/myid &amp;amp;&amp;amp; chown rvec-adm. /opt/zookeeper/data/myid;&amp;quot;'''&lt;br /&gt;
::::&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;6)&amp;lt;/span&amp;gt;'''# chmod +x /opt/zookeeper/check_zoo.sh; sleep 0.2; echo '*/1 * * * * /opt/zookeeper/check_zoo.sh' &amp;gt;&amp;gt; /var/spool/cron/root'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# ssh root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_2&amp;lt;/span&amp;gt; &amp;quot;chmod +x /opt/zookeeper/check_zoo.sh; sleep 0.2; echo '*/1 * * * * /opt/zookeeper/check_zoo.sh' &amp;gt;&amp;gt; /var/spool/cron/root&amp;quot;'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# ssh root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_3&amp;lt;/span&amp;gt; &amp;quot;chmod +x /opt/zookeeper/check_zoo.sh; sleep 0.2; echo '*/1 * * * * /opt/zookeeper/check_zoo.sh' &amp;gt;&amp;gt; /var/spool/cron/root&amp;quot;'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# ssh root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_4&amp;lt;/span&amp;gt; &amp;quot;chmod +x /opt/zookeeper/check_zoo.sh; sleep 0.2; echo '*/1 * * * * /opt/zookeeper/check_zoo.sh' &amp;gt;&amp;gt; /var/spool/cron/root&amp;quot;'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# ssh root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_5&amp;lt;/span&amp;gt; &amp;quot;chmod +x /opt/zookeeper/check_zoo.sh; sleep 0.2; echo '*/1 * * * * /opt/zookeeper/check_zoo.sh' &amp;gt;&amp;gt; /var/spool/cron/root&amp;quot;'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# ssh root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_6&amp;lt;/span&amp;gt; &amp;quot;chmod +x /opt/zookeeper/check_zoo.sh; sleep 0.2; echo '*/1 * * * * /opt/zookeeper/check_zoo.sh' &amp;gt;&amp;gt; /var/spool/cron/root&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
== Установка ПО Zookeeper на RHEL/CentOS 7.x ==&lt;br /&gt;
Для инсталляции будет использоваться [http://apache-mirror.rbc.ru/pub/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz zookeeper версии 3.4.10]. &lt;br /&gt;
В файл ~/.bash_profile, пользователя из-под которого планируется запуск сервисов, должны быть внесены переменные окружения JAVA/JRUBY:&lt;br /&gt;
 # .bash_profile&lt;br /&gt;
 # Get the aliases and functions&lt;br /&gt;
 if [ -f ~/.bashrc ]; then&lt;br /&gt;
       . ~/.bashrc&lt;br /&gt;
 fi&amp;lt;br /&amp;gt;&lt;br /&gt;
 # User specific environment and startup programs&lt;br /&gt;
 PATH=/opt/java/bin:$PATH:$HOME/bin:/opt/jruby/bin&lt;br /&gt;
 JRUBY_HOME=/opt/jruby&lt;br /&gt;
 PATH=$PATH:$HOME/bin&amp;lt;br /&amp;gt;&lt;br /&gt;
 export PATH&lt;br /&gt;
 export JRUBY_HOME&lt;br /&gt;
&lt;br /&gt;
Все действия выполняются под пользователем root(&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;сервер 10.160.20.186&amp;lt;/span&amp;gt;, владельцем директорий будет пользователь ''user_dev'', запуск сервиса будет осуществляться из-под пользователя ''user_dev''): &lt;br /&gt;
* '''Переходим в каталог /opt и скачиваем актуальную версию ПО Zookeeper(в нашем случае — 3.4.10) с официального сайта'''&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''# cd /opt &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;http://apache-mirror.rbc.ru/pub/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz&amp;lt;/nowiki&amp;gt;'''&amp;lt;/span&amp;gt;&lt;br /&gt;
* '''Распаковываем скачанный архив, переименовываем директорию, назначаем владельцем пользователя ''user_dev'' '''&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''# tar xzvf zookeeper-3.4.10.tar.gz &amp;amp;&amp;amp; mv zookeeper-3.4.10 zookeeper &amp;amp;&amp;amp; chown user_dev. -R /opt/zookeeper'''&amp;lt;/span&amp;gt;&lt;br /&gt;
* '''Настраиваем инстанс ''zookeeper'' на сервере''': &lt;br /&gt;
 '''a)''' Добавляем в файл zkEnv.sh строку &amp;quot;. ~/.bash_profile&amp;quot; сразу после строки &amp;quot;#!/usr/bin/env bash&amp;quot; (для упрощения приводится команда [[sed]]):&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;# sed -i &amp;quot;s|#!/usr/bin/env bash|#!/usr/bin/env bash \n . ~/.bash_profile|&amp;quot; /opt/zookeeper/bin/zkEnv.sh&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''b)''' Изменяем параметр ZOO_LOG_DIR в файле zkEnv.sh(для упрощения приводится команда sed):&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;# sed -i &amp;quot;s|ZOO_LOG_DIR=\x22\x2E\x22|ZOO_LOG_DIR=\x22/opt/zookeeper/log\x22|&amp;quot; /opt/zookeeper/bin/zkEnv.sh&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''c)''' Изменяем параметр ZOO_LOG4J_PROP в файле zkEnv.sh(для упрощения приводится команда [[sed]]):&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;# sed -i &amp;quot;s|ZOO_LOG4J_PROP=\x22INFO,CONSOLE\x22|ZOO_LOG4J_PROP=\x22INFO,ROLLINGFILE\x22|&amp;quot; /opt/zookeeper/bin/zkEnv.sh&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''d)''' Создаём директории data и log:&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;#  mkdir -p /opt/zookeeper/{data,log}&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''e)''' Создаём файл myid в директории data и в него помещаем значение 1:&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;# echo '1' &amp;gt; /opt/zookeeper/data/myid&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''f)''' Настраиваем файл /opt/zookeeper/conf/zoo.cfg, далее приведена настройка для сервера 10.160.22.186:&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;# echo &amp;gt; /opt/zookeeper/conf/zoo.cfg&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;# cat &amp;gt;&amp;gt;/opt/zookeeper/conf/zoo.cfg &amp;lt;&amp;lt;EOF&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;#   ZooKeeper   node2 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;#.... &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;clientPort=3010 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;#      ZooKeeper &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;dataDir=/opt/zookeeper/data &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;#   ( ) &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;tickTime=2000 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;#.......... &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;initLimit=20 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;#...... &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;syncLimit=10 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;#     ZooKeeper ( ). 0 -  . &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;autopurge.purgeInterval=1 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;#  ,..... &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;autopurge.snapRetainCount=3 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;#     ZooKeeper &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;# : server.number=host:leader_port:election_port[:observer] &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;server.1=10.160.22.186:3001:3002 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;server.2=10.160.22.186:3003:3004 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;server.3=10.160.22.188:3005:3006 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;server.4=10.160.22.188:3007:3008 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;EOF &amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
 '''g)''' Создаём файл сервиса ZooKeeper:&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;# touch /etc/systemd/system/ZooKeeper.service&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''h)''' Редактируем созданный на этапе '''g''') файл:&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;# cat &amp;gt;&amp;gt; /etc/systemd/system/ZooKeeper.service &amp;lt;&amp;lt;EOF&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;[Unit]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Description=Apache Zookeeper server.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;Documentation=http://zookeeper.apache.org&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Requires=network.target remote-fs.target.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;After=network.target remote-fs.target&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;br /&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;[Service]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Type=forking&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;User=user_dev&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Group=user_dev&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;ExecStart=/opt/zookeeper/bin/zkServer.sh start&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;ExecStop=/opt/zookeeper/bin/zkServer.sh stop&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;ExecReload=/opt/zookeeper/bin/zkServer.sh restart&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Restart=always&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;br/&amp;gt;		&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;[Install]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;WantedBy=multi-user.target&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;EOF&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;		&lt;br /&gt;
* '''Назначаем владельцем директорий /opt/zookeeper пользователя user_dev:'''&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''#chown user_dev. -R /opt/zookeeper'''&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* '''Добавляем сервис ZooKeeper.service в автозагрузку:'''&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''# systemctl enable ZooKeeper.service&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* '''Запускаем сервисы:'''&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''#systemctl daemon-reload &amp;amp;&amp;amp; systemctl start ZooKeeper.service&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* '''Проверяем статусы сервиса:'''&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''#systemctl status ZooKeeper.service&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
 * ZooKeeper.service - Apache Zookeeper server&lt;br /&gt;
    Loaded: loaded (/etc/systemd/system/ZooKeeper.service; enabled; vendor preset: disabled)&lt;br /&gt;
    Active: active (running) since Пт 2017-07-28 08:44:33 MSK; 1h 2min ago&lt;br /&gt;
     Docs: &amp;lt;nowiki&amp;gt;http://zookeeper.apache.org&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   Process: 2275 ExecStart=/opt/zookeeper/bin/zkServer.sh start (code=exited, status=0/SUCCESS)&lt;br /&gt;
  Main PID: 2290 (java)&lt;br /&gt;
    CGroup: /system.slice/ZooKeeper.service&lt;br /&gt;
            L-2290 java -Dzookeeper.log.dir=/opt/zookeeper/log -Dzookeeper.root.logger=INFO,ROLLINGFILE -cp /o &lt;br /&gt;
  pt/zookeeper/bin/../build/classes:/opt/zookeeper/bin/../build/lib/*.jar:/op...&lt;br /&gt;
 июл 28 08:44:32 VM-V-App-03 systemd[1]: Starting Apache Zookeeper server...&lt;br /&gt;
 июл 28 08:44:32 VM-V-App-03 zkServer.sh[2275]: ZooKeeper JMX enabled by default&lt;br /&gt;
 июл 28 08:44:32 VM-V-App-03 zkServer.sh[2275]: Using config: /opt/zookeeper/bin/../conf/zoo.cfg&lt;br /&gt;
 июл 28 08:44:33 VM-V-App-03 systemd[1]: Started Apache Zookeeper server.&lt;br /&gt;
&lt;br /&gt;
* '''Перезагружаем сервер, после чего проверяем загрузились ли сервисы ZooKeeper'''&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;P.S.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; ==&lt;br /&gt;
'''''Для проверки получения ответа с сервера 10.160.22.186 выполним команды на сервере 10.160.22.188(должен быть инсталлирован netcat):'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''# echo &amp;quot;ruok&amp;quot; | nc 10.160.22.186 3010  ; echo '''&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''# echo &amp;quot;ruok&amp;quot; | nc 10.160.22.186 3020  ; echo '''&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
[http://zookeeper.apache.org Apache Zookeeper Home]&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://apache-mirror.rbc.ru/pub/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz Пакет ПО Zookeeper версии 3.4.10]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://habrahabr.ru/post/144708/ ZooKeeper или пишем сервис распределенных блокировок ]&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://10.160.22.182:9009/scripts/Var_Scripts/blob/master/zk_inst_kbsh_tk2.sh Скрипт первоначальной установки ZooKeeper]&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://10.160.22.182:9009/scripts/Var_Scripts/tree/master Репозиторий со скриптами автоматизации установки ZooKeeper]&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_ZooKeeper_%D0%BD%D0%B0_%D0%9E%D0%A1_RHEL/CentOS&amp;diff=676</id>
		<title>Установка ZooKeeper на ОС RHEL/CentOS</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_ZooKeeper_%D0%BD%D0%B0_%D0%9E%D0%A1_RHEL/CentOS&amp;diff=676"/>
				<updated>2018-02-16T19:11:09Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Введение ==&lt;br /&gt;
На данной странице приводится инструкция по установке прикладного ПО ''Zookeeper'' на ОС RHEL и CentOS веток 5.x-6.x, 7.x.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''ZooKeeper''''' — распределённый сервис конфигурирования и синхронизации, не знаю как вам, но мне данное определение мало что раскрывает. Оглядываясь на свой опыт, могу дать альтернативное определение '''''ZooKeeper''''', это распределенное ''&amp;lt;u&amp;gt;key&amp;lt;/u&amp;gt;''/''&amp;lt;u&amp;gt;value&amp;lt;/u&amp;gt;''(''&amp;lt;u&amp;gt;ключ&amp;lt;/u&amp;gt;''/''&amp;lt;u&amp;gt;значение&amp;lt;/u&amp;gt;'') хранилище со следующими свойствами:&lt;br /&gt;
* ''пространство ключей образует &amp;lt;u&amp;gt;дерево&amp;lt;/u&amp;gt; (иерархию подобную файловой системе)'';&lt;br /&gt;
* ''значения могут содержаться в любом &amp;lt;u&amp;gt;узле&amp;lt;/u&amp;gt; иерархии, а не только в &amp;lt;u&amp;gt;листьях&amp;lt;/u&amp;gt; (как если бы файлы одновременно были бы и каталогами), &amp;lt;u&amp;gt;узел&amp;lt;u/&amp;gt; иерархии называется &amp;lt;u&amp;gt;znode&amp;lt;/u&amp;gt;'';&lt;br /&gt;
* ''между клиентом и сервером двунаправленная связь, следовательно, клиент может подписываться как изменение конкретного значения или части иерархии'';&lt;br /&gt;
* ''возможно создать временную пару &amp;lt;u&amp;gt;ключ&amp;lt;/u&amp;gt;/&amp;lt;u&amp;gt;значение&amp;lt;/u&amp;gt;, которая существует, пока клиент, её создавший, подключен к кластеру'';&lt;br /&gt;
* ''все данные должны помещаться в память'';&lt;br /&gt;
* ''устойчивость к смерти некритического кол-ва узлов кластера(наличие &amp;lt;u&amp;gt;кворума&amp;lt;/u&amp;gt;)''.&lt;br /&gt;
&lt;br /&gt;
== Установка ПО Zookeeper на RHEL/CentOS 6.x ==&lt;br /&gt;
Для инсталляции будет использоваться [http://apache-mirror.rbc.ru/pub/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz zookeeper версии 3.4.6]. &lt;br /&gt;
В файл ''~/.bash_profile'', пользователя из-под которого планируется запуск сервисов, должны быть внесены переменные окружения ''JAVA''/''JRUBY'':&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# .bash_profile&lt;br /&gt;
&lt;br /&gt;
# Get the aliases and functions&lt;br /&gt;
if [ -f ~/.bashrc ]; then&lt;br /&gt;
        . ~/.bashrc&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# User specific environment and startup programs&lt;br /&gt;
&lt;br /&gt;
PATH=/opt/java/bin:$PATH:$HOME/bin:/opt/jruby/bin&lt;br /&gt;
JRUBY_HOME=/opt/jruby&lt;br /&gt;
PATH=$PATH:$HOME/bin&lt;br /&gt;
&lt;br /&gt;
export PATH&lt;br /&gt;
export JRUBY_HOME&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В данном примере настройка ПО ''ZooKeeper'' выполняется под суперпользователем &amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;root&amp;lt;/span&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
В данной главе рассматривается вариант установки ПО ''ZooKeeper'' на 6 хостах(&amp;lt;u&amp;gt;'''официальная документация рекомендует использовать нечётное кол-во хостов — 3, 5, 7 и т.д.'''&amp;lt;/u&amp;gt;). При этом, в данном случае, для работы ПО ''ZooKeeper'' необходимо обеспечить &amp;lt;u&amp;gt;постоянную&amp;lt;/u&amp;gt; работу любых четырёх узлов ПО ''ZooKeeper'' из шести. &amp;lt;br /&amp;gt;&lt;br /&gt;
Для установки ПО ''ZooKeeper'' на серверах,  необходимо выполнить следующие команды на сервере:&amp;lt;br /&amp;gt;&lt;br /&gt;
::::&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;1)&amp;lt;/span&amp;gt;'''# wget &amp;lt;nowiki&amp;gt;http://apache-mirror.rbc.ru/pub/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz&amp;lt;/nowiki&amp;gt; -O /opt/zookeeper.tar.gz'''&amp;lt;br /&amp;gt;&lt;br /&gt;
::::::::::::::::::::::или&lt;br /&gt;
::::&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# wget &amp;lt;nowiki&amp;gt;http://apache-mirror.rbc.ru/pub/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz&amp;lt;/nowiki&amp;gt; -O /opt/zookeeper.tar.gz'''&lt;br /&gt;
::::&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;2)&amp;lt;/span&amp;gt;'''# cd /opt; tar zxvf zookeeper.tar.gz &amp;amp;&amp;amp; mv zookeeper-3.4.6 zookeeper; chmod +x -R zookeeper/ &amp;amp;&amp;amp; mkdir -p /opt/zookeeper/{data,log}'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# sed -i &amp;quot;s|#!/usr/bin/env bash|#!/usr/bin/env bash \n . ~/.bash_profile|&amp;quot; /opt/zookeeper/bin/zkEnv.sh'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# sed -i &amp;quot;s|ZOO_LOG_DIR=\x22\x2E\x22|ZOO_LOG_DIR=\x22/opt/zookeeper/log\x22|&amp;quot; /opt/zookeeper/bin/zkEnv.sh'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# sed -i &amp;quot;s|ZOO_LOG4J_PROP=\x22INFO,CONSOLE\x22|ZOO_LOG4J_PROP=\x22INFO,ROLLINGFILE\x22|&amp;quot; /opt/zookeeper/bin/zkEnv.sh'''&lt;br /&gt;
::::&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;3)&amp;lt;/span&amp;gt;'''# cat &amp;gt;&amp;gt;/opt/zookeeper/conf/zoo.cfg&amp;lt;&amp;lt;EOF'''&lt;br /&gt;
::::'''# Конфигурационный файл ZooKeeper'''&lt;br /&gt;
::::'''# Порт для подключения клиентов'''&lt;br /&gt;
::::'''clientPort=3000'''&lt;br /&gt;
::::'''# Путь к директории с данными ZooKeeper'''&lt;br /&gt;
::::'''dataDir=/opt/zookeeper/data'''&lt;br /&gt;
::::'''# Длина такта (в миллисекундах)'''&lt;br /&gt;
::::'''tickTime=2000'''&lt;br /&gt;
::::'''# Количество тактов для подключения к лидеру и синхронизации с ним'''&lt;br /&gt;
::::'''initLimit=10'''&lt;br /&gt;
::::'''# Количество тактов для синхронизации с лидером'''&lt;br /&gt;
::::'''syncLimit=5'''&lt;br /&gt;
::::'''# Периодичность удаления старых данных ZooKeeper (в часах). 0 - не удалять.'''&lt;br /&gt;
::::'''autopurge.purgeInterval=1'''&lt;br /&gt;
::::'''# Количество файлов, оставляемое при удалении старых данных'''&lt;br /&gt;
::::'''autopurge.snapRetainCount=3'''&lt;br /&gt;
::::'''# Адреса всех серверов кластера ZooKeeper'''&lt;br /&gt;
::::'''# Формат: server.number=host:leader_port:election_port[:observer]'''&lt;br /&gt;
::::'''server.1=&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_1&amp;lt;/span&amp;gt;:3001:3002'''&lt;br /&gt;
::::'''server.2=&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_2&amp;lt;/span&amp;gt;:3001:3002'''&lt;br /&gt;
::::'''server.3=&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_3&amp;lt;/span&amp;gt;:3001:3002'''&lt;br /&gt;
::::'''server.4=&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_4&amp;lt;/span&amp;gt;:3001:3002'''&lt;br /&gt;
::::'''server.5=&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_5&amp;lt;/span&amp;gt;:3001:3002'''&lt;br /&gt;
::::'''server.6=&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_6&amp;lt;/span&amp;gt;:3001:3002'''&lt;br /&gt;
::::'''EOF'''&lt;br /&gt;
::::&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;4)&amp;lt;/span&amp;gt;'''# chown rvec-adm:rvec-adm -R /opt/zookeeper/ &amp;amp;&amp;amp; scp -Cqr  /opt/zookeeper/ root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_2&amp;lt;/span&amp;gt;:/opt/;'''&amp;lt;br /&amp;gt;&amp;amp;ensp;&amp;amp;nbsp;'''# scp -Cqr  /opt/zookeeper/ root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_3&amp;lt;/span&amp;gt;:/opt/'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# scp -Cqr  /opt/zookeeper/ root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_4&amp;lt;/span&amp;gt;:/opt/'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# scp -Cqr  /opt/zookeeper/ root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_5&amp;lt;/span&amp;gt;:/opt/'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# scp -Cqr  /opt/zookeeper/ root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_6&amp;lt;/span&amp;gt;:/opt/'''&lt;br /&gt;
::::&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;5)&amp;lt;/span&amp;gt;'''# echo '1' &amp;gt; /opt/zookeeper/data/myid;'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# ssh root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_2&amp;lt;/span&amp;gt; &amp;quot;echo 2 &amp;gt; /opt/zookeeper/data/myid &amp;amp;&amp;amp; chown rvec-adm. /opt/zookeeper/data/myid;&amp;quot;'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# ssh root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_3&amp;lt;/span&amp;gt; &amp;quot;echo 3 &amp;gt; /opt/zookeeper/data/myid &amp;amp;&amp;amp; chown rvec-adm. /opt/zookeeper/data/myid;&amp;quot;'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# ssh root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_4&amp;lt;/span&amp;gt; &amp;quot;echo 4 &amp;gt; /opt/zookeeper/data/myid &amp;amp;&amp;amp; chown rvec-adm. /opt/zookeeper/data/myid;&amp;quot;'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# ssh root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_5&amp;lt;/span&amp;gt; &amp;quot;echo 5 &amp;gt; /opt/zookeeper/data/myid &amp;amp;&amp;amp; chown rvec-adm. /opt/zookeeper/data/myid;&amp;quot;'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# ssh root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_6&amp;lt;/span&amp;gt; &amp;quot;echo 6 &amp;gt; /opt/zookeeper/data/myid &amp;amp;&amp;amp; chown rvec-adm. /opt/zookeeper/data/myid;&amp;quot;'''&lt;br /&gt;
::::&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;6)&amp;lt;/span&amp;gt;'''# chmod +x /opt/zookeeper/check_zoo.sh; sleep 0.2; echo '*/1 * * * * /opt/zookeeper/check_zoo.sh' &amp;gt;&amp;gt; /var/spool/cron/root'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# ssh root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_2&amp;lt;/span&amp;gt; &amp;quot;chmod +x /opt/zookeeper/check_zoo.sh; sleep 0.2; echo '*/1 * * * * /opt/zookeeper/check_zoo.sh' &amp;gt;&amp;gt; /var/spool/cron/root&amp;quot;'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# ssh root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_3&amp;lt;/span&amp;gt; &amp;quot;chmod +x /opt/zookeeper/check_zoo.sh; sleep 0.2; echo '*/1 * * * * /opt/zookeeper/check_zoo.sh' &amp;gt;&amp;gt; /var/spool/cron/root&amp;quot;'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# ssh root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_4&amp;lt;/span&amp;gt; &amp;quot;chmod +x /opt/zookeeper/check_zoo.sh; sleep 0.2; echo '*/1 * * * * /opt/zookeeper/check_zoo.sh' &amp;gt;&amp;gt; /var/spool/cron/root&amp;quot;'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# ssh root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_5&amp;lt;/span&amp;gt; &amp;quot;chmod +x /opt/zookeeper/check_zoo.sh; sleep 0.2; echo '*/1 * * * * /opt/zookeeper/check_zoo.sh' &amp;gt;&amp;gt; /var/spool/cron/root&amp;quot;'''&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;'''# ssh root@&amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;ip_addr_6&amp;lt;/span&amp;gt; &amp;quot;chmod +x /opt/zookeeper/check_zoo.sh; sleep 0.2; echo '*/1 * * * * /opt/zookeeper/check_zoo.sh' &amp;gt;&amp;gt; /var/spool/cron/root&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
== Установка ПО Zookeeper на RHEL/CentOS 7.x ==&lt;br /&gt;
Для инсталляции будет использоваться [http://apache-mirror.rbc.ru/pub/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz zookeeper версии 3.4.10]. &lt;br /&gt;
В файл ~/.bash_profile, пользователя из-под которого планируется запуск сервисов, должны быть внесены переменные окружения JAVA/JRUBY:&lt;br /&gt;
 # .bash_profile&lt;br /&gt;
 # Get the aliases and functions&lt;br /&gt;
 if [ -f ~/.bashrc ]; then&lt;br /&gt;
       . ~/.bashrc&lt;br /&gt;
 fi&amp;lt;br /&amp;gt;&lt;br /&gt;
 # User specific environment and startup programs&lt;br /&gt;
 PATH=/opt/java/bin:$PATH:$HOME/bin:/opt/jruby/bin&lt;br /&gt;
 JRUBY_HOME=/opt/jruby&lt;br /&gt;
 PATH=$PATH:$HOME/bin&amp;lt;br /&amp;gt;&lt;br /&gt;
 export PATH&lt;br /&gt;
 export JRUBY_HOME&lt;br /&gt;
&lt;br /&gt;
Все действия выполняются под пользователем root(&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;сервер 10.160.20.186&amp;lt;/span&amp;gt;, владельцем директорий будет пользователь ''user_dev'', запуск сервиса будет осуществляться из-под пользователя ''user_dev''): &lt;br /&gt;
* '''Переходим в каталог /opt и скачиваем актуальную версию ПО Zookeeper(в нашем случае — 3.4.10) с официального сайта, или, в нашем случае, с ftp://10.160.20.13/Software/'''&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''# cd /opt &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;ftp://Reader_S:7ujmMJU@10.160.20.13:/Software/zookeeper-3.4.10.tar.gz&amp;lt;/nowiki&amp;gt;'''&amp;lt;/span&amp;gt;&lt;br /&gt;
* '''Распаковываем скачанный архив, переименовываем директорию, назначаем владельцем пользователя ''user_dev'' '''&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''# tar xzvf zookeeper-3.4.10.tar.gz &amp;amp;&amp;amp; mv zookeeper-3.4.10 zookeeper &amp;amp;&amp;amp; chown user_dev. -R /opt/zookeeper'''&amp;lt;/span&amp;gt;&lt;br /&gt;
* '''Настраиваем инстанс ''zookeeper'' на сервере''': &lt;br /&gt;
 '''a)''' Добавляем в файл zkEnv.sh строку &amp;quot;. ~/.bash_profile&amp;quot; сразу после строки &amp;quot;#!/usr/bin/env bash&amp;quot; (для упрощения приводится команда [[sed]]):&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;# sed -i &amp;quot;s|#!/usr/bin/env bash|#!/usr/bin/env bash \n . ~/.bash_profile|&amp;quot; /opt/zookeeper/bin/zkEnv.sh&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''b)''' Изменяем параметр ZOO_LOG_DIR в файле zkEnv.sh(для упрощения приводится команда sed):&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;# sed -i &amp;quot;s|ZOO_LOG_DIR=\x22\x2E\x22|ZOO_LOG_DIR=\x22/opt/zookeeper/log\x22|&amp;quot; /opt/zookeeper/bin/zkEnv.sh&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''c)''' Изменяем параметр ZOO_LOG4J_PROP в файле zkEnv.sh(для упрощения приводится команда [[sed]]):&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;# sed -i &amp;quot;s|ZOO_LOG4J_PROP=\x22INFO,CONSOLE\x22|ZOO_LOG4J_PROP=\x22INFO,ROLLINGFILE\x22|&amp;quot; /opt/zookeeper/bin/zkEnv.sh&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''d)''' Создаём директории data и log:&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;#  mkdir -p /opt/zookeeper/{data,log}&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''e)''' Создаём файл myid в директории data и в него помещаем значение 1:&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;# echo '1' &amp;gt; /opt/zookeeper/data/myid&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''f)''' Настраиваем файл /opt/zookeeper/conf/zoo.cfg, далее приведена настройка для сервера 10.160.22.186, который располагается на НК:&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;# echo &amp;gt; /opt/zookeeper/conf/zoo.cfg&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;# cat &amp;gt;&amp;gt;/opt/zookeeper/conf/zoo.cfg &amp;lt;&amp;lt;EOF&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;#   ZooKeeper   node2 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;#.... &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;clientPort=3010 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;#      ZooKeeper &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;dataDir=/opt/zookeeper/data &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;#   ( ) &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;tickTime=2000 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;#.......... &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;initLimit=20 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;#...... &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;syncLimit=10 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;#     ZooKeeper ( ). 0 -  . &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;autopurge.purgeInterval=1 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;#  ,..... &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;autopurge.snapRetainCount=3 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;#     ZooKeeper &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;# : server.number=host:leader_port:election_port[:observer] &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;server.1=10.160.22.186:3001:3002 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;server.2=10.160.22.186:3003:3004 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;server.3=10.160.22.188:3005:3006 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;server.4=10.160.22.188:3007:3008 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;EOF &amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
 '''g)''' Создаём файл сервиса ZooKeeper:&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;# touch /etc/systemd/system/ZooKeeper.service&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''h)''' Редактируем созданный на этапе '''g''') файл:&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;# cat &amp;gt;&amp;gt; /etc/systemd/system/ZooKeeper.service &amp;lt;&amp;lt;EOF&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;[Unit]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Description=Apache Zookeeper server.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Documentation=http://zookeeper.apache.org&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Requires=network.target remote-fs.target.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;After=network.target remote-fs.target&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;br /&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;[Service]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Type=forking&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;User=user_dev&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Group=user_dev&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;ExecStart=/opt/zookeeper/bin/zkServer.sh start&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;ExecStop=/opt/zookeeper/bin/zkServer.sh stop&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;ExecReload=/opt/zookeeper/bin/zkServer.sh restart&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Restart=always&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;br/&amp;gt;		&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;[Install]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;WantedBy=multi-user.target&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;EOF&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;		&lt;br /&gt;
* '''Назначаем владельцем директорий /opt/zookeeper пользователя user_dev:'''&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''#chown user_dev. -R /opt/zookeeper'''&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* '''Добавляем сервис ZooKeeper.service в автозагрузку:'''&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''# systemctl enable ZooKeeper.service&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* '''Запускаем сервисы:'''&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''#systemctl daemon-reload &amp;amp;&amp;amp; systemctl start ZooKeeper.service&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* '''Проверяем статусы сервиса:'''&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''#systemctl status ZooKeeper.service&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
 * ZooKeeper.service - Apache Zookeeper server&lt;br /&gt;
    Loaded: loaded (/etc/systemd/system/ZooKeeper.service; enabled; vendor preset: disabled)&lt;br /&gt;
    Active: active (running) since Пт 2017-07-28 08:44:33 MSK; 1h 2min ago&lt;br /&gt;
     Docs: http://zookeeper.apache.org&lt;br /&gt;
   Process: 2275 ExecStart=/opt/zookeeper/bin/zkServer.sh start (code=exited, status=0/SUCCESS)&lt;br /&gt;
  Main PID: 2290 (java)&lt;br /&gt;
    CGroup: /system.slice/ZooKeeper.service&lt;br /&gt;
            L-2290 java -Dzookeeper.log.dir=/opt/zookeeper/log -Dzookeeper.root.logger=INFO,ROLLINGFILE -cp /o &lt;br /&gt;
  pt/zookeeper/bin/../build/classes:/opt/zookeeper/bin/../build/lib/*.jar:/op...&lt;br /&gt;
 июл 28 08:44:32 VM-V-App-03 systemd[1]: Starting Apache Zookeeper server...&lt;br /&gt;
 июл 28 08:44:32 VM-V-App-03 zkServer.sh[2275]: ZooKeeper JMX enabled by default&lt;br /&gt;
 июл 28 08:44:32 VM-V-App-03 zkServer.sh[2275]: Using config: /opt/zookeeper/bin/../conf/zoo.cfg&lt;br /&gt;
 июл 28 08:44:33 VM-V-App-03 systemd[1]: Started Apache Zookeeper server.&lt;br /&gt;
&lt;br /&gt;
* '''Перезагружаем сервер, после чего проверяем загрузились ли сервисы ZooKeeper'''&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;P.S.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; ==&lt;br /&gt;
'''''Для проверки получения ответа с сервера 10.160.22.186 выполним команды на сервере 10.160.22.188(должен быть инсталлирован netcat):'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''# echo &amp;quot;ruok&amp;quot; | nc 10.160.22.186 3010  ; echo '''&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''# echo &amp;quot;ruok&amp;quot; | nc 10.160.22.186 3020  ; echo '''&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
[http://zookeeper.apache.org Apache Zookeeper Home]&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://apache-mirror.rbc.ru/pub/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz Пакет ПО Zookeeper версии 3.4.10]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://habrahabr.ru/post/144708/ ZooKeeper или пишем сервис распределенных блокировок ]&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://10.160.22.182:9009/scripts/Var_Scripts/blob/master/zk_inst_kbsh_tk2.sh Скрипт первоначальной установки ZooKeeper]&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://10.160.22.182:9009/scripts/Var_Scripts/tree/master Репозиторий со скриптами автоматизации установки ZooKeeper]&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_18_.png&amp;diff=675</id>
		<title>Файл:Orcl inst 18 .png</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_18_.png&amp;diff=675"/>
				<updated>2018-02-15T19:11:20Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_17_.png&amp;diff=674</id>
		<title>Файл:Orcl inst 17 .png</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_17_.png&amp;diff=674"/>
				<updated>2018-02-15T19:11:06Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_16_.png&amp;diff=673</id>
		<title>Файл:Orcl inst 16 .png</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_16_.png&amp;diff=673"/>
				<updated>2018-02-15T19:10:51Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_15_.png&amp;diff=672</id>
		<title>Файл:Orcl inst 15 .png</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_15_.png&amp;diff=672"/>
				<updated>2018-02-15T19:10:36Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_14_.png&amp;diff=671</id>
		<title>Файл:Orcl inst 14 .png</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_14_.png&amp;diff=671"/>
				<updated>2018-02-15T19:10:09Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_13_.png&amp;diff=670</id>
		<title>Файл:Orcl inst 13 .png</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_13_.png&amp;diff=670"/>
				<updated>2018-02-15T19:09:55Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_12_.png&amp;diff=669</id>
		<title>Файл:Orcl inst 12 .png</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_12_.png&amp;diff=669"/>
				<updated>2018-02-15T19:09:41Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_11_.png&amp;diff=668</id>
		<title>Файл:Orcl inst 11 .png</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_11_.png&amp;diff=668"/>
				<updated>2018-02-15T19:09:13Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_10_.png&amp;diff=667</id>
		<title>Файл:Orcl inst 10 .png</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_10_.png&amp;diff=667"/>
				<updated>2018-02-15T19:09:00Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_9_.png&amp;diff=666</id>
		<title>Файл:Orcl inst 9 .png</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_9_.png&amp;diff=666"/>
				<updated>2018-02-15T19:08:47Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_8_.png&amp;diff=665</id>
		<title>Файл:Orcl inst 8 .png</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_8_.png&amp;diff=665"/>
				<updated>2018-02-15T19:08:33Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_7_.png&amp;diff=664</id>
		<title>Файл:Orcl inst 7 .png</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_7_.png&amp;diff=664"/>
				<updated>2018-02-15T19:08:19Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_6_.png&amp;diff=663</id>
		<title>Файл:Orcl inst 6 .png</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_6_.png&amp;diff=663"/>
				<updated>2018-02-15T19:08:03Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_5_.png&amp;diff=662</id>
		<title>Файл:Orcl inst 5 .png</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_5_.png&amp;diff=662"/>
				<updated>2018-02-15T19:07:49Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_4_.png&amp;diff=661</id>
		<title>Файл:Orcl inst 4 .png</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_4_.png&amp;diff=661"/>
				<updated>2018-02-15T19:07:34Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_3_.png&amp;diff=660</id>
		<title>Файл:Orcl inst 3 .png</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_3_.png&amp;diff=660"/>
				<updated>2018-02-15T19:07:03Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	<entry>
		<id>https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_2_.png&amp;diff=659</id>
		<title>Файл:Orcl inst 2 .png</title>
		<link rel="alternate" type="text/html" href="https://wiki.alex-master.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Orcl_inst_2_.png&amp;diff=659"/>
				<updated>2018-02-15T19:06:43Z</updated>
		
		<summary type="html">&lt;p&gt;Vaal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Vaal</name></author>	</entry>

	</feed>