Je voulais exécuter une commande sur notre linux après son redémarrage terminé, j'ai vu que cela peut être fait en utilisant crontab. Je voulais exécuter cette commande
sudo ifdown eth0 && sudo ifup -v eth0
sur la crontab je peux juste faire:
@reboot sudo ifdown eth0 && sudo ifup -v eth0
ou dois-je le stocker dans un script?
Je vous remercie
Réponses:
Quelques notes ici avant que cela fonctionne:
sudo
dans un travail cron. Au lieu de cela, éditezroot
le crontab au lieu du vôtre, par exemplesudo crontab -e
, puis entrez les commandes sanssudo
.cron
, et serait probablement mieux placé/etc/rc.local
avant laexit 0
ligne.@reboot
devrait également fonctionner après un arrêt brutal ou un crash, mais il existe différentes implémentations cron, donc YMMV. J'ai vu des commentaires à différents endroits affirmant les deux.EDIT (2016/02/17): Suppression du texte de présentation incorrect sur les chemins absolus; kudos @muru
EDIT (2016/10/17): Ajout d'une note d'arrêt
EDIT (2017/09/11): Note d'arrêt révisée. Pas vraiment sûr sur celui-là.
la source
etc/rc.local
sans le sudo. alors ce sera juste ifdown eth0 && sudo ifup -v eth0 exit 0cron
utilise lePATH
donné en/etc/environment
, qui a/sbin
./etc/pam.d/cron
charges doiventpam_env
donc/etc/environment
être lues et lePATH
jeu par défaut doit être utilisé. Cette réponse a été publiée juste avant la sortie du 12.04.Vous pouvez utiliser crontab pour cela, mais si vous l'utilisez
sudo
, vous aurez besoin d'uneNOPASSWD
règlesudoers
pour le faire. (Voir Comment exécuter un travail cron à l'aide de la commande sudo .)Il serait plus simple de modifier
/etc/rc.local
et d'ajouter ces commandes avant laexit 0
ligne.la source