Chciałbym uruchomić nocne zadanie CRON, które usuwa wszystkie pliki w folderze, do którego nie uzyskano dostępu przez tydzień lub dłużej. Jaki jest najbardziej efektywny sposób na zrobienie tego w bash?
Chciałbym uruchomić nocne zadanie CRON, które usuwa wszystkie pliki w folderze, do którego nie uzyskano dostępu przez tydzień lub dłużej. Jaki jest najbardziej efektywny sposób na zrobienie tego w bash?
Odpowiedzi:
Chcesz find
narzędzie .
find folder -depth -type f -atime +7 -delete
(Spowoduje to usunięcie wszystkich plików ( tylko zwykłe , bez potoków, urządzeń specjalnych, katalogów, dowiązań symbolicznych) z danego folderu i wszystkich podkatalogów (rekurencyjnie), w których ostatni czas dostępu jest dłuższy niż 7 dni temu.)
-type f
tam dodać, aby usunąć tylko pliki, a nie całe katalogi.
Możesz sprawdzić, tmpwatch
które można umieścić w zadaniu crona. Nie musisz sam z siebie korzystać find
. Na RHEL jest w tmpwatch
RPM.
find
.
find
może filtrować na podstawie atime. „Poprawność” czasu zależynoatime
co najmniej od konfiguracji (patrz ).