Est-il possible de créer un script qui supprimera les fichiers d'un dossier spécifique après cinq jours sans supprimer le ou les dossiers?.
J'utilise le serveur Ubuntu 12 sans l'interface gui
.
Pour trouver les derniers fichiers modifiés il y a plus de cinq jours:
find /path/to/directory -type f -mtime +4
Pour les supprimer en même temps ( testez d'abord ce qui précède ):
find /path/to/directory -type f -mtime +4 -delete
Pour l’automatiser afin d’exécuter ce travail quotidiennement, exécutez crontab -e
(en tant qu’utilisateur auquel vous souhaitez exécuter cette tâche) et ajoutez:
@daily find /path/to/directory -type f -mtime +4 -delete
Une expérience pour montrer quelle valeur mtime
vous voulez utiliser. Le manuel est nul. J'avais supposé que +5
était ce que nous voulions mais un commentaire était en désaccord. La documentation semble entrer en conflit, j'ai donc commencé par créer trois fichiers, à un jour d'intervalle:
$ mkdir test
$ touch test/now
$ touch -d "1 day ago" test/yesterday
$ touch -d "2 days ago" test/day-before-yesterday
$ ls -l test
total 0
-rw-r--r-- 1 oli oli 0 Nov 26 13:12 day-before-yesterday
-rw-r--r-- 1 oli oli 0 Nov 28 13:11 now
-rw-r--r-- 1 oli oli 0 Nov 27 13:12 yesterday
Si nous voulons quelque chose qui a exactement entre 24 et 48 heures, nous utilisons 1 sans signe.
$ find test -mtime 1
test/yesterday
Mais si nous voulons des choses plus de 24 heures, +1
ne fonctionne pas:
$ find test -mtime +1
test/day-before-yesterday
+1
semble signifier "plus que ce que 1
montre" ... ... Donc +0
est utilisé:
$ find test -mtime +0
test/day-before-yesterday
test/yesterday
Tous très ennuyeux si vous avez l'habitude d'être correct comme moi ... Mais je vais récupérer, j'en suis sûr. Merci pour le coup de bâton d'Adaephon.
Oui, vous pouvez utiliser les tâches cron. Supposons que vous deviez supprimer les fichiers du répertoire/tmp/test/après cinq jours.
crontab -e
maintenant ajouter ces lignes à la dernière
@weekly rm -fr /tmp/test/
Maintenant, le dossier sera supprimé chaque semaine. Pour plus d'informations cliquez ici
Ce dont vous avez besoin est quelque chose comme
@weekly find /tmp/test -type f -exec rm '{}' +
Remarque: juste rm -rf supprime également les dossiers. Vous pouvez ajouter -mtime pour l'heure de modification.
Est-ce que cela doit être exactement cinq jours? Obtenez vos jours ou moments préférés en:
Minute - Heure - Jour du mois - Mois - Jour de la semaine
0 3 0,5,10,15,20,25 * *
Ce qui signifie 3 heures tous les cinq jours sauf si le mois est de 31 jours.