Vergeten server loopt vol
Het voordeel van Linux + vrije software is dat je gemakkelijk een test-opstelling kan doen.
Maar als je dan de definitieve software installeert op een nieuwe computer, en de testopstelling nog even bijhoudt tot je zeker bent dat alles goedgaat, zou je hem wel eens kunnen vergeten. Dat heb je met systemen die stabiel blijven draaien 😉
Dat overkwam mij dus. Ik had de logs niet meer bekeken, de systeem-mail niet meer gelezen, ik wist amper of het toestel aan of af stond. Tot ik op een dag wilde inloggen en dat niet meer ging op de grafische interface (KDE).
Dan ingelogd via een terminal, als root, om te kijken wat er aan de hand was. Een “df” leverde het antwoord: de disk was vol, 100 procent in gebruik. Ik gooide een paar dingen weg uit een gebruikersmap om een minimum plaats te hebben.
Daarna las ik de systeemmail; die wordt afgeleid naar de gebruiker “pinguim”. Het commando “mail” om op de command prompt de e-mail te lezen weigerde echter omdat de schijf te vol was. Die mail zit in een gewoon tekstbestand, dat je ook over het scherm kan laten rollen (“cat” of “less bestandnaam”). Of je kan hem iets comfortabeler op een andere computer in een tekstverwerker bekijken, er in zoeken, er uit printen.
Ik maak dus een map “oldservermail” op mijn desktop pc (adres 100 op het interne netwerk).
Ik kopieer vanop de volle server het “mail” bestand naar de pc met
scp /var/mail/pinguim me@192.168.100/home/me/oldservermail
Dan kijk ik (als root) op hoogste nivau naar de directories:
cd /
du -s ./*
Ik zie dat er 1 getal is dat eruit springt, in de directory “/var”. Zo kan je steeds verder gaan zoeken:
cd /var
du -s ./*
cd lib
du -s ./*
Ik ontdek zo dat mysql de grote megabyte-vreter is op dit systeem;
er staan een aantal bestanden in met een nummer en extentie “servernaam-bin.001” tot “servernaam-bin.043” met erg verschillende grootte, blijkbaar tijdelijke bestanden die mogelijk door de volle- schijf-problemen zijn blijven staan.
Een handboek of een website over MySQL zal je vertellen dat het een soort logfiles zijn, die alle bewerkingen loggen. Dat wordt bv gebruikt als je twee databanken laat synchroniseren of als backup.
Je kan die files bekijken met het commando:
mysqlbinlog servernaam-bin.001
En je kan ze opkuisen (als je zeker bent dat je ze niet nodig hebt) door in te loggen in mysql en daar:
RESET MASTER;
Het maken van die binlogs wordt bepaald door een lijn in het configuratiebestand (zoek naar “log-bin” in /etc/my.cnf bv); daar kan je ook bepalen om bepaalde databases niet of juist wel te “binloggen” – raadpleeg mysql-documentatie als je er meer over wil weten.
Mijn volgelopen test-toestel is ondertussen weer klaar voor nieuwe experimenten.