Wystarczy przypraw się skrypt powłoki, aby usunąć starsze pliki
#!/bin/bash
timestamp=$(date +%Y%m%d_%H%M%S)
path="/data/backuplog"
filename=log_back_$timestamp.txt
log=$path/$filename
find $path -name "*.txt" -type f -mtime +7 -print -delete >> $log
echo "Backup:: Script Start -- $(date +%Y%m%d_%H%M)" >> $log
START_TIME=$(date +%s)
... code for backup ...or any other operation ....
END_TIME=$(date +%s)
ELAPSED_TIME=$(expr $END_TIME - $START_TIME)
echo "Backup :: Script End -- $(date +%Y%m%d_%H%M)" >> $log
echo "Elapsed Time :: $(date -d 00:00:$ELAPSED_TIME +%Hh:%Mm:%Ss) " >> $log
Build kod na odpowiedź Sputnick i dodaje jeszcze kilka rzeczy.
- pliki dziennika o nazwie ze znacznikiem czasu
folderu
- dziennika określonym
- find szuka plików * .txt tylko w folderze dziennika
- pliki dziennika starsze niż 7 dni są usuwane (zakładając, że jest to dla dziennika kopia zapasowa)
- odnotowuje czas rozpoczęcia/zakończenia
- oblicza czas, który upłynął ...
skończyłeś wys ave spójrz na 'man date'? – Jens
Czy chcesz usunąć na podstawie nazwy pliku lub czasu modyfikacji pliku? – Barmar
Potrzebuję całego skryptu :) znajduję exapmle, ale nie jestem pewien, czy to jest dobre dla tego: find/home/scripts /. -name '* .script' -mtime +10 -exec rm -rf '{}' \; – Steve88