Linux oferuje niezliczone polecenia i narzędzia, które pomagają szybko i wydajnie wykonywać zadania administracyjne.
Twoja praca jako administratora systemu obejmuje instalowanie i uruchamianie oprogramowania, kontrolowanie dostępu, monitorowanie, zapewnianie dostępności, tworzenie kopii zapasowych, przywracanie kopii zapasowych i oczywiście gaszenie pożarów.
W tym artykule przyjrzymy się niektórym z poleceń często używanych przez administratorów systemu Linux w ich codziennej pracy.
Spis treści:
unname
Użyj polecenia uname z opcją -a, aby wyświetlić informacje o systemie. To polecenie pokaże nazwę jądra, wydanie jądra, wersję jądra, nazwę hosta, typ procesora i informacje o platformie sprzętowej.
[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
Oto, co to oznacza:
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
Użyj polecenia df, aby zweryfikować rozmiar systemu plików i dostępne miejsce. To polecenie używane samodzielnie pokazuje dane wyjściowe w blokach 1K.
[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% / ....
Opcja -h pokazuje dane wyjściowe w formacie czytelnym dla człowieka, czyli w MB i GB.
[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
Aby zignorować dowolny system plików, na przykład tmpfs, czyli czystsze wyjście, użyj flagi -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
Aby wyświetlić tylko określony typ systemu plików, użyj flagi -t. na przykład, aby wyświetlić tylko system plików 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
Użycie flagi sumy spowoduje dodanie linii pokazującej sumy końcowe:
[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
Aby sprawdzić wykorzystanie miejsca na dysku w katalogu, użyj polecenia du. Na przykład, aby zobaczyć wykorzystanie miejsca na dysku w katalogu /var/log. Użyj flagi -h dla formatu czytelnego dla człowieka.
[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
Aby zobaczyć tylko całkowite użycie, użyj tylko flagi -s (podsumowanie).
[email protected]:~$ sudo du -hs /var/log 204M /var/log
darmowy
Użyj darmowego polecenia, aby zobaczyć całkowitą, używaną i wolną pamięć systemową. Użyj flagi -h dla formatu czytelnego dla człowieka.
[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
Użyj ps, aby wyświetlić informacje o stanie procesów uruchomionych w systemie. Aby zobaczyć wszystkie procesy należące do użytkownika ubuntu, użyj flagi -u z nazwą użytkownika:
[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
Aby wyświetlić wszystkie procesy uruchom ps z flagami aux:
[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] ....
gdzie
Nagłówek
Oznaczający
PID
Numer identyfikacyjny procesu
%PROCESOR
Procent czasu procesora używanego przez proces
%MEM
Procent wykorzystania pamięci RAM
VSZ
Pamięć wirtualna używana w KB
RSS
Pamięć fizyczna, z której korzysta proces, w KB
TTY
Terminal związany z procesem
STATYSTYKA
R – W biegu lub gotowy do pracy, S – Uśpiony, I – Bezczynny, T – Zatrzymany, Z – Zombie, D – Oczekiwanie na wejście/wyjście dysku, X – Martwy, W – Zamieniony, N – Proces o niskim priorytecie, < – Proces o wysokim priorytecie
Top
Podczas gdy polecenie ps pokazuje migawkę stanu procesów w dowolnym momencie, top pokazuje stale aktualizowaną (domyślnie co trzy sekundy) listę procesów systemowych w kolejności aktywności procesu.
Dane wyjściowe polecenia top składają się z dwóch głównych części: podsumowania systemu u góry oraz tabeli procesów posortowanych według aktywności procesora.
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_+
Niektóre pola w podsumowaniu systemu to:
w górę
Czas pracy. Czas od ostatniego uruchomienia komputera.
średnie obciążenie
Średnia obciążenia odnosi się do liczby procesów oczekujących na uruchomienie, wartość mniejsza niż 1,0 oznacza, że maszyna nie jest zajęta. Istnieją 3 wartości. Pierwsza to średnia z ostatnich 60 sekund, druga to średnia z ostatnich 5 minut, a trzecia to średnia z ostatnich 15 minut.
% procesorów
Ten wiersz opisuje działania procesora.
0,3 nas, użytkownik
0,3% procesora jest wykorzystywane do procesów użytkownika.
0.0 sy, system
0,0% procesora jest wykorzystywane do procesów systemowych.
0.0 ni, fajnie
0,0% CPU jest używane przez procesy o niskim priorytecie (ładne)
99,7 identyfikatora, bezczynność
99,7% procesor jest bezczynny
0,0 wa, IO-czekaj
0.0% CPU czeka na I/O
0.0 cześć
czas spędzony na przerwaniach sprzętowych
0.0 si
czas spędzony na przerwaniach programowych
0.0 st
kamień czasu z tej maszyny wirtualnej przez hipernadzorcę
Pola tabeli procesów są następujące:
PID
Numer identyfikacyjny procesu
UŻYTKOWNIK
Właściciel procesu
PR
Priorytet
NI
Dobra wartość!
VIRT
Pamięć wirtualna używana przez proces (KB)
OZE
Pamięć fizyczna wykorzystywana przez proces
SHR
Pamięć współdzielona używana przez proces
S
Stan procesu. R – bieganie, S – spanie, I – bezczynność, T – zatrzymanie, Z – zombie, D – oczekiwanie na dyskowe I/O, W- zamienione, X – martwe
%PROCESOR
Proces czasu procesora jest używany w procentach
%MEM
Używany jest proces pamięci fizycznej
CZAS[+]
Całkowity czas procesora używany przez proces
KOMENDA
Nazwa programu
Gdy top jest uruchomiony, możesz wydać kilka poleceń. Naciśnij h lub ? aby zobaczyć polecenia, które można uruchomić, gdy top jest uruchomiony. Naciśnij k, aby zabić proces. Naciśnij q, aby wyjść z góry.
kopać
dig to świetne narzędzie do zapytań DNS. Jest używany w następujący sposób:
dig <DNS server> <domain> <query-type>
gdzie
to nazwa serwera DNS, o który chcesz zapytać to nazwa domeny, o którą chcesz zapytać to nazwa rekordu, który chcesz poznać — A, MX, NS SOA itp.
Aby pominąć pełne wyjście, użyj +krótkiej flagi.
Aby wyświetlić rekord A dla google.com, użyj:
[email protected]:~$ dig google.com +short 172.217.164.174
Aby zobaczyć rekordy MX dla 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.
Jeśli chcesz wyszukiwać rekordy DNS w Internecie, możesz użyć narzędzia wyszukiwania DNS.
kto i kto
który pokazuje zalogowanych użytkowników.
[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 pokazuje aktualnie zalogowanych użytkowników i ich procesy. Nagłówek pokazuje aktualny czas, czas pracy systemu, liczbę zalogowanych użytkowników i średnie obciążenie systemu.
[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
Następna część pokazuje nazwy użytkowników, terminal i zdalny adres IP, z którego są zalogowani, czas logowania, czas bezczynności, JCPU, PCPU i program, z którego korzystają. JCPU to czas używany przez wszystkie procesy podłączone do tty, podczas gdy PCPU to czas używany przez bieżący proces.
smoła
Dzięki GNU tar możesz archiwizować wiele plików w jednym pliku.
Jako przykład utwórz katalog myfiles i trzy pliki a.txt, b.txt, c.txt w katalogu myfiles:
[email protected]:~$ mkdir myfiles ; touch myfiles/{a.txt,b.txt,c.txt}
Teraz utwórz archiwum o nazwie allfiles.tar zawierające wszystkie pliki w katalogu myfiles:
[email protected]:~$ tar -cvf allfiles.tar myfiles myfiles/ myfiles/c.txt myfiles/a.txt myfiles/b.txt
Wyświetl wszystkie pliki w bieżącym katalogu. Możesz zobaczyć katalog myfiles i archiwum allfiles.tar:
[email protected]:~$ ls allfiles.tar myfiles
Możesz rozpakować archiwum z flagą -x. Tak więc, aby rozpakować allfiles.tar:
[email protected]:~$ tar -xvf allfiles.tar myfiles/ myfiles/c.txt myfiles/a.txt myfiles/b.txt
Możesz także skompresować to archiwum za pomocą flagi -z. Spowoduje to utworzenie archiwum skompresowanego gzipem.
[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
Aby rozpakować skompresowane archiwum użyj opcji -z z opcją -x.
[email protected]:~$ tar -zxvf allfiles.tar.gz myfiles/ myfiles/c.txt myfiles/a.txt myfiles/b.txt
grep
grep służy do wyszukiwania wzorca w pliku lub zestawie plików. Wypisuje wszystkie linie pasujące do tego wzoru. Na przykład, aby wyszukać wiersz zawierający „ServerRoot” w /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"
Aby przeszukać wszystkie pliki w katalogu, użyj *. Aby uwzględnić wyszukiwanie w podkatalogach, użyj flagi -r (rekursywne). Tak więc, aby wyszukać wszystkie wiersze zawierające wzorzec „VirtualHost” we wszystkich plikach w /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 to szybkie narzędzie wiersza poleceń do synchronizowania plików i katalogów między dwiema lokalizacjami. Może być używany zarówno do lokalnego, jak i zdalnego kopiowania i jest szybki, ponieważ przesyła tylko różnice między plikami źródłowymi a istniejącymi plikami w miejscu docelowym.
Jest szeroko stosowany do tworzenia kopii zapasowych i jako ulepszone polecenie kopiowania do codziennego użytku.
Oto przykład:
Aby skopiować/rsynchronizować wszystkie pliki z katalogu myfiles do katalogu kopii zapasowych:
[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
Aby zsynchronizować wszystkie pliki z katalogu myfiles z katalogiem kopii zapasowych na zdalnym hoście, należy w nazwie docelowej wpisać użytkownik_zdalny @host_zdalny. Tak więc, aby rsync folder myfiles ze zdalnym hostem o adresie 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
Polecenie ss służy do zrzutu statystyk gniazda, podobnie jak w starszym narzędziu netstat. Aby wyświetlić gniazda TCP, użyj flagi -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
Nie spowoduje to wyświetlenia gniazd, które nasłuchują. Aby uwzględnić zarówno gniazda nasłuchujące, jak i nienasłuchujące, użyj flag -t i -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 *:*
Znajdź
Polecenie locate używa bazy danych do wyszukiwania plików i faktycznie może być znacznie szybsze niż polecenie find. Bardzo prosty w użyciu, aby wyszukać plik, powiedzmy apache2.conf:
[email protected]:~$ locate apache2.conf /etc/apache2/apache2.conf /var/lib/dpkg/info/apache2.conffiles
Możesz użyć flagi -c, jeśli chcesz tylko liczbę plików pasujących do wzorca wyszukiwania.
[email protected]:~$ locate -c apache2.conf 2
Czasami może być konieczne odświeżenie bazy danych używanej przez local, czyli mlocate. Aby zaktualizować bazę danych użyj polecenia updatedb. Wymagałoby to uprawnień superużytkownika.
[email protected]:~$ sudo updatedb
odnaleźć
Jedno z najczęściej używanych poleceń w systemie Linux. Użyj go do wyszukiwania plików na podstawie nazw plików, uprawnień, identyfikatora użytkownika, identyfikatora grupy, rozmiaru, typu pliku, oprócz innych kryteriów.
Aby wyszukać plik według nazwy w bieżącym katalogu, użyj flagi -name, po której następuje nazwa pliku do przeszukania.:
[email protected]:~$ find . -name a.txt ./myfiles/a.txt
Aby wyszukać katalogi, użyj flagi -type d:
[email protected]:~$ find . -type d . ./.ssh ./myfiles ./.cache ./.gnupg ./.gnupg/private-keys-v1.d ./docker
Aby wyszukać pliki według rozmiaru, powiedzmy pliki większe niż 20 MB, użyj flagi -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
systemowy
Teraz, gdy systemd zastąpił proces init SysV w większości dystrybucji Linuksa, użyj polecenia systemctl do zarządzania usługami i jednostkami systemd.
Aby uruchomić usługę, na przykład apache2:
[email protected]:~$ sudo systemctl start apache2.service
Możesz zostawić sufiks usługi.
Aby zatrzymać usługę:
[email protected]:~$ sudo systemctl stop apache2
Aby zobaczyć status usługi, użyj polecenia systemctl status. Poniższy przykład pokazuje stan Apache2 podczas jego działania:
[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.
polecenie ufw
UFW – nieskomplikowany firewall to łatwy w użyciu frontend dla iptables. Jest on domyślnie dostępny w dystrybucjach opartych na Ubuntu. W CentOS możesz zainstalować ufw z repozytorium EPEL.
Aby włączyć ufw:
$ sudo ufw enable
Sprawdź stan zapory ze statusem ufw:
$ sudo ufw status Status: active
Domyślne zasady UFW zezwalają na cały ruch wychodzący i blokują cały ruch przychodzący.
Następujące polecenie zezwala na ruch przychodzący na porcie HTTP:
$ sudo ufw allow http Rule added Rule added (v6)
Możesz zablokować ruch na dowolnym porcie. Oto przykład blokowania ruchu na porcie 21:
$ sudo ufw deny 21 Rule added Rule added (v6)
dziennika
Użyj journalctl, aby wyświetlić dzienniki zebrane przez systemd. systemd zbiera dziennik w centralnej lokalizacji w formacie binarnym. Aby wyświetlić te dzienniki:
[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 ...
Przeważnie wolisz widzieć logi w odwrotnej kolejności, czyli najpierw najnowsze logi:
[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) ...
Aby wyświetlić logi konkretnej usługi, na przykład mysql użyj flagi -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.
zabić i zabić wszystkich
Może być konieczne zabicie niekontrolowanego procesu lub zwolnienie niektórych zasobów systemowych. kill with -l flaga pokazuje wszystkie sygnały, które możesz wysłać do procesu.
[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 ....
Dwa najczęściej używane sygnały to SIGTERM I SIGKILL. Możesz również użyć -9 dla SIGKILL i -15 dla SIGTERM. SIGTERM umożliwia zakończenie procesu przed jego zakończeniem i dlatego nazywa się soft kill. SIGKILL natychmiast kończy proces. Oto przykład:
Wymień wszystkie procesy 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
Aby zabić proces Apache2 z identyfikatorem procesu 45525:
[email protected]:~$ sudo kill -9 45525
Ponownie przejrzyj listę procesów 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
Użyj killall, aby zabić program według nazwy. Oznacza to, że killall zabija proces control(rodzica) i wszystkie procesy potomne. Aby zabić wszystkie instancje procesu Apache2 w powyższym przykładzie:
[email protected]:~$ sudo killall apache2
Używaj kill i killall z rozwagą. Te polecenia mogą pozostawić system w stanie niestabilnym.
IP
Polecenie ip zastępuje ifconfig w nowszych dystrybucjach Linuksa. Użyj go do konfiguracji i wyświetlania interfejsów sieciowych. Służy również do wyświetlania i modyfikowania adresów IP, tras i sąsiednich obiektów.
Wyświetl informacje o wszystkich interfejsach sieciowych:
[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
Aby podnieść lub wyłączyć interfejs, użyj ip link set dev, a następnie nazwę urządzenia. Na przykład, aby udostępnić interfejs eth0 w trybie online:
[email protected]:~$ ip link set eth0 up
I aby to obniżyć:
[email protected]:~$ ip link set eth0 down
data
Bardzo często używane polecenie, tutaj odkrywamy kilka interesujących sposobów korzystania z tego polecenia.
[email protected]:~$ date Tue Aug 11 07:42:49 UTC 2020
Aby zobaczyć datę w następną niedzielę:
[email protected]:~$ date -d 'next sunday' Sun Aug 16 00:00:00 UTC 2020
Aby zobaczyć datę zeszłej niedzieli:
[email protected]:~$ date -d 'last sunday' Sun Aug 9 00:00:00 UTC 2020
Możesz również użyć opcji –date zamiast flagi -d:
[email protected]:~$ date --date="last sunday" Sun Aug 9 00:00:00 UTC 2020
Aby zobaczyć datę sprzed 6 dni:
[email protected]ntu18:~$ date --date="6 days ago" Wed Aug 5 08:06:37 UTC 2020
Data za 6 dni od teraz:
[email protected]:~$ date --date="6 days" Mon Aug 17 08:08:37 UTC 2020
Możesz łatwo kontrolować format wyjściowy daty. Oto przykład:
[email protected]:~$ date '+%d-%B-%Y' 11-August-2020
Streszczenie
Jako administrator systemu dbasz o działanie światowej infrastruktury komputerowej. Musisz rozwiązywać problemy, utrzymywać i utrzymywać systemy w optymalnym działaniu przy jednoczesnym zapewnieniu bezpieczeństwa.
Mam nadzieję, że te polecenia przydadzą się i pomogą lepiej wykonywać swoją pracę.
Oto kilka klientów FTP/SFTP i najlepsze arkusze do ściągania Vima dla programistów i administratora systemu.