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 показывает постоянно обновляемый (по умолчанию каждые три секунды) список системных процессов в порядке их активности.

  5 лучших инструментов сетевого мониторинга для Linux

Верхний вывод команды состоит из двух основных частей: системной сводки вверху и таблицы процессов, отсортированных по активности процессора.

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 для разработчиков и системных администраторов.