{"id":2710,"date":"2025-12-17T09:47:32","date_gmt":"2025-12-17T08:47:32","guid":{"rendered":"http:\/\/clark.tipistrani.it\/?p=2710"},"modified":"2025-12-17T09:47:32","modified_gmt":"2025-12-17T08:47:32","slug":"eliminazione-di-files-piu-vecchi-di-x-giorni","status":"publish","type":"post","link":"http:\/\/clark.tipistrani.it\/?p=2710","title":{"rendered":"Eliminazione di files pi\u00f9 vecchi di x giorni"},"content":{"rendered":"<p>Come dicevo in un altro <a href=\"http:\/\/clark.tipistrani.it\/?p=2704\">scritto<\/a> l&#8217;occupazione di spazio \u00e8 un reale problema specie se l&#8217;utente che produce files e in questo caso di grosse dimensioni non \u00e8 un utente &#8220;umano&#8221; ma un utente macchina.<\/p>\n<p>L&#8217;utente sqlsa (gestionale) produce ogni giorno due files che ad oggi sono in totale 35 GB\u00a0 ma che sono destinati ad aumentare.<\/p>\n<p>La politica di conservazione originale prevedeva una ritenzione di 10 giorni, quando la dimensione ha cominciato a diventare importante abbiamo pensato di tagliarla a 5 anche perch\u00e9 a monte conserviamo i backup di 20 giorni quindi tutto sommato siamo coperti comunque.<\/p>\n<p>La situazione per la generazione e il salvataggio di questi due files non \u00e8 lineare ma il risultato ultimo \u00e8 che i files vengono salvati in questo path sul server share<\/p>\n<p>\/home\/HOME\/sqlsa\/full_backup<\/p>\n<p>in questa directory viene generata un&#8217;altra subdirectory con il nome anno (2025) ce contiene a sua volta 12 subdir con il nome del mese.<\/p>\n<p>Si tratta quindi di spostare nel nuovo giusto path i due files, e di cancellare i files pi\u00f9 vecchi di 5 giorni.<\/p>\n<p>Di seguito lo script che messo in crontab ogni giorno alle 5 esegue quanto serve:<\/p>\n<p>#! \/bin\/bash -x<br \/>\n### ottieni la data corrente<br \/>\nANNO=$( date +%G )<br \/>\nMESE_CORRENTE=$( date +%b )<br \/>\nGIORNO=$( date +%d )<br \/>\n### Se \u00e8 il primo giorno del mese, usa il mese precedente<br \/>\nif [ &#8220;$GIORNO&#8221; = &#8220;01&#8221; ]; then<br \/>\n# Ottieni il mese precedente (formato Mmm)<br \/>\nMESE=$(date -d &#8220;1 month ago&#8221; +%b)<br \/>\n# Se siamo a gennaio, dobbiamo anche decrementare l&#8217;anno<br \/>\nif [ &#8220;$MESE_CORRENTE&#8221; = &#8220;gen&#8221; ]; then<br \/>\nANNO=$((ANNO &#8211; 1))<br \/>\nfi<br \/>\nelse<br \/>\nMESE=$MESE_CORRENTE<br \/>\nfi<br \/>\n### Crea la directory se non esiste<br \/>\nmkdir -p &#8220;\/home\/HOME\/sqlsa\/full_backup\/$ANNO\/$MESE&#8221;<br \/>\n### Spostati nella directory e sposta i file<br \/>\ncd &#8220;\/home\/HOME\/sqlsa\/full_backup\/$ANNO\/$MESE&#8221; || exit 1<br \/>\npwd<br \/>\nmv ..\/..\/*.bak .<br \/>\n### Elimina i file pi\u00f9 vecchi di 5 giorni<br \/>\ncd ..<br \/>\nfind . -type f -iname &#8220;*.bak&#8221; \u00a0-mtime +5 -exec rm -rf {} \\;<br \/>\nexit 0<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Come dicevo in un altro scritto l&#8217;occupazione di spazio \u00e8 un reale problema specie se l&#8217;utente che produce files e in questo caso di grosse dimensioni non \u00e8 un utente &#8220;umano&#8221; ma un utente macchina. L&#8217;utente sqlsa (gestionale) produce ogni giorno due files che ad oggi sono in totale 35 GB\u00a0 ma che sono destinati [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,9,6],"tags":[104],"class_list":["post-2710","post","type-post","status-publish","format-standard","hentry","category-linux","category-script","category-work","tag-bash-script"],"_links":{"self":[{"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=\/wp\/v2\/posts\/2710","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2710"}],"version-history":[{"count":1,"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=\/wp\/v2\/posts\/2710\/revisions"}],"predecessor-version":[{"id":2711,"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=\/wp\/v2\/posts\/2710\/revisions\/2711"}],"wp:attachment":[{"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2710"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2710"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2710"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}