Strictement à des fins d'apprentissage (éventuellement d'entretien), j'essaie de faire en sorte qu'un travail Cron vide mes ordures une fois par jour.
J'ai ouvert le terminal et entré la commande crontab -e
pour accéder à l'éditeur de VI pour ajouter la commande. Je suis entré en mode insertion et ajouté * * * * * sudo rm -rf ~/.Trash/*
, appuyez sur la touche échap pour sortir et quitter VI avec :wq!
Ce script particulier que j'ai exécuté chaque minute juste pour voir si cela fonctionne et ce n'est pas. Je pensais que c’était peut-être un problème avec le fait que cron n’avait pas d’accès root, j’ai donc ajouté la même ligne à sudo crontab -e
fichier et il ne semble pas être en train d'économiser.
Des idées ce qui pourrait être le problème avec ce travail cron?
.Trash
avecsudo
en premier lieu? La configuration de votre sudoers est-elle définie sur NOPASSWD?Réponses:
Vous pensez avoir besoin de sudo. Vous pas. Vous n'essayez pas de vider le dossier Corbeille de la racine. Vous avez la permission de supprimer des fichiers dans votre propre
~/.Trash
dossier, vous n'avez donc pas besoin de devenir root (c'est ce que fait sudo)rm
.Vous pouvez simplement utiliser:
Notez, je vous déconseille également d'utiliser
~
dans une commande dangereuse comme celle-ci (quand vous appelez)rm -rf
c'est potentiellement dangereux). Mettez le chemin complet vers le.Trash
dossier est donc très explicite ce qui se passera lorsque la ligne est exécutée. Quelque chose comme/Users/yourusername/.Trash/
. Alors:Où vous remplacez
yourusername
avec votre nom d'utilisateur actuel sur l'hôte.la source
Si vous voulez spécifier la crontab de l’utilisateur root, vous devez utiliser le
-u
option.sudo crontab -e -u root
Cela dit, il existe un moyen plus sûr de nettoyer vos déchets que de simplement supprimer tout le répertoire. Personnellement, j'aime bien supprimer les fichiers de plus d'un certain nombre de jours. De cette façon, si je supprime par inadvertance quelque chose aujourd’hui, j’ai un "tampon" de temps pour récupérer.
La commande suivante supprimera tous les fichiers qui sont plus âgée de 15 jours.
find ~/.Trash/ -type f -mtime +15 -exec rm {} \;
Maintenant ... cela dit ...
cron
est déconseillé pourlaunchd
. Je prendrais du temps et apprendre à créer.plist
Fichiers XML pourlauchd
et utiliser ce service au lieu decron
la source