Ciao ragazzi, per uno script che crea un tar di una dir e lo invia via ftp avrei bisogno di comporre una stringa contenente la data di 7 giorni fa (per cancellare gli archivi + vecchi), è possibile usando il comando date?
grazie, ciao
Ciao ragazzi, per uno script che crea un tar di una dir e lo invia via ftp avrei bisogno di comporre una stringa contenente la data di 7 giorni fa (per cancellare gli archivi + vecchi), è possibile usando il comando date?
grazie, ciao
In python
da come output:codice:#!/usr/bin/env python import datetime now = datetime.datetime.now() delta = datetime.timedelta(days = 7) a_week_ago = now - delta print a_week_ago print a_week_ago.strftime("%Y%m%d%H%M%S")
Cancella il "print" che non ti servecodice:$ ./a_week_ago.py 2006-12-21 17:45:50.310571 20061221174550![]()
avevo pensato anche io a una eventuale soluzione o in python o in php-cli...
Per adesso allora affronto cosi il problema, ma speravo ci fosse una soluzione in puro bash.
Ciao
Se ti accontenti di avere un unix_timestamp:
codice:$ echo "$(date +%s) - 60*60*24*7" | bc 1166720585![]()
Se invece non hai o non vuoi usare bc, dovrebbe funzionare anche questo:
Così lo hai già memorizzato nella variabile "data"codice:let data=$(date +%s)-60*60*24*7
direi di no, perchè in pratica devo cancellare il file creato una settimana fa, e se ci metto di mezzo i secondi sono sicuro (anche se lo script viene lanciato con cron sempre alla stessa ora) che poi il file che andrò a cercare non esiste perchè magari è stato generato un secondo prima o un secondo dopo...
comunque grazie, questo è già un punto di partenza...
[edit]
mentre stavo per postare mi è venuto questo dubbio...
ma il timestamp ottenuto con il secondo metodo che hai postato posso usarlo come seme da passare al comando date per riformattarlo, giusto?
Se cosi fosse sono a posto..
ciao
Se puoi farlo col secondo devi poterlo fare anche col primo, solo che io non ho trovato la maniera di farglielo prendere in input (e quindi non so nemmeno se il calcolo è giusto).Originariamente inviato da gianiaz
direi di no, perchè in pratica devo cancellare il file creato una settimana fa, e se ci metto di mezzo i secondi sono sicuro (anche se lo script viene lanciato con cron sempre alla stessa ora) che poi il file che andrò a cercare non esiste perchè magari è stato generato un secondo prima o un secondo dopo...
comunque grazie, questo è già un punto di partenza...
[edit]
mentre stavo per postare mi è venuto questo dubbio...
ma il timestamp ottenuto con il secondo metodo che hai postato posso usarlo come seme da passare al comando date per riformattarlo, giusto?
Se cosi fosse sono a posto..
ciao
Ad ogni modo, potresti cancellare i file che hanno il timestamp minore o uguale a quello.
Oppure, cosa forse più semplice, con "find -ctime 7 -exec {} \;" o qualcosa di simile dovresti avere un risultato più o meno analogo (salvo cancellare altri file innocenti) - però bisogna notare che il comportamento di find non è molto affidabile nel caso specifico, perchè basta un touch o roba del genere per far saltare il conto
![]()
in effetti potrei vedere quali comandi posso inviare al server ftp...
non ho mai provato a usare il find tramite ftp..
Ops.. mi era sfuggito che dovevi operare su FTP - non so nemmeno si ci sia il find in questo modoOriginariamente inviato da gianiaz
in effetti potrei vedere quali comandi posso inviare al server ftp...
non ho mai provato a usare il find tramite ftp..![]()