Håndtering af filer på Linux

Kommandoen find er et rigtig godt værktøj til at finde filer og evt. slette dem.

Her et par eksempler:

Tæl antallet af filer der starter med strengen ‘sess_’ i filnavnet og er mere end et år gamle:

Find jpg filer i en mappe der er tilgået (læst/vist) for mere end 2 dage siden:

Find filer i den aktuelle mappe, der starter med ‘faktura’  og som er ændret for mindre end 2 dage siden:

Vil man slette de filer der findes, er det blot et spørgsmål om at tilføje delete:

Skal jeg bruge rm eller delete?

Når du finder eksempler på brug af find rundt omkring, vil du måske undre dig over, at folk nogengange bruger delete, og andre gange rm. som f.eks.:

Det er bedst at bruge delete da det er den mest effektive, dog findes den ikke i alle versioner af find og derfor vil du også se at rigtig mange benytte rm.

!!–> MEN HUSK! Skriv delete som den sidste parameter <–!! … ellers risikerer du at slette meget mere end forventet…

Mere om dette emne i dette stackoverflow svar

Brug find til at rydde op i php/apache sessionsfiler

Jeg opdagede forleden at vi har rigtig mange sessionsfiler liggende. Langt flere end der burde være. Årsagen er, at det på nogle systemet, som eks. Ubuntu, nu er blevet standard at slå dette fra af sikkerhedsmæssige årsager. Man skal således selv sørge for at rydde op.

Det er her mest hensigtsmæssigt at kigge på parameteren atime der fortæller hvornår filen sidst blev tilgået. Bruger man mtime eller ctime (sidst ændret) skal man nemlig være opmærksom på at en sessionsfil ikke nødvendigvis ændres ved hver forespørgsel.

Jeg lægger forsigtigt ud med at fjerne alle sessionfiler der ikke er tilgået i 30 dage.

Nu tjekker vi så lige at det her rent faktisk virkede efter hensigten. Det er i dag d. 3. august  2020. Lad os finde den ældste fil vi har efter oprydningen:

Hov!? 6. december… den burde da være slettet…. Gotcha! ls viser ikke dato for seneste tilgåelse, men dato for seneste ændring.

Herover kan vi se at filen faktisk er tilgået i dag… og dermed må vi antage at sessionen stadig er aktiv. Derfor er det så vigtigt at bruge atime og ikke mtime/ctime når man rydder op i sessioner.