Operační systémy Linux nabízejí nespočet příkazů a utilit sysadmin, které pomáhají uživatelům, vývojářům a inženýrům s úkoly správy systému. Například příkazy a balíčky sysadmin mohou uživatelům pomoci optimalizovat nebo spravovat aplikace a poskytovat cenné informace o řešení problémů správcům sítě nebo systémovým správcům.
Tyto příkazy se týkají vývojových prostředí Linuxu, virtuálních počítačů, kontejnerů a holých kovů.
Nejlepší linuxové příkazy pro sysadmin
Tento článek shrnuje některé základní příkazy sysadmin často používané pro správu systému Linux s několika praktickými příklady.
1. Curl
Curl je nástroj příkazového řádku pro přenos dat ze serveru nebo na něj. Podporuje protokoly jako FTP, FTPS, HTTP, HTTPS, IMAP, POP3, POP3S, RTMP, SMBS, SMTP, SMTPS, TELNET atd. Můžete jej použít k testování konektivity nebo koncového bodu k jiné službě, např. databázi.
Odstraňování problémů s chybou HTTP 500:
$ curl -I -s my_app:5000
Zahrňte volbu -I pro zobrazení informací v záhlaví a volbu -s pro ztišení těla odpovědi.
Zkontrolujte koncový bod databáze z vašeho localhost:
$ curl -I -s my_database:27017 HTTP/1.0 200 OK
200 znamená, že vaše připojení vypadá v pořádku.
$ curl my_database:27017 curl: (6) Couldn't resolve host 'database'
Chyba znamená, že vaše aplikace nemůže přeložit databázi buď proto, že adresa URL databáze není k dispozici, nebo hostitelský systém, kontejner nebo virtuální počítač nemá jmenný server pro překlad názvu hostitele.
2. ls
Ls uvádí soubory v adresáři nebo vám může pomoci prozkoumat jejich oprávnění. Můžete jej také použít v infrastruktuře kontejneru k určení adresáře a souborů obrázku kontejneru. Pokud svou aplikaci nemůžete spustit kvůli problému s oprávněními, zkontrolujte oprávnění pomocí ls -l a poté udělte příslušná oprávnění k souboru pomocí chmod. Můžete jej také zkombinovat s parametry jako ls -a pro výpis všech souborů nebo ls -R pro rekurzivní výpis souborů a adresářů.
[tuts@fosslinux dist]$ ls -l -rwxr-xr-x. 1 tuts tuts 7292656 Jun 17 12:54 hello
[tuts@fosslinux hello]$ ls -R
3. chmod
Pomocí příkazu chmod nastavte oprávnění k binárnímu souboru aplikace nebo souboru. Nejprve použijte příkaz ls ke kontrole oprávnění k souboru a poté udělte příslušná oprávnění.
Zkontrolujte oprávnění souboru pomocí ls -l:
[tuts@fosslinux ~]$ ls -l -rw-rw-r--. 1 tuts tuts 6 Jun 24 18:05 dingdong.py
Chcete-li uživatelům umožnit spuštění, zadejte oprávnění k provádění souboru dingdong.py.
[tuts@fosslinux ~]$ chmod +x dingdong.py [tuts@fosslinux ~] ls -l -rwxrwxr-x. 1 tuts tuts 6 Jun 24 18:05 dingdong.py
4. ocas
Tail zobrazuje poslední obsah souboru. Je užitečné, pokud chcete zkontrolovat protokoly nedávných požadavků. Například na svůj server přenesete nejnovější protokoly.
$ sudo tail -f /var/log/httpd/error_log
Volba -f vypisuje řádky protokolu tak, jak jsou zapisovány do souboru. Má skript na pozadí, který přistupuje ke koncovému bodu každých několik sekund, a protokol zaznamenává požadavek. Můžete také omezit určitý počet řádků souboru pomocí volby -n.
$ sudo tail -n 3 /var/log/httpd/error_log
5. grep
Pomocí grep můžete prohledávat soubory a hledat konkrétní vzory a zvýraznit příslušné řádky ve výstupu jiného příkazu Linuxu. Chcete-li například vyhledat řádek „CRITICAL“ v souboru /var/log/dnf.log:
[tuts@fosslinux ~]$ grep CRITICAL Error /var/log/dnf.log
Použijte * pro vyhledávání ve všech souborech v adresáři a parametr -r (rekurzivní) pro zahrnutí vyhledávání v podadresářích.
cd /var/log/ $ grep -r CRITICAL Error *
Výstup můžete také izolovat od příkazu grep propojením výsledku:
$ cat dnf.log | grep CRITICAL Error
6. ps
Příkaz ps se používá k prozkoumání ID procesů a zobrazení stavu běžících procesů. Tento příkaz můžete použít k určení všech spuštěných aplikací.
[tuts@fosslinux log]$ ps -ef
Můžete jej také kombinovat s příkazy pipe a grep
[tuts@fosslinux log]$ ps -ef | grep httpd
Pomocí parametru -u zobrazíte všechny procesy vlastněné uživatelským jménem:
[tuts@fosslinux log]$ ps -u username
Pomocí příznaku aux můžete zobrazit všechny procesy s podrobnými informacemi, jako je PID, procento času CPU, který proces používá (%CPU), procento RAM (%MEM), používaná virtuální paměť (VSZ), fyzická paměť (RSS), a tak dále.
7. nahoře
Horní příkaz zobrazí průběžně aktualizovaný seznam systémových procesů v pořadí podle aktivity procesu. Můžete jej použít k určení, které procesy běží a kolik paměti a CPU spotřebovávají.
Informace na displeji se skládají ze souhrnu systému a tabulky procesů seřazených podle aktivity CPU. Některé informace zahrnují dobu provozuschopnosti systému, průměrnou zátěž, vlastníka procesu (USER), procento času CPU, který proces používá (%CPU), procento RAM, které proces využívá (%MEM), celkový čas procesoru využívaný procesem (TIME[+ ]) a tak dále.
Můžete také zadat několik příkazů, když je spuštěn horní příkaz. Například stiskněte h nebo ? pro zobrazení příkazů, které můžete zadat, k pro ukončení procesu, z pro globální barvy nebo q pro ukončení top.
8. env
Příkaz env se používá k nastavení nebo zobrazení proměnných prostředí. Pomocí env zkontrolujte, zda vaší aplikaci ve spuštění nebrání špatné prostředí.
$ env PYTHON_PIP_VERSION=20.2.2 HOME=/root DB_NAME=my_database PATH=/usr/local/bin:/usr/local/sbin LANG=C.UTF-8 PYTHON_VERSION=3.9.5
9. netstat
netstat zobrazuje stav sítě vašeho systému nebo infrastruktury. Můžete jej použít k zobrazení síťových portů a příchozích připojení. Můžete jej zkombinovat s dalšími možnostmi, jako je protokol, port nebo proces, a předvést tak aktuální porty, které vaše systémové aplikace používají.
# netstat -tulpn
10. ip/ ifconfig
Příkaz ip nahrazuje ifconfig v některých distribucích Linuxu a může konfigurovat nebo zobrazovat síťová rozhraní a upravovat IP adresy, sousední objekty a trasy. Můžete jej také použít k ověření IP adresy hostitele nebo kontejneru.
Pro zobrazení informací o všech síťových rozhraních použijte „ip a“ (adresa):
[tuts@fosslinux]$ ip a
Pomocí příkazu ‘ip link set device_name’ přesuňte rozhraní nahoru nebo dolů:
[tuts@fosslinux]$ ip link set eth0 up #bring up [tuts@fosslinux]$ ip link set eth0 down #bring down
11. df
Použijte příkaz df (zobrazit volné místo na disku) k ověření velikosti souborového systému a řešení problémů s místem na disku. Je to užitečné ve scénářích, kdy se zobrazí chybová zpráva signalizující nedostatek volného místa ve vašem systému na hostiteli kontejneru.
[tuts@fosslinux ~]$ df -h
Parametr -h zobrazuje informace ve formátu čitelném pro člověka (tj. MB a GB). Ve výchozím nastavení příkaz df zobrazuje výsledky pro každého uživatele v kořenovém adresáři. Můžete však omezit zobrazení na konkrétní adresář (tj. df -h/tmp)
Použijte parametr -x k ignorování jakéhokoli souborového systému:
[tuts@fosslinux ]$ df -h -x tmpfs
Pomocí parametru -t vypíšete pouze konkrétní typ souborového systému. Například souborový systém btrfs pouze pro zobrazení:
[tuts@fosslinux ]$ df -h -t btrfs
Pomocí příznaku –total zobrazíte celkové součty:
[tuts@fosslinux ]$ df -h -t btrfs --total
12. du
Pomocí příkazu du zobrazíte podrobné informace o tom, které soubory využívají místo na disku v adresáři. Považuji to za užitečné při určování, které protokoly zabírají nejvíce místa. Například spusťte příkaz du s parametrem -h (čitelný pro člověka) a -s (souhrn):
[tuts@fosslinux ~]$ sudo du -h /var/log
[tuts@fosslinux ~]$ sudo du -hs /var/log 1.5G /var/log
13. dig/ nslookup
dig je skvělý nástroj příkazového řádku pro provádění dotazů DNS. Používá se v následujícím formátu:
dig <DNS server> <domain> <query-type>
Zobrazení záznamu A pro bing.com:
[tuts@fosslinux ~]$ dig bing.com +short 13.107.21.200 204.79.197.200
Zobrazení MX záznamu bing.com:
[tuts@fosslinux ~]$ dig bing.com MX +short 10 bing-com.mail.protection.outlook.com.
14. firewall-cmd
Firewall-cmd je uživatelsky přívětivý front-end pro nftables a dodávané s mnoha distribucemi. Umožňuje uživatelům nastavit pravidla pro řízení odchozího i příchozího síťového provozu do vašeho počítače. Tato pravidla lze seskupit do zón, které definují úrovně důvěryhodnosti síťového zabezpečení síťových rozhraní, služeb nebo připojení. Funguje s IPv4, IPv6, sadami IP a ethernetovými mosty a nabízí přímou a intuitivní syntaxi příkazů.
Zobrazení aktuální zóny brány firewall:
[tuts@fosslinux ~]$ sudo firewall-cmd --get-active-zones libvirt interfaces: virbr0
Přidejte příznak –list-all, abyste viděli, co jednotlivé zóny povolují:
[tuts@fosslinux ~]$ sudo firewall-cmd --zone libvirt --list-all
Chcete-li přidat službu:
$ sudo firewall-cmd --add-service http --permanent $ sudo firewall-cmd –reload
Pokud se zabezpečením sítě začínáte, můžete si přečíst naši komplexní příručku o správě zabezpečení sítě pomocí brány firewall, kde najdete další příklady a triky.
15. systemctl
systemd je k dispozici ve většině distribucí Linuxu, takže příkaz systemctl je dostupný pro správu služeb a jednotek systemd.
Spuštění služby:
[tuts@fosslinux ~]$ sudo systemctl start httpd
Zastavení služby:
[tuts@fosslinux ~]$ sudo systemctl stop httpd
Chcete-li zkontrolovat stav služby.
16. zabíjet a zabíjet
Příkazy kill a killall můžete použít k ukončení běžícího procesu nebo k uvolnění některých systémových prostředků. Procesu můžete poslat signál SIGTERM (-15) nebo SIGKILL (-9), abyste proces ukončili. SIGTERM (soft kill) umožňuje dokončit systémový proces před jeho ukončením. SIGKILL okamžitě ukončí proces.
Použijte kill s parametrem -l k zobrazení všech signálů, které můžete poslat procesu.
[tuts@fosslinux ~]$ kill -l
Chcete-li proces zabít, určete jeho ID procesu a poté zadejte příkaz kill.
[tuts@fosslinux ~]$ ps aux|grep httpd
Chcete-li zabít proces httpd s ID procesu 1525:
[tuts@fosslinux ~]$ sudo kill -9 1525
Použijte killall k ukončení programu podle jména. Zabije nadřazený proces a všechny podřízené procesy.
[tuts@fosslinux ~]$ sudo killall httpd
Poznámka:Příkazy kill a killall používejte opatrně, protože by mohly poškodit nebo nechat váš systém v nestabilním stavu.
17. historie
Příkaz historie zobrazuje historii všech příkazů, které jste použili v relaci. Můžete jej například použít k protokolování příkazů, které jste použili při odstraňování problémů s aplikací nebo systémem.
[tuts@fosslinux ~]$ history 790 sudo firewall-cmd --get-active-zones 791 sudo firewall-cmd --zone libvirt --list-all 792 history
Použijte ! s číslem příkazu pro jeho opětovné provedení, aniž byste jej museli znovu zadávat.
[tuts@fosslinux ~]$ !790 sudo firewall-cmd --get-active-zones libvirt interfaces: virbr0
Koneckonců
Pochopení některých základních příkazů správce systému vám může pomoci při odstraňování problémů s aplikacemi, řešení problémů, udržování optimálního chodu systémů, zajišťování zabezpečení systému nebo vám dokonce může pomoci efektivně komunikovat se správci systému při řešení problémů ve vaší infrastruktuře.
Doufám, že se vám tyto příkazy budou hodit!