J'ai remarqué que lorsque j'ai tapé Sudo crontab -e
Je ne vois pas ma commande cron, mais quand je ne le fais que crontab -e
il y a ma commande.
Y a-t-il une différence entre les 2? Si c'est le cas, où dois-je mettre ma commande cron, doit-elle être dans Sudo ou sans sudo?
Merci!
Y a-t-il une différence entre les 2?
Oui, en effet, ils sont différents. La différence est qu'avec Sudo crontab -e
les commandes sont planifiées avec root
les informations d'identification de l'utilisateur. Pour que les commandes de la table cron de Sudo soient exécutées en tant qu'utilisateur root.
Mais avec crontab -e
, les commandes sont planifiées avec l'utilisateur normal qui est connecté.
Où dois-je placer ma commande cron, que ce soit dans Sudo ou sans sudo?
Eh bien, la réponse à cela dépend du type de commande que vous souhaitez exécuter.
Si la commande nécessite un accès Sudo
alors Sudo crontab -e
Devrait être utilisé.
Sinon, si la commande cron ne nécessite aucune autorisation spéciale, utilisez crontab -e
.
Exemple :
Si l'interface réseau Ethernet eth0
doit être désactivé ou activé à un moment précis, vous devez alors utiliser la commandeifconfig eth0 up
ou ifconfig eth0 down
Comme les commandes ci-dessus nécessitent une autorisation spéciale (Sudo), ces commandes sont censées être ajoutées à Sudo's
onglet cron
Toute autre commande nécessitant une autorisation minimale ou aucune autorisation, comme la suppression d'un fichier du répertoire tmp
comme $ rm /tmp/somefile
utilise la crontab de l'utilisateur normal.
La partie principale du problème est de prendre soin de l'utilisateur avec lequel vous voulez faire vos choses. Sinon, cela ne déclenchera pas votre tâche cron. Et assurez-vous que vous écrivez la sortie de votre commande dans n'importe quel fichier. Il vous aidera à déboguer le problème qui pourrait très probablement être lié à vos chemins d'accès relatifs. C'est pour cela que j'ai rencontré des difficultés. Vous pouvez avancer en suivant l'étape ci-dessous:
Merci!