Top-10 linux server commando’s

Stel, je wordt ineens server-beheerder. Dat wil je helemaal niet, maar toevallig woon jij vlakbij die server. En als er wat is…

Welke commando’s moet je kennen en wat doen die dan eigenlijk? De top-10.

Systeem: Ubuntu server met cloudpanel, nginx. Raid device. Hardware: Dell Poweredge tower van Serverzaak

Login, user

Je zou een user account moeten hebben. Alle onderstaande commando’s zijn beter om met sudo uit te voeren vanaf je normale user account. Het werken vanuit root is afgeraden, zeker voor newbies.

Voorbeeld met sudo

Niet:

htop

maar

sudo htop

Algemene health

top en htop

top
htop

Met top krijg je een overzicht van de processen. Hoeveel %CPU ze vreten. In top controleer je:

  • load average. Nu:0,08 – 0,19 – 0,20.
  • is er een proces met een CPU > 80%? Dat kan niet goed zijn. Noteer het procesnummer in de eerste kolom. En zie Status van je Services.
  • is er een proces met een %MEM van > 80%.

Load average is de wachttijd voor een nieuw proces. Hoeveel processen moeten eindigen voordat een nieuwe kan starten? De 3 getallen zijn in de timeframes: gemiddelde laatste minuut, laatste 5, laatste 15. Op een server is de belansting typisch heel laag behalve tijdens backups en soortgelijke grote processen.

Een te hoge CPU? Dat kan niet goed zijn. Hangt dit proces? Op de server is het waarschijnlijk als service gestart. Dat kan niet goed zijn. Noteer het procesnummer in de eerste kolom.

Een te hoge MEM? Dat kan niet goed zijn. Hangt dit proces? Op de server is het waarschijnlijk als service gestart. Noteer het procesnummer in de eerste kolom.

htop

Een mooier scherm waarbij je per core (wiel van je CPU) kunt zien hoe hard ze werken.

clear

Wis het terminal scherm zodat je passwords of vorige commando’s niet meer ziet.

clear

Disk Health

Volgende bron van fouten zijn disk-gerelateerd. Deze commando’s helpen je.

df -h
cd /
du -sh *

df -h geeft je de info voor disk free (human output).

Per device zie je hoeveel % disk er in gebruik is. Komt er een getal op 100, dan loopt je systeem vast. De / en de /home zijn in het bijzonder kwetsbaar om vol te lopen. Backups, logfiles en oude versies van software zijn daar vaak een oorzaak van. Typisch kan mysql niet starten als de disk 100% vol is.

du geeft disk usage. Dan kun je in de map waar je nu bent (met cd / ging je naar /) zien welke mappen de meeste space nemen. Zo kom je erachter welke map te vol is.

Het zoeken van bestanden doe je met ls. Varieer met de asterisk * en -alrt parameters voor het juiste beeld. Verwijder met rm. Gebruik de tab om bestandsnamen aan te vullen

Raid health

Je zag ‘m al staan: /dev/mdo is een RAID device. Dat betekent dat het meerdere disks zijn die samenwerken om samen een beter betrouwbaar device te maken. Er zijn meerdere RAID configuraties. Daar gaan we nu niet op in. Het gaat om de health van je device. Met het volgende commando vraag je dat op:

cat /proc/mdstat

Bovenstaand raid device /dev/md0 heeft dus 2 devices, nummer 0 is /dev/sdb en nummer 1 is /dev/sdc. Als er iets mis is, zie je er maar 1 of nul.

Networking

Zijn je processen onder controle en is de disk in orde, dan kijken we naar het netwerk. je moet natuurlijk weten hoe de boel is aangelegd. Je hebt genoteerd (en we nemen five.voeten.com) als voorbeeld:

five.voeten.comcommando voor opvragen
ipv4192.168.178.27ifconfig
ipv62a10:3781:3db9:1:3ed9:2bff:fe70:7a1d
ns192.168.178.1resolvectl status
gateway192.168.178.1ip route show default

Status van je netwerk

Gebruik de volgende commando’s om de status van je server en website te achterhalen. Gebruik evt een andere naam om mee te testen.

ping voeten.com
nslookup voeten.com
tracepath voeten.com

Installeer eventueel eerst de packages met

apt install iputils-ping
apt install iputils-tracepath

Status van je services

Het moeilijkste gedeelte is natuurlijk als een van de services faalt terwijl het systeem eigenlijk in orde lijkt. Je moet een goed beeld hebben van welke services je server eigenlijk draait. Met het gebruik van cloudpanel ligt dat grotendeels vast. Je kunt sowieso beter via cloudpanel zelf de services herstellen, maar als dat niet gaat…

Per service gaan we nu te werk:

gewenste outputStart op met
webservernginxsudo systemctl status nginxactivesudo systemctl start nginx
databasemysqlsudo systemclt status mysqlactivesudo systemclt start mysql
Als een van de php-frm of redis eruit liggen kun je beter rebooten.

Inloggen via het scherm

Als er niks anders op zit, omdat je niet via het netwerk kunt, moet je wel achter dat ding kruipen.

Soms staat er een melding. Die kan al dagen oud zijn. Deze bijvoorbeeld. De cloud-init melding. Negeer die melding. Het gaat om login: Druk op enter om op een nieuwe login: prompt in te loggen.

Rebooten en ander lomp doen

Uitzetten met de power-button is niet goed voor je RAID device. Schakel uit of reboot met het volgende:

reboot
halt

Check de logs

In een aantal mappen vind je logbestanden. Dat verschilt per systeem. Als je gebruik maakt van Cloudpanel zul je handiger per website binnen cloudpanel zelf kunnen zoeken. De logfiles staan dan op /home/vhostzoveel/logs
Met de volgende commando’s

cd /home
ls
cd websitezes
ls
ls -alrt
less bestandsnaam
zless bestandsnaam.gz