Linux предлагает бесчисленное множество команд и утилит, которые помогут вам быстро и эффективно выполнять задачи системного администрирования.
Ваша работа в качестве системного администратора включает в себя установку и запуск программного обеспечения, управление доступом, мониторинг, обеспечение доступности, резервное копирование, восстановление резервных копий и, конечно же, тушение пожаров. 😜
В этой статье мы рассмотрим некоторые команды, часто используемые системными администраторами Linux в их повседневной работе.
Оглавление
безымянный
Используйте команду uname с флагом -a для вывода информации о системе. Эта команда покажет вам имя ядра, выпуск ядра, версию ядра, имя хоста, тип процессора и информацию о вашей аппаратной платформе.
[email protected]:~$ uname -a Linux ubuntu18 5.3.0-1028-azure #29~18.04.1-Ubuntu SMP Fri Jun 5 14:32:34 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Вот что это означает:
kernel name:Linux hostname: ubuntu18 kernel release: 5.3.0-1028-azure kernel version: #29~18.04.1-Ubuntu SMP Fri Jun 5 14:32:34 UTC 2020 machine hardware name: x86_64 processor: x86_64 hardware-platform: x86_64 operating system: GNU/Linux
дф
Используйте команду df, чтобы проверить размер файловой системы и доступное пространство. Эта команда, используемая сама по себе, показывает вывод в блоках по 1 КБ.
[email protected]:~$ df Filesystem 1K-blocks Used Available Use% Mounted on udev 437208 0 437208 0% /dev tmpfs 91100 692 90408 1% /run /dev/sda1 30309264 2383952 27908928 8% / ....
Опция -h показывает выходные данные в удобочитаемом формате, то есть в МБ и ГБ.
[email protected]:~$ df -h Filesystem Size Used Avail Use% Mounted on udev 427M 0 427M 0% /dev tmpfs 89M 692K 89M 1% /run /dev/sda1 29G 2.3G 27G 8% / tmpfs 445M 0 445M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 445M 0 445M 0% /sys/fs/cgroup /dev/sda15 105M 3.6M 101M 4% /boot/efi /dev/sdb1 3.9G 16M 3.7G 1% /mnt tmpfs 89M 0 89M 0% /run/user/1001
Чтобы игнорировать любую файловую систему, например, tmpfs, то есть для более чистого вывода, используйте флаг -x
[email protected]:~$ df -h -x tmpfs Filesystem Size Used Avail Use% Mounted on udev 427M 0 427M 0% /dev /dev/sda1 29G 2.3G 27G 8% / /dev/sda15 105M 3.6M 101M 4% /boot/efi /dev/sdb1 3.9G 16M 3.7G 1% /mnt
Чтобы перечислить только определенный тип файловой системы, используйте флаг -t. например, чтобы просмотреть только файловую систему ext4:
[email protected]:~$ df -h -t ext4 Filesystem Size Used Avail Use% Mounted on /dev/sda1 29G 2.3G 27G 8% / /dev/sdb1 3.9G 16M 3.7G 1% /mnt
Использование флага total добавит строку, показывающую общие итоги:
[email protected]:~$ df -h -t ext4 --total Filesystem Size Used Avail Use% Mounted on /dev/sda1 29G 2.3G 27G 8% / /dev/sdb1 3.9G 16M 3.7G 1% /mnt <b>total 33G 2.3G 31G 8% -</b>
дю
Чтобы проверить использование дискового пространства в каталоге, используйте команду du. Например, чтобы увидеть использование дискового пространства в каталоге /var/log. Используйте флаг -h для удобочитаемого формата.
[email protected]:~$ sudo du -h /var/log 24K /var/log/Microsoft/Azure/NetworkWatcherAgent/Logs 28K /var/log/Microsoft/Azure/NetworkWatcherAgent 32K /var/log/Microsoft/Azure 36K /var/log/Microsoft 60K /var/log/apt 4.0K /var/log/samba 177M /var/log/journal/0f4f926f583b4691af7de11025b19ff6 177M /var/log/journal ... 204M /var/log
Чтобы увидеть только общее использование, используйте только флаг -s (summary).
[email protected]:~$ sudo du -hs /var/log 204M /var/log
свободно
Используйте команду free, чтобы увидеть общую, используемую и свободную системную память. Используйте флаг -h для удобочитаемого формата.
[email protected]:~$ free -h total used free shared buff/cache available Mem: 889M 272M 100M 712K 517M 443M Swap: 0B 0B 0B
total - Total installed memory (memtotal + swaptotal) used - used memory free - unused memory (memfree + swapfree) buffers - memory used by kernel buffers cache - memory used by page caches buff/cache - sum of buffers and cache available - Estimated memory available for starting new applications, without swapping
PS
Используйте ps для отображения информации о состоянии процессов, запущенных в системе. Чтобы увидеть все процессы, принадлежащие пользователю ubuntu, используйте флаг -u с именем пользователя:
[email protected]:~$ ps -u ubuntu PID TTY TIME CMD 7804 ? 00:00:00 systemd 7805 ? 00:00:00 (sd-pam) 7940 ? 00:00:00 sshd 7941 pts/0 00:00:00 bash 8111 ? 00:00:00 sshd 8112 pts/1 00:00:00 bash 13868 ? 00:00:00 sshd 13869 pts/2 00:00:00 bash 13885 pts/0 00:00:00 man 13895 pts/0 00:00:00 pager 18111 pts/2 00:00:00 man 18121 pts/2 00:00:00 pager 18485 pts/1 00:00:00 ps
Чтобы просмотреть все процессы, запустите ps с дополнительными флагами:
[email protected]:~$ ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.7 160076 7020 ? Ss Jun29 0:34 /sbin/init root 2 0.0 0.0 0 0 ? S Jun29 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? I< Jun29 0:00 [rcu_gp] root 4 0.0 0.0 0 0 ? I< Jun29 0:00 [rcu_par_gp] root 6 0.0 0.0 0 0 ? I< Jun29 0:00 [kworker/0:0H-kb] ....
куда
Заголовок
Значение
ПИД
Идентификационный номер процесса
%ПРОЦЕССОР
Процент процессорного времени, используемого процессом
%МЕМ
Процент использования оперативной памяти процессом
ВСЗ
Используемая виртуальная память в КБ
RSS
Физическая память, используемая процессом в КБ
телетайп
Терминал, связанный с процессом
СТАТИСТИКА
R — работает или готов к работе, S — спящий режим, I — бездействие, T — остановлен, Z — зомби, D — ожидание дискового ввода-вывода, X — не работает, W — заменен, N — процесс с низким приоритетом, < — Процесс с высоким приоритетом
Топ
В то время как команда ps показывает моментальный снимок состояния процессов в любой момент, top показывает постоянно обновляемый (по умолчанию каждые три секунды) список системных процессов в порядке их активности.
Верхний вывод команды состоит из двух основных частей: системной сводки вверху и таблицы процессов, отсортированных по активности процессора.
top - 14:25:32 up 44 days, 11:37, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 114 total, 1 running, 59 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.3 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 910992 total, 101208 free, 274712 used, 535072 buff/cache KiB Swap: 0 total, 0 free, 0 used. 458492 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 50497 ubuntu 20 0 44528 3944 3368 R 0.7 0.4 0:00.15 top 1 root 20 0 160076 7020 4400 S 0.0 0.8 0:34.85 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.08 kthreadd 3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp 4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp 6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:+ 9 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_+
Вот некоторые из полей в системной сводке:
вверх
Время работы. Время с момента последней загрузки машины.
средняя нагрузка
Средняя загрузка относится к количеству процессов, ожидающих запуска, значение меньше 1,0 означает, что машина не занята. Есть 3 значения. Первое — это среднее значение за последние 60 секунд, второе — среднее значение за последние 5 минут, а третье — среднее значение за последние 15 минут.
% ЦП (ы)
В этой строке описываются действия центрального процессора.
0,3 мкс, пользователь
0,3% ЦП используется для пользовательских процессов.
0,0 си, система
0,0% ЦП используется для системных процессов.
0.0 ни, хорошо
0,0% ЦП используется низкоприоритетными (хорошими) процессами
99,7 идентификатор, бездействие
99,7% ЦП простаивает
0.0 wa, IO-ожидание
0,0% ЦП ожидает ввода-вывода
0.0 привет
время, затраченное на аппаратные прерывания
0,0 си
время, потраченное на программные прерывания
0,0 ст
камень времени с этой ВМ гипервизором
Поля таблицы процессов следующие:
ПИД
Идентификационный номер процесса
ПОЛЬЗОВАТЕЛЬ
Владелец процесса
пиар
приоритет
Н.И.
Хорошая ценность
ВИРТ
Используемая процессом виртуальная память (КБ)
ВИЭ
Физическая память, используемая процессом
ШР
Общая память, используемая процессом
С
Статус процесса. R – Работает, S – Спящий режим, I – Бездействие, T – Остановлен, Z – Зомби, D – Ожидание дискового ввода/вывода, W – выгружено, X – не работает
%ПРОЦЕССОР
Процесс процессорного времени использует в процентах
%МЕМ
Процесс физической памяти использует
ВРЕМЯ[+]
Общее время ЦП, используемое процессом
КОМАНДА
Название программы
Во время работы top вы можете выполнить ряд команд. Нажмите h или ? чтобы увидеть команды, которые можно запустить, пока работает top. Нажмите k, чтобы убить процесс. Нажмите q, чтобы выйти наверх.
копать землю
dig — отличный инструмент для DNS-запросов. Он используется следующим образом:
dig <DNS server> <domain> <query-type>
куда
— это имя DNS-сервера, который вы хотите запросить. — это доменное имя, о котором вы хотите запросить — это имя записи, которую вы хотите узнать — A, MX, NS SOA и т. д.
Чтобы подавить подробный вывод, используйте флаг +short.
Чтобы просмотреть запись A для google.com, используйте:
[email protected]:~$ dig google.com +short 172.217.164.174
Чтобы просмотреть записи MX для google.com, используйте:
[email protected]:~$ dig google.com MX +short 50 alt4.aspmx.l.google.com. 10 aspmx.l.google.com. 20 alt1.aspmx.l.google.com. 40 alt3.aspmx.l.google.com. 30 alt2.aspmx.l.google.com.
Если вам нужно запросить записи DNS в Интернете, вы можете использовать инструмент поиска DNS.
кто и ж
который показывает пользователей, которые вошли в систему.
[email protected]:~$ who ubuntu pts/0 2020-08-14 17:28 (183.83.211.129) ubuntu pts/1 2020-08-14 17:58 (183.83.211.129)
w показывает пользователей, которые в настоящее время вошли в систему, и их процессы. Заголовок показывает текущее время, время безотказной работы системы, количество пользователей, вошедших в систему, и среднюю загрузку системы.
[email protected]:~$ w 18:07:33 up 46 days, 15:19, 2 users, load average: 0.00, 0.00, 0.00 USER TTY FROM [email protected] IDLE JCPU PCPU WHAT ubuntu pts/0 183.83.211.129 17:28 2.00s 0.10s 0.00s w ubuntu pts/1 183.83.211.129 17:58 9:07 0.05s 0.01s vi
В следующей части показаны имена пользователей, терминал и удаленный IP-адрес, с которого они вошли в систему, время входа в систему, время простоя, JCPU, PCPU и программа, которую они выполняют. JCPU — это время, используемое всеми процессами, подключенными к tty, тогда как PCPU — это время, используемое текущим процессом.
смола
С помощью GNU tar вы можете архивировать несколько файлов в один файл.
В качестве примера создайте каталог myfiles и три файла a.txt, b.txt, c.txt в каталоге myfiles:
[email protected]:~$ mkdir myfiles ; touch myfiles/{a.txt,b.txt,c.txt}
Теперь, чтобы создать архив с именем allfiles.tar, содержащий все файлы в каталоге myfiles:
[email protected]:~$ tar -cvf allfiles.tar myfiles myfiles/ myfiles/c.txt myfiles/a.txt myfiles/b.txt
Список всех файлов в текущем каталоге. Вы можете увидеть каталог myfiles и архив allfiles.tar:
[email protected]:~$ ls allfiles.tar myfiles
Вы можете распаковать архив с флагом -x. Итак, чтобы распаковать allfiles.tar:
[email protected]:~$ tar -xvf allfiles.tar myfiles/ myfiles/c.txt myfiles/a.txt myfiles/b.txt
Вы также можете сжать этот архив с флагом -z. Это создаст архив, сжатый с помощью gzip.
[email protected]:~$ tar -zcvf allfiles.tar.gz myfiles myfiles/ myfiles/c.txt myfiles/a.txt myfiles/b.txt [email protected]:~$ ls allfiles.tar.gz myfiles
Чтобы распаковать сжатый архив, используйте -z с флагом -x.
[email protected]:~$ tar -zxvf allfiles.tar.gz myfiles/ myfiles/c.txt myfiles/a.txt myfiles/b.txt
grep
grep используется для поиска шаблона в файле или наборе файлов. Он печатает все строки, соответствующие этому шаблону. Например, чтобы найти строку, содержащую «ServerRoot», в файле /etc/apache2/apache2.conf:
[email protected]:~$ grep ServerRoot /etc/apache2/apache2.conf # ServerRoot: The top of the directory tree under which the server's #ServerRoot "/etc/apache2"
Для поиска во всех файлах в каталоге используйте *. Чтобы включить поиск в подкаталогах, используйте флаг -r (рекурсивный). Итак, для поиска всех строк, содержащих шаблон «VirtualHost», во всех файлах в /etc/apache2:
[email protected]:~$ cd /etc/apache2 [email protected]:/etc/apache2$ grep -r VirtualHost * apache2.conf:# If you do not specify an ErrorLog directive within a <VirtualHost> apache2.conf:# logged here. If you *do* define an error logfile for a <VirtualHost> conf-available/localized-error-pages.conf:# even on a per-VirtualHost basis. If you include the Alias in the global server conf-available/other-vhosts-access-log.conf:# Define an access log for VirtualHosts that don't define their own logfile ports.conf:# have to change the VirtualHost statement in sites-available/000-default.conf:<VirtualHost *:80> ...
rsync
rsync — это быстрый инструмент командной строки для синхронизации файлов и каталогов между двумя местоположениями. Может использоваться как для локального, так и для удаленного копирования и является быстрым, поскольку отправляет только различия между исходными файлами и существующими файлами в месте назначения.
Он широко используется для резервного копирования и как улучшенная команда копирования для повседневного использования.
Вот пример:
Чтобы скопировать/rsync все файлы из каталога myfiles в каталог резервных копий:
[email protected]:~$ rsync -avh myfiles/ /backups sending incremental file list ./ a.txt b.txt c.txt sent 218 bytes received 76 bytes 588.00 bytes/sec total size is 0 speedup is 0.00
Чтобы синхронизировать все файлы из каталога myfiles в каталог резервных копий на удаленном хосте, включите remote_user @remote_host в имя назначения. Итак, для rsync папки myfiles на удаленный хост с IP 10.0.0.50:
[email protected]:~$ rsync -avh myfiles/ [email protected]:/home/vagrant [email protected]'s password: sending incremental file list ./ a.txt b.txt c.txt sent 230 bytes received 76 bytes 47.08 bytes/sec total size is 0 speedup is 0.00
SS
Команда ss используется для вывода статистики сокетов, аналогично устаревшей утилите netstat. Для отображения сокетов TCP используйте флаг -t.
[email protected]:~$ ss -t State Recv-Q Send-Q Local Address:Port Peer Address:Port ESTAB 0 0 10.0.0.4:53852 168.63.129.16:8037 ESTAB 0 0 10.0.0.4:ssh 183.83.211.129:64118 ESTAB 0 0 10.0.0.4:33256 169.254.169.254:http ESTAB 0 1080 10.0.0.4:ssh 222.186.30.35:11527 ESTAB 0 0 10.0.0.4:ssh 183.83.211.129:63049
Это не будет отображать прослушиваемые сокеты. Чтобы включить прослушивающие и не прослушивающие сокеты, используйте флаги -t и -a.
[email protected]:~$ ss -t -a State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:ssh 0.0.0.0:* LISTEN 0 80 127.0.0.1:mysql 0.0.0.0:* LISTEN 0 128 127.0.0.53%lo:domain 0.0.0.0:* ESTAB 0 0 10.0.0.4:53852 168.63.129.16:8037 ESTAB 0 0 10.0.0.4:ssh 183.83.211.129:64118 ESTAB 0 0 10.0.0.4:33256 169.254.169.254:http ESTAB 0 1080 10.0.0.4:ssh 222.186.30.35:11527 ESTAB 0 120 10.0.0.4:ssh 183.83.211.129:63049 LISTEN 0 128 [::]:ssh [::]:* LISTEN 0 128 *:http *:*
найти
Команда locate использует базу данных для поиска файлов и на самом деле может быть намного быстрее, чем команда find. Очень прост в использовании, для поиска файла, скажем, apache2.conf:
[email protected]:~$ locate apache2.conf /etc/apache2/apache2.conf /var/lib/dpkg/info/apache2.conffiles
Вы можете использовать флаг -c, если вам нужно только количество файлов, соответствующих шаблону поиска.
[email protected]:~$ locate -c apache2.conf 2
Иногда вам может потребоваться обновить базу данных, используемую локатором, т.е. mlocate. Для обновления базы данных используйте команду updatedb. Для этого потребуются права суперпользователя.
[email protected]:~$ sudo updatedb
найти
Одна из наиболее часто используемых команд в Linux. Используйте его для поиска файлов на основе имен файлов, разрешений, идентификатора пользователя, идентификатора группы, размера, типа файла, помимо других критериев.
Чтобы найти файл по имени в текущем каталоге, используйте флаг -name, за которым следует имя файла для поиска.:
[email protected]:~$ find . -name a.txt ./myfiles/a.txt
Для поиска каталогов используйте флаг -type d:
[email protected]:~$ find . -type d . ./.ssh ./myfiles ./.cache ./.gnupg ./.gnupg/private-keys-v1.d ./docker
Для поиска файлов по размеру, скажем, файлов больше 20 МБ, используйте флаг -size:
[email protected]:~$ find . -size +20M ./docker/docker-ce-cli_5%3a19.03.12~3-0~ubuntu-bionic_amd64.deb ./docker/docker-ce_5%3a19.03.12~3-0~ubuntu-bionic_amd64.deb
systemctl
Теперь, когда systemd заменил процесс инициализации SysV в большинстве дистрибутивов Linux, используйте команду systemctl для управления службами и модулями systemd.
Чтобы запустить службу, например apache2:
[email protected]:~$ sudo systemctl start apache2.service
Вы можете оставить сервисный суффикс.
Чтобы остановить службу:
[email protected]:~$ sudo systemctl stop apache2
Чтобы увидеть статус службы, используйте команду systemctl status. В следующем примере показано состояние apache2 во время его работы:
[email protected]:~$ sudo systemctl status apache2 ● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: active (running) since Wed 2020-08-19 11:34:04 UTC; 2s ago Process: 25346 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS) Process: 18202 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS) Process: 25536 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 25555 (apache2) Tasks: 55 (limit: 1024) CGroup: /system.slice/apache2.service ├─25555 /usr/sbin/apache2 -k start ├─25558 /usr/sbin/apache2 -k start └─25559 /usr/sbin/apache2 -k start Aug 19 11:34:04 ubuntu18 systemd[1]: Starting The Apache HTTP Server... Aug 19 11:34:04 ubuntu18 systemd[1]: Started The Apache HTTP Server.
команда ufw
UFW — несложный брандмауэр — простой в использовании интерфейс для iptables. Он доступен по умолчанию в дистрибутивах на основе Ubuntu. В CentOS вы можете установить ufw из репозитория EPEL.
Чтобы включить УФВ:
$ sudo ufw enable
Проверьте статус брандмауэра с помощью статуса ufw:
$ sudo ufw status Status: active
Политики UFW по умолчанию разрешают весь исходящий трафик и блокируют весь входящий трафик.
Следующая команда разрешает входящий трафик через порт HTTP:
$ sudo ufw allow http Rule added Rule added (v6)
Вы можете запретить трафик на любом порту. Вот пример блокировки трафика на порту 21:
$ sudo ufw deny 21 Rule added Rule added (v6)
журналctl
Используйте journalctl для просмотра журналов, собранных systemd. systemd собирает журнал в центральном месте в двоичном формате. Чтобы просмотреть эти журналы:
[email protected]:~$ sudo journalctl -- Logs begin at Mon 2020-06-29 02:48:31 UTC, end at Wed 2020-08-19 15:07:59 UTC. -- Jun 29 02:48:31 ubuntu kernel: Linux version 5.3.0-1028-azure ([email protected]) (gcc version 7.5.0 (Ubuntu Jun 29 02:48:31 ubuntu kernel: Command line: BOOT_IMAGE=/boot/vmlinuz-5.3.0-1028-azure root=UUID=b0dd9d06-536e-41 Jun 29 02:48:31 ubuntu kernel: KERNEL supported cpus: Jun 29 02:48:31 ubuntu kernel: Intel GenuineIntel ...
В большинстве случаев вы бы предпочли просматривать журналы в обратном порядке, то есть сначала самые последние журналы:
[email protected]:~$ sudo journalctl -r -- Logs begin at Mon 2020-06-29 02:48:31 UTC, end at Wed 2020-08-19 15:10:16 UTC. -- Aug 19 15:10:16 ubuntu18 sudo[31263]: pam_unix(sudo:session): session opened for user root by ubuntu(uid=0) Aug 19 15:10:16 ubuntu18 sudo[31263]: ubuntu : TTY=pts/1 ; PWD=/home/ubuntu ; USER=root ; COMMAND=/bin/journalc Aug 19 15:10:11 ubuntu18 sudo[31213]: pam_unix(sudo:session): session closed for user root Aug 19 15:07:59 ubuntu18 sudo[31213]: pam_unix(sudo:session): session opened for user root by ubuntu(uid=0) Aug 19 15:07:59 ubuntu18 sudo[31213]: ubuntu : TTY=pts/1 ; PWD=/home/ubuntu ; USER=root ; COMMAND=/bin/journalc Aug 19 15:07:56 ubuntu18 sudo[31183]: pam_unix(sudo:session): session closed for user root Aug 19 15:06:47 ubuntu18 sudo[31183]: pam_unix(sudo:session): session opened for user root by ubuntu(uid=0) ...
Для просмотра журналов определенного сервиса, например mysql, используйте флаг -u:
[email protected]:~$ sudo journalctl -u mysql -- Logs begin at Mon 2020-06-29 02:48:31 UTC, end at Wed 2020-08-19 15:11:34 UTC. -- Aug 16 12:30:02 ubuntu18 systemd[1]: Starting MySQL Community Server... Aug 16 12:30:03 ubuntu18 systemd[1]: Started MySQL Community Server. Aug 19 15:03:27 ubuntu18 systemd[1]: Stopping MySQL Community Server... Aug 19 15:03:29 ubuntu18 systemd[1]: Stopped MySQL Community Server.
убить и убить всех
Вам может понадобиться убить запущенный процесс или когда вам нужно освободить некоторые системные ресурсы. kill с флагом -l показывает все сигналы, которые вы можете отправить процессу.
[email protected]:~$ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP ....
Двумя наиболее часто используемыми сигналами являются SIGTERM и SIGKILL. Вы также можете использовать -9 для SIGKILL и -15 для SIGTERM. SIGTERM позволяет завершить процесс до того, как он будет завершен, и поэтому называется программным уничтожением. SIGKILL немедленно завершает процесс. Вот пример:
Список всех процессов apache2
[email protected]:~$ ps aux|grep apache2 root 45521 0.0 0.5 78188 4688 ? Ss Aug08 0:03 /usr/sbin/apache2 -k start www-data 45524 0.0 0.5 830480 4816 ? Sl Aug08 0:00 /usr/sbin/apache2 -k start www-data 45525 0.0 0.7 830480 6856 ? Sl Aug08 0:00 /usr/sbin/apache2 -k start ubuntu 70374 0.0 0.1 14852 1040 pts/0 S+ 07:45 0:00 grep --color=auto apache2
Чтобы убить процесс apache2 с идентификатором процесса 45525:
[email protected]:~$ sudo kill -9 45525
Снова просмотрите список процессов apache2:
[email protected]:~$ ps aux|grep apache2 root 45521 0.0 0.5 78188 4688 ? Ss Aug08 0:03 /usr/sbin/apache2 -k start www-data 45524 0.0 0.5 830480 4816 ? Sl Aug08 0:00 /usr/sbin/apache2 -k start ubuntu 70525 0.0 0.1 14852 1052 pts/0 S+ 07:52 0:00 grep --color=auto apache2
Используйте killall, чтобы убить программу по имени. Это означает, что killall убивает контрольный (родительский) процесс и все дочерние процессы. Чтобы убить все экземпляры процесса apache2 в приведенном выше примере:
[email protected]:~$ sudo killall apache2
Используйте kill и killall с осторожностью. Эти команды могут оставить систему в нестабильном состоянии.
IP
Команда ip заменяет ifconfig в новых дистрибутивах Linux. Используйте его для настройки и отображения сетевых интерфейсов. Также используется для отображения и изменения IP-адресов, маршрутов и объектов-соседей.
Вывести информацию обо всех сетевых интерфейсах:
[email protected]:~$ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:0d:3a:9b:88:d6 brd ff:ff:ff:ff:ff:ff inet 10.0.0.4/24 brd 10.0.0.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::20d:3aff:fe9b:88d6/64 scope link valid_lft forever preferred_lft forever
Чтобы включить или отключить интерфейс, используйте ip link set dev, за которым следует имя устройства. Например, чтобы перевести интерфейс eth0 в онлайн:
[email protected]:~$ ip link set eth0 up
И чтобы сбить его:
[email protected]:~$ ip link set eth0 down
свидание
Очень часто используемая команда, здесь мы рассмотрим несколько интересных способов использования этой команды.
[email protected]:~$ date Tue Aug 11 07:42:49 UTC 2020
Чтобы увидеть дату следующего воскресенья:
[email protected]:~$ date -d 'next sunday' Sun Aug 16 00:00:00 UTC 2020
Чтобы увидеть дату последнего воскресенья:
[email protected]:~$ date -d 'last sunday' Sun Aug 9 00:00:00 UTC 2020
Вы также можете использовать —date вместо флага -d:
[email protected]:~$ date --date="last sunday" Sun Aug 9 00:00:00 UTC 2020
Чтобы посмотреть дату 6 дней назад:
[email protected]ntu18:~$ date --date="6 days ago" Wed Aug 5 08:06:37 UTC 2020
Дата через 6 дней:
[email protected]:~$ date --date="6 days" Mon Aug 17 08:08:37 UTC 2020
Вы можете легко контролировать формат вывода даты. Вот пример:
[email protected]:~$ date '+%d-%B-%Y' 11-August-2020
Резюме
Вы, как системный администратор, поддерживаете работоспособность мировой вычислительной инфраструктуры. Вам необходимо решать проблемы, обслуживать и поддерживать оптимальную работу систем, обеспечивая при этом безопасность.
Надеюсь, эти команды пригодятся и помогут вам лучше выполнять свою работу.
Вот некоторые FTP/SFTP-клиенты и лучшие шпаргалки Vim для разработчиков и системных администраторов.