Když testuji software na Linuxu (běžná součást mé práce), potřebuji používat více serverů s různými architekturami, na kterých běží Linux. Poskytnu stroje, nainstaluji požadované softwarové balíčky, spustím své testy, shromáždím výsledky a vrátím stroj do fondu, aby ho ostatní mohli používat pro své testy.
Další zdroje pro Linux
- Cheat pro příkazy Linuxu
- Cheat sheet pro pokročilé příkazy systému Linux
- Bezplatný online kurz:Technický přehled RHEL
- Síťový cheat pro Linux
- Cheat sheet SELinux
- Cheat pro běžné příkazy pro Linux
- Co jsou kontejnery systému Linux?
- Naše nejnovější články o Linuxu
Vzhledem k tomu, že to dělám tak často (dokonce několikrát denně), mých prvních 10 minut na linuxovém serveru se stalo každodenním rituálem. Když se poprvé přihlásím na linuxový server, hledám určité věci pomocí příkazů, abych shromáždil informace, které potřebuji. V tomto článku projdu svým postupem, ale mějte na paměti, že ve většině případů uvedu pouze název příkazu, takže budete muset určit konkrétní příznaky pro tyto příkazy, abyste získali informace, které potřebujete. Čtení manuálových stránek pro příkazy je dobrým výchozím bodem.
1. První kontakt
Jakmile se přihlásím k serveru, první věc, kterou udělám, je zkontrolovat, zda má operační systém, jádro a hardwarovou architekturu potřebnou pro testy, které budu spouštět. Často kontroluji, jak dlouho je server v provozu. I když to u testovacího systému není příliš důležité, protože se bude několikrát restartovat, stále považuji tyto informace za užitečné.
K získání těchto informací použijte následující příkazy. K testování většinou používám Red Hat Linux, takže pokud používáte jinou distribuci Linuxu, použijte *-release
v názvu souboru místo redhat-release
:
cat /etc/redhat-release
uname -a
hostnamectl
doba provozu
2. Je na palubě ještě někdo?
Jakmile vím, že stroj vyhovuje mým testovacím potřebám, musím zajistit, aby nebyl nikdo jiný přihlášen do systému ve stejnou dobu, kdy spouštějí své vlastní testy. I když je to vysoce nepravděpodobné, vzhledem k tomu, že se o to postará systém pro zřizování, je stále dobré to jednou za čas zkontrolovat – zvláště pokud se na server přihlašuji poprvé. Také zkontroluji, zda existují další uživatelé (jiní než root), kteří mají přístup k systému.
K vyhledání těchto informací použijte následující příkazy. Poslední příkaz hledá uživatele v /etc/passwd
soubor, který má přístup k shellu; přeskočí další služby v souboru, které nemají přístup k shellu nebo mají shell nastavený na nologin
:
kdo
kdo -Hu
grep sh$ /etc/passwd
3. Fyzický nebo virtuální stroj
Nyní, když vím, že mám stroj pro sebe, musím identifikovat, zda se jedná o fyzický stroj nebo virtuální stroj (VM). Pokud bych si stroj zajistil sám, mohl bych si být jistý, že mám, co jsem požadoval. Pokud však používáte počítač, který jste neposkytli, měli byste zkontrolovat, zda je počítač fyzický nebo virtuální.
K identifikaci těchto informací použijte následující příkazy. Pokud se jedná o fyzický systém, uvidíte jméno dodavatele (např. HP, IBM atd.) a značku a model serveru; zatímco ve virtuálním počítači byste měli vidět KVM, VirtualBox atd. v závislosti na tom, jaký virtualizační software byl použit k vytvoření virtuálního počítače:
dmidecode -s systém-výrobce-systému
dmidecode -s systém-název-produktu
lshw -c systém | grep produkt | hlava -1
kočka /sys/class/dmi/id/název_produktu
kočka /sys/class/dmi/id/sys_vendor
4. Hardware
Protože často testuji hardware připojený k počítači se systémem Linux, obvykle pracuji s fyzickými servery, nikoli s virtuálními počítači. Na fyzickém počítači je mým dalším krokem identifikace hardwarových schopností serveru – například jaký typ CPU běží, kolik má jader, které příznaky jsou povoleny a kolik paměti je k dispozici pro provádění testů. Pokud spouštím síťové testy, zkontroluji typ a kapacitu ethernetu nebo jiných síťových zařízení připojených k serveru.
Pomocí následujících příkazů zobrazíte hardware připojený k serveru Linux. Některé z příkazů mohou být v novějších verzích operačního systému zastaralé, ale stále je můžete nainstalovat z yum repo nebo přepnout na ekvivalentní nové příkazy:
lscpu nebo cat /proc/cpuinfo
lsmem nebo cat /proc/meminfo
ifconfig -a
ethtool
lshw
lspci
dmidecode
5. Nainstalovaný software
Testování softwaru vždy vyžaduje instalaci dalších závislých balíčků, knihoven atd. Než však cokoli nainstaluji, zkontroluji, co je již nainstalováno (včetně verze) a také která úložiště jsou nakonfigurována, abych věděl, odkud software pochází a mohu odladit jakékoli problémy s instalací balíčku.
Pomocí následujících příkazů zjistěte, jaký software je nainstalován:
rpm -qa
rpm -qa | grep
rpm -qi
yum repolist
yum repoinfo
yum instalace
ls -l /etc/yum.repos.d /
6. Spuštěné procesy a služby
Jakmile zkontroluji nainstalovaný software, je přirozené zkontrolovat, jaké procesy v systému běží. To je zásadní při spouštění testu výkonu v systému – pokud běžící proces, démon, testovací software atd. zabírá většinu CPU/RAM, má smysl tento proces před spuštěním testů zastavit. Tím se také zkontroluje, zda jsou procesy nebo démoni, které test vyžaduje, spuštěny a spuštěny. Pokud například testy vyžadují spuštění httpd, služba ke spuštění démona se nemusí spustit, i když je balíček nainstalován.
K identifikaci spuštěných procesů a povolených služeb ve vašem systému použijte následující příkazy:
pstree -pa 1
ps -ef
ps auxf
systemctl
7. Síťová připojení
Dnešní stroje jsou silně propojené sítěmi a potřebují komunikovat s jinými stroji nebo službami v síti. Identifikuji, které porty jsou na serveru otevřené, zda existují nějaká připojení ze sítě k testovacímu počítači, zda je povolen firewall, a pokud ano, zda blokuje nějaké porty, a se kterými servery DNS počítač mluví.
K identifikaci informací souvisejících se síťovými službami použijte následující příkazy. Pokud zastaralý příkaz není k dispozici, nainstalujte jej z úložiště yum nebo použijte ekvivalentní novější příkaz:
netstat -tulpn
netstat -anp
lsof -i
ss
iptables -L -n
cat /etc/resolv.conf
8. Jádro
Při testování systémů považuji za užitečné znát informace související s jádrem, jako je verze jádra a které moduly jádra jsou načteny. Také uvádím všechny laditelné parametry jádra a to, na co jsou nastaveny, a zkontroluji možnosti používané při zavádění běžícího jádra.
K identifikaci těchto informací použijte následující příkazy:
uname -r
cat /proc/cmdline
lsmod
modinfo
sysctl -a
cat /boot/grub2/grub.cfg9. Protokoly
Nyní mám o serveru dobrou představu, včetně toho, jaký software je nainstalován a jaké procesy běží. Další věc, kterou nemohu uniknout, jsou soubory protokolů – potřebuji vědět, kde zkontrolovat informace, které se neustále aktualizují.
K zobrazení protokolů vašeho systému použijte následující příkazy:
dmesg
tail -f /var/log/messages
journalctlDalší kroky
I když se příkazy a nástroje změní, základní informace, které zobrazují, zůstávají víceméně stejné. Než se budete moci soustředit na to, které příkazy ovládat, potřebujete komplexní pohled na informace, které hledáte, a do jaké kategorie spadají.
Protože Linux ukládá většinu informací do souborů, tyto příkazy v podstatě čtou informace ze souborů a prezentují je snadno srozumitelným způsobem. Dalším dobrým krokem je identifikovat soubory, které každý příkaz používá k získání informací k zobrazení. Nápovědou pro nalezení této informace je
strace
příkaz.
Linux