Tenga en cuenta que no puedo utilizar 'encontrar' en el entorno de destino¿Cómo puedo encontrar y eliminar archivos basados en la fecha en un script de shell de Linux sin encontrarlo?
necesito para eliminar todos los archivos de más de 7 días de edad en una secuencia de comandos shell de Linux. Algo así como:
FILES=./path/to/dir
for f in $FILES
do
echo "Processing $f file..."
# take action on each file. $f store current file name
# perhaps stat each file to get the last modified date and then delete files with date older than today -7 days.
done
¿Puedo usar 'stat' para hacer esto? Yo estaba tratando de usar
find *.gz -mtime +7 -delete
pero descubrí que no puedo usar encontrar en el sistema de destino (no hay permiso para el usuario cron y esto no se puede cambiar). El sistema objetivo es Redhat Enterprise.
Los nombres de los archivos tienen el formato siguiente manera:
gzip>/mnt/target03/resto-de-path/web/backups/DATABASENAME_ date "+%Y-%m-%d"
.gz
Tengo intentado usar este código, pero acaba de obtener este resultado: 1325559634 1324944000 lt lt lt 1324944000 1325559635 lt 1324944000 1325559635 lt 1324944000 1325559635 lt 1324944000 1325559635 1324944000 lt lt lt 1324944000 1325559635 lt 1324944000 1325559635 lt 1324944000 1325559635 lt 1324944000 1325559635 lt 1324944000 1325559635 lt 1324944000 – codecowboy
El eco "rm -f $ f" nunca parece funcionar. Los archivos se llaman así - eeSwap_2011-12-20.gz. ¿La expresión regular captará este nombre de archivo correctamente? – codecowboy
Resulta que ts = 'date -d $ date | date + "% s" 'debe ser ts =' date -d "$ date" + "% s" 'El script funciona – codecowboy