Запуск команд в фоновом режиме
Синтаксис
Задачу (например, команду или скрипт) можно перевести в фоновый режим, добавив символ «&» в конец командной строки. Этот оператор переводит команду в фоновый режим и освобождает место в терминале. Команда, выполняемая в фоновом режиме, называется заданием. Во время работы фоновой команды можно выполнять любые другие команды. Синтаксис выглядит следующим образом:
Чтобы перевести команду ls в фоновый режим, введите:
Чтобы перевести следующую команду поиска в фоновый режим, добавьте символ «&» в конец командной строки:
Как найти задания, работающие в фоновом режиме?
Выполните следующую команду:
Пример вывода данных:
[1] и [2] идентификаторы заданий.
Чтобы отобразить идентификаторы процессов для идентификаторов заданий помимо стандартных сведений, передайте параметр -l:
Пример вывода данных:
Пример вывода данных:
7307
7324
Как прекратить выполнение заданий, работающих в фоновом режиме?
Для принудительного или постепенного завершения процесса следует использовать команду kill. Синтаксис выглядит следующим образом:
Как переместить процесс из фонового режима в приоритетный?
Синтаксис:
ИЛИ
Сначала следует вывести список текущих заданий с помощью команды jobs. Для этого введите:
jobs -l
Пример вывода данных:
Чтобы перевести задание job id #2 в приоритетный режим, введите:
ИЛИ используйте команду:
Пример вывода данных:
Чтобы перевести это задание обратно в фоновый режим, нажмите клавишу Z, удерживая клавишу CTRL. При этом выполнение текущего приоритетного задания будет приостановлено. Введите следующую команду, чтобы перевести задание в фоновый режим:
ИЛИ используйте команду:
Теперь командное задание grep будет работать в фоновом режиме.
👉@linuxchmod
Синтаксис
Задачу (например, команду или скрипт) можно перевести в фоновый режим, добавив символ «&» в конец командной строки. Этот оператор переводит команду в фоновый режим и освобождает место в терминале. Команда, выполняемая в фоновом режиме, называется заданием. Во время работы фоновой команды можно выполнять любые другие команды. Синтаксис выглядит следующим образом:
command & script-name & /path/to/command arg1 arg2 & command-1 | command-2 arg1 & command-1 | command-2 -arg1 -arg2 >/path/to/output &
ПримерыЧтобы перевести команду ls в фоновый режим, введите:
$ ls *.py > output.txt &
Чтобы перевести следующую команду поиска в фоновый режим, добавьте символ «&» в конец командной строки:
find . -iname "*.mp3" > myplaylist.txt &
Как найти задания, работающие в фоновом режиме?
Выполните следующую команду:
jobs
Пример вывода данных:
[1]- Running find / -iname "*.c" 2> /dev/null > /tmp/output.txt &
[2]+ Running grep -R "hostNamed" / 2> /dev/null > /tmp/grep.txt &
Где[1] и [2] идентификаторы заданий.
Чтобы отобразить идентификаторы процессов для идентификаторов заданий помимо стандартных сведений, передайте параметр -l:
jobs –l
Пример вывода данных:
[1]- 7307 Running find / -iname "*.c" 2> /dev/null > /tmp/output.txt &
[2]+ 7324 Running grep -R "hostNamed" / 2> /dev/null > /tmp/grep.txt &
Чтобы отобразить только идентификаторы процессов, введите:jobs -p
Пример вывода данных:
7307
7324
Как прекратить выполнение заданий, работающих в фоновом режиме?
Для принудительного или постепенного завершения процесса следует использовать команду kill. Синтаксис выглядит следующим образом:
kill PID
kill -15 PID
kill -9 PID
killall process-Name-Here
killall -15 process-Name-Here
killall -9 process-Name-Here
Как переместить процесс из фонового режима в приоритетный?
Синтаксис:
%JOB-ID
ИЛИ
fg JOB-ID
Сначала следует вывести список текущих заданий с помощью команды jobs. Для этого введите:
jobs -l
Пример вывода данных:
[1]- 7307 Running find / -iname "*.c" 2> /dev/null > /tmp/output.txt &
[2]+ 7324 Running grep -R "hostNamed" / 2> /dev/null > /tmp/grep.txt &
Чтобы перевести задание job id #2 в приоритетный режим, введите:
%2
ИЛИ используйте команду:
fg 2
Пример вывода данных:
grep -R "hostNamed" / 2> /dev/null > /tmp/grep.txt
Чтобы перевести это задание обратно в фоновый режим, нажмите клавишу Z, удерживая клавишу CTRL. При этом выполнение текущего приоритетного задания будет приостановлено. Введите следующую команду, чтобы перевести задание в фоновый режим:
%2 &
ИЛИ используйте команду:
bg
Теперь командное задание grep будет работать в фоновом режиме.
👉@linuxchmod
👍4
🕵️
🔧 Примеры, которые реально полезны:
1️⃣ Кто слушает порт 443:
📌
2️⃣ Все открытые соединения от процесса (например, PID 1234):
3️⃣ Список соединений в состоянии
4️⃣ Сколько вообще активных соединений:
💡 Фишка:
Для UDP аналогично — просто меняем
👉@linuxchmod
ss
вместо netstat
: как быстро найти, что слушает портnetstat
давно устарел и не показывает точную картину на системах с systemd
. Настоящие профи уже давно используют ss
.🔧 Примеры, которые реально полезны:
1️⃣ Кто слушает порт 443:
ss -ltnp 'sport = :443'
📌
-l
— только слушающие, -t
— TCP, -n
— не резолвим имена, -p
— покажи PID/имя процесса.2️⃣ Все открытые соединения от процесса (например, PID 1234):
ss -pant | grep pid=1234
3️⃣ Список соединений в состоянии
ESTABLISHED
:
ss -ant state established
4️⃣ Сколько вообще активных соединений:
ss -s
💡 Фишка:
ss
быстрее и точнее netstat
, т.к. работает через netlink
. Особенно это критично на серверах с тысячами соединений.Для UDP аналогично — просто меняем
-t
на -u
.👉@linuxchmod
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
aafire
Как установить libaa-bin в Ubuntu / Debian
sudo apt update
sudo apt install libaa-bin
Примеры программ с использованием aalib
https://aa-project.sourceforge.net/aalib/
👉@linuxchmod
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5⚡1
This media is not supported in your browser
VIEW IN TELEGRAM
Netdata - это высокоточный мониторинг инфраструктуры и производительности в режиме реального времени.
200+ предварительно созданных интеграций
Интеграция со все большим количеством операционных систем, коллекторов, платформ уведомлений и цепочек инструментов мониторинга/наблюдения.
Если метрика может быть собрана, она будет собрана: с 2 000+ автоопределяемых метрик и 100+ предварительно настроенных предупреждений на каждый узел.
https://github.com/netdata/netdata
👉@linuxchmod
200+ предварительно созданных интеграций
Интеграция со все большим количеством операционных систем, коллекторов, платформ уведомлений и цепочек инструментов мониторинга/наблюдения.
Если метрика может быть собрана, она будет собрана: с 2 000+ автоопределяемых метрик и 100+ предварительно настроенных предупреждений на каждый узел.
https://github.com/netdata/netdata
👉@linuxchmod
👍2
Скриптик переустановки пароля пользователя MikroTik
Скрипт интересен строкой преобразования кода символа из переменной
👉@linuxchmod
# Скрипт смены пароля пользователя
# только для исполнения в терминале ROS
# by Sertik 09/06/2020
{
:global EnterString do={
:local cont 0; :local string ""
:while ($cont!=13) do={
:local key ([:terminal inkey])
:if ($key!=13) do={
:local char [[:parse "(\"\\$[:pick "0123456789ABCDEF" (($key >> 4) & 0xF)]$[:pick "0123456789ABCDEF" ($key & 0xF)]\")"]]
:set string ("$string"."$char")}
:set cont $key
}
:return $string}
;
:put "Please, enter Username:"
:local RegUser [$EnterString];
:put "";
:if ([:len [/user find disabled=no name=$RegUser]]!=0) do={:put "Ok, a user with this name was found"; :put "";
:put "Please, enter new password for this user:"
:local newPass [$EnterString];
[/user remove $RegUser];
[/user add name=$RegUser password=$newPass group=full];
:put "";
:put "The user has been re-created, the password has been changed";
:put ("New user`s password: "."$newPass");
:put "Don't forget to set up access restrictions based on ip addresses";
} else={:put ("User "."$RegUser "."not found"); :put "";
}
}
Скрипт интересен строкой преобразования кода символа из переменной
$key
, сграбленного с клавиатуры терминала, в сам символ.:local char [[:parse "(\"\\$[:pick "0123456789ABCDEF" (($key >> 4) & 0xF)]$[:pick "0123456789ABCDEF" ($key & 0xF)]\")"]]
👉@linuxchmod
👍2
Badblocks — команда для поиска и исправления поврежденных секторов на жестких дисках
Команда badblocks предназначена для поиска и исправления поврежденных секторов на жестких дисках. На сегодняшний день она в некоторой степени утратила свою актуальность из-за того, что современные жесткие диски осуществляют переназначение поврежденных секторов в автоматическом режиме сразу же после возникновения ошибок, связанных с чтением или записью данных. Тем не менее, она может использоваться для активации упомянутого механизма переназначения секторов, так как при работе в основном режиме она осуществляет посектороное чтение данных с жесткого диска, которое позволяет жесткому диску выявить и переназначить поврежденные сектора.
Предупреждение: не используйте рассматриваемую команду, если не до конца уверены в правильности своих действий или не понимаете сути происходящих процессов, ведь в результате даже незначительной ошибки вы можете лишиться всех хранящихся на диске данных. Кроме того, не пытайтесь использовать эту команду по отношению к смонтированному разделу или к диску с со смонтирнованными разделами, ведь в этом случае последствия будут непредсказуемыми.
Перед использованием badblocks необходимо определиться с жестким диском или его разделом, на котором нужно искать поврежденные сектора. Для этого может использоваться команда lsblk:
В данном случае в столбце NAME будут выводиться имена файлов устройств накопителей и их разделов (для обозначения разделов используется дополнительная нумерация), в столбце FSTYPE - названия созданных в разделах файловых систем, в столбце LABEL - метки разделов, в столбце MOUNTPOINT - пути к точкам монтирования файловых систем, а в столбце MODEL - информация о моделях устройств.
Базовый синтаксис команды:
Параметр -v используется для вывода информации о ходе процесса проверки жесткого диска.
Если вам по какой-либо причине понадобится запретить использование поврежденных секторов на уровне файловой системы вы всегда можете сохранить список этих секторов и передать его утилите e2fsck. Это делается следующим образом:
Однако, в большинстве случаев будет достаточно однокртного посектороного чтения данных из раздела или со всего устройства.
Примеры использования
1. Выбор раздела жесткого диска для проверки
Выберем раздел с корневой файловой сситемой дистрибутива Debian (с соотвествующей меткой), который в данный момент не смонтирован. Ему соответствует файл устройства sdb2.
2. Проверка выбранного раздела на наличие поврежденных секторов
Очевидно, что в ходе проверки раздела поврежденных секторов не было обнаружено.
👉@linuxchmod
Команда badblocks предназначена для поиска и исправления поврежденных секторов на жестких дисках. На сегодняшний день она в некоторой степени утратила свою актуальность из-за того, что современные жесткие диски осуществляют переназначение поврежденных секторов в автоматическом режиме сразу же после возникновения ошибок, связанных с чтением или записью данных. Тем не менее, она может использоваться для активации упомянутого механизма переназначения секторов, так как при работе в основном режиме она осуществляет посектороное чтение данных с жесткого диска, которое позволяет жесткому диску выявить и переназначить поврежденные сектора.
Предупреждение: не используйте рассматриваемую команду, если не до конца уверены в правильности своих действий или не понимаете сути происходящих процессов, ведь в результате даже незначительной ошибки вы можете лишиться всех хранящихся на диске данных. Кроме того, не пытайтесь использовать эту команду по отношению к смонтированному разделу или к диску с со смонтирнованными разделами, ведь в этом случае последствия будут непредсказуемыми.
Перед использованием badblocks необходимо определиться с жестким диском или его разделом, на котором нужно искать поврежденные сектора. Для этого может использоваться команда lsblk:
# lsblk -o NAME,FSTYPE,LABEL,MOUNTPOINT,MODEL
NAME FSTYPE LABEL MOUNTPOINT MODEL
...
В данном случае в столбце NAME будут выводиться имена файлов устройств накопителей и их разделов (для обозначения разделов используется дополнительная нумерация), в столбце FSTYPE - названия созданных в разделах файловых систем, в столбце LABEL - метки разделов, в столбце MOUNTPOINT - пути к точкам монтирования файловых систем, а в столбце MODEL - информация о моделях устройств.
Базовый синтаксис команды:
# badblocks -v /dev/<имя файла раздела или устройства>
Параметр -v используется для вывода информации о ходе процесса проверки жесткого диска.
Если вам по какой-либо причине понадобится запретить использование поврежденных секторов на уровне файловой системы вы всегда можете сохранить список этих секторов и передать его утилите e2fsck. Это делается следующим образом:
# badblocks -v /dev/<имя файла раздела или устройства> > /tmp/badblocks.txt
# e2fsck -l /tmp/bad-blocks.txt /dev/<имя файла раздела или устройства>
# rm /tmp/badblocks.txt
Однако, в большинстве случаев будет достаточно однокртного посектороного чтения данных из раздела или со всего устройства.
Примеры использования
1. Выбор раздела жесткого диска для проверки
# lsblk -o NAME,FSTYPE,LABEL,MOUNTPOINT,MODEL
NAME FSTYPE LABEL MOUNTPOINT MODEL
sdb MAXTOR STM316081
├─sdb4 ext4 home /home
├─sdb2 ext4 Debian
└─sdb1 swap
...
Выберем раздел с корневой файловой сситемой дистрибутива Debian (с соотвествующей меткой), который в данный момент не смонтирован. Ему соответствует файл устройства sdb2.
2. Проверка выбранного раздела на наличие поврежденных секторов
# badblocks -v /dev/sdb2
Checking blocks 0 to 12697599
Checking for bad blocks (read-only test): done
Pass completed, 0 bad blocks found. (0/0/0 errors)
Очевидно, что в ходе проверки раздела поврежденных секторов не было обнаружено.
👉@linuxchmod
👍3
Наиболее распространенные оболочки
🔹Текстовые оболочки
Bash (оболочка типичная для систем GNU/Linux)
Bourne оболочки (оболочка из первых систем Unix)
C оболочки (оболочки популярные на Unix)
Z оболочки (известный как Zsh)
Korn оболочки (системы оболочки , обычно доступные на Unix)
Debian Альмквист оболочки (оболочки , используемый в Debian и производных для запуска системных скриптов)
cmd.exe (оболочка операционных систем семейства Windows NT)
command. com (оболочка операционной системы MS-DOS и некоторых системах Microsoft Windows)
Windows PowerShell (Advanced Shell для систем Microsoft Windows)
🔹Графические оболочки
GNOME (что характерно для GNU / Linux и Solaris 10)
KDE (что характерно для GNU/ Linux)
Xfce (что характерно для систем GNU / Linux)
Common Desktop Environment (как правило, доступны для систем Unix)
Finder (оболочка систем Mac OS )
File Explorer оболочка системы Microsoft Windows)
Unity (Official оболочка Ubuntu)
👉@linuxchmod
🔹Текстовые оболочки
Bash (оболочка типичная для систем GNU/Linux)
Bourne оболочки (оболочка из первых систем Unix)
C оболочки (оболочки популярные на Unix)
Z оболочки (известный как Zsh)
Korn оболочки (системы оболочки , обычно доступные на Unix)
Debian Альмквист оболочки (оболочки , используемый в Debian и производных для запуска системных скриптов)
cmd.exe (оболочка операционных систем семейства Windows NT)
command. com (оболочка операционной системы MS-DOS и некоторых системах Microsoft Windows)
Windows PowerShell (Advanced Shell для систем Microsoft Windows)
🔹Графические оболочки
GNOME (что характерно для GNU / Linux и Solaris 10)
KDE (что характерно для GNU/ Linux)
Xfce (что характерно для систем GNU / Linux)
Common Desktop Environment (как правило, доступны для систем Unix)
Finder (оболочка систем Mac OS )
File Explorer оболочка системы Microsoft Windows)
Unity (Official оболочка Ubuntu)
👉@linuxchmod
👍4
Текстовый интерфейс пользователя (RHCSA)
Стандартные потоки (RHCSA)
Создание backup скрипта (RHCSA)
Инкрементальные бэкапы с tar
Глоббинг и регулярные выражения (RHCSA)
источник
👉@linuxchmod
Стандартные потоки (RHCSA)
Создание backup скрипта (RHCSA)
Инкрементальные бэкапы с tar
Глоббинг и регулярные выражения (RHCSA)
источник
👉@linuxchmod
👍2
👍2
Объединение файлов командой cat
Команду cat в большинстве случаев используют только для просмотра файлов. На самом деле одно из ее предназначений это конкатенация (объединение) файлов. А название команды происходит от слова catenate (сцепить), то есть присоединение одного после другого.
Под объединением файлов понимается их соединение. Например, если мы имеем два текстовых файла и в одном из них записана строка:
А в другом:
То после объединения мы получим файл с двумя строками:
То есть происходит простое соединение файлов. К содержимому одного добавляется содержимое другого. Это касается не только текстовых файлов, но и всех остальных (бинарных, например).
Чтобы объединить два файла командой cat нужно просто указать в качестве аргументов названия этих файлов и направить результат выполнения в новый файл. Например, мы хотим объединить два файла file1 и file2, а результат записать в новый файл file12. Тогда мы должны выполнить следующую команду:
Вы можете объединить неограниченное количество файлов. Например, чтобы объединить четыре файла и записать результат в файл myfile, выполните команду:
👉@linuxchmod
Команду cat в большинстве случаев используют только для просмотра файлов. На самом деле одно из ее предназначений это конкатенация (объединение) файлов. А название команды происходит от слова catenate (сцепить), то есть присоединение одного после другого.
Под объединением файлов понимается их соединение. Например, если мы имеем два текстовых файла и в одном из них записана строка:
My text file 1
А в другом:
My text file 2
То после объединения мы получим файл с двумя строками:
My text file 1
My text file 2
То есть происходит простое соединение файлов. К содержимому одного добавляется содержимое другого. Это касается не только текстовых файлов, но и всех остальных (бинарных, например).
Чтобы объединить два файла командой cat нужно просто указать в качестве аргументов названия этих файлов и направить результат выполнения в новый файл. Например, мы хотим объединить два файла file1 и file2, а результат записать в новый файл file12. Тогда мы должны выполнить следующую команду:
cat file1 file2 > file12
Вы можете объединить неограниченное количество файлов. Например, чтобы объединить четыре файла и записать результат в файл myfile, выполните команду:
cat file1 file2 file3 file4 > myfile
👉@linuxchmod
👍3⚡1🔥1