Een krachtige tool om te debuggen is Shell.  Verbinden met Shell is ondersteund op alle webhosting pakketten van Byte met uitzondering van Personal Hosting. Basis kennis van Shell is nodig om hiermee te kunnen debuggen. Mocht je hier nog niet zo bekend mee zijn, kijk dan op de pagina Shell Cursus voor een korte cursus werken met Shell. In dit artikel geven we praktische tips over hoe je kunt debuggen via Shell.

Bekijk logbestanden

Het is vaak nuttig om bij bugs de logbestanden te bekijken. Nadeel is dat hier vaak erg veel informatie staat die niet per se nuttig is. We kunnen echter op de commandline vrij makkelijk de informatie filteren, bijvoorbeeld met het commando “grep”.

Als je een probleemstelling met tijdstip hebt kun je in het specifieke logbestand de datumweergave bekijken en op basis daarvan zoeken:

grep 18-Feb-2013 error.log

Dit commando laat alle foutmeldingen van 18 februari 2013 uit de PHP error log zien. Je kunt dezelfde techniek gebruiken om op andere teksten en “reguliere expressies” te filteren.
Het is mogelijk om de output van het ene commando als input voor volgende te gebruiken met het teken “|”. Op deze manier kun je commando’s koppelen voor complexere taken. Bijvoorbeeld het commando:

grep 18-Feb-2013 error.log | tail -n 2

… laadt de laatste twee foutmeldingen van 18 februari 2013 uit de php error log zien.

Nuttige commando’s voor het analyseren van logs

(z)cat               Lezen van een (gezipt) bestand
head                 Laat de eerste 10 regels van een bestand zien
tail                 Laat de laatste 10 regels van een bestand zien
less                 Hiermee kun je een bestand lezen en wordt dit opgedeeld
awk                  Laat een specifiek veld binnen een regel zien
sort                 Hiermee sorteer je de regels van een bestand (alfabetisch)
wc                   Aantal regels, woorden en bytes van een bestand zien
uniq                 Laat unieke regels binnen een bestand zien
(z)grep              Hiermee kun je zien in welke regels van een bestand een specifiek woord zit.
watch                Hiermee kan je een commando periodiek laten uitvoeren

Handleiding van een functie opvragen

Er zijn veel commando’s beschikbaar die verschillende dingen kunnen doen. Vaak hebben functies nog extra mogelijkheden door middel van parameters. Om een handleiding van een functie te zien kun je het commando man plus het specifieke commando gebruiken.

Verschil in bestanden traceren

Het is handig om in één overzicht het verschil tussen twee mappen te kunnen zien. Dit kan met het programma diff. Met dit programma kun je twee paden opgeven die vervolgens met elkaar worden vergeleken. Met de -r parameter kan er recursief door alle submappen worden gezocht:

diff -r map_a map_b

… laat het verschil tussen map_a en map_b en alle submappen van die mappen zien.

Meer artikelen in de de categorie ‘Website debuggen’

00