Après une longue recherche, essais et erreurs, j'ai créé un script
#!/bin/bash
find /home/SHARE/temp/* -mtime +10 -exec rm {} \;
Une fois créé, il a été exécuté et supprimé tous les fichiers de plus de 10 jours mais a laissé les dossiers dans lesquels se trouvaient ces fichiers.
Je l'ai écrit en cron et maintenant je vois que ça ne fait rien.
Je l'ai peut-être mal écrit dans cron, mais lorsque j'essaie de l'exécuter manuellement, j'obtiens:
rm query: remove write-protected regular file
et demande de confirmer la suppression, puis dit
Permission denied
Comment faire en sorte que non seulement les fichiers mais aussi les dossiers soient supprimés?
Comment exécuter automatiquement un script avec des droits sudo?
Merci de votre aide
Pour supprimer les répertoires vides ci-dessous mais sans inclure/home/SHARE/temp, utilisez
find /home/SHARE/temp -depth -mindepth 1 -type d -empty -exec rmdir {} \;
Pour supprimer uniquement les fichiers de votre commande d'origine, incluez -type f
Donc
find /home/SHARE/temp -type f -mtime +10 -exec rm {} \;
Si vous utilisez ces commandes depuis cron, remplacez \;
avec \\;
je crois que vous devez forcer la suppression d'un fichier car le fichier est en lecture seule en modifiant la ligne:
find /home/SHARE/temp/* -mtime +10 -exec rm {} \;
à
find /home/SHARE/temp/* -mtime +10 -exec "rm -f" {} \;
En plus de cela, vous apprécierez d'exécuter le script en utilisant l'utilisateur root.