Ich wollte einen Befehl auf unserem Linux ausführen, nachdem der Neustart abgeschlossen war. Ich sah, dass dies mit crontab möglich ist. Ich wollte diesen Befehl ausführen
sudo ifdown eth0 && sudo ifup -v eth0
auf dem crontab kann ich einfach machen:
@reboot sudo ifdown eth0 && sudo ifup -v eth0
oder muss ich das in einem Skript speichern?
Danke dir
Antworten:
Ein paar Anmerkungen hier, bevor dies funktionieren würde:
sudo
für Cronjobs verwenden. Bearbeiten Sieroot
stattdessen die Crontab von 's anstatt Ihrer eigenen, z. B.sudo crontab -e
und geben Sie dann Befehle ohne einsudo
.cron
und würde wahrscheinlich besser/etc/rc.local
vor derexit 0
Zeile platziert werden.@reboot
sollte YMMV auch nach einem harten Herunterfahren oder Absturz laufen, es gibt aber unterschiedliche Cron-Implementierungen also. Ich habe an verschiedenen Stellen Kommentare gesehen, die beides behaupteten.EDIT (2016.02.17): um einen falschen Text auf absoluten Pfaden; Kudos @muru
EDIT (2016.10.17): hinzugefügt Shutdown note
EDIT (2017.09.11): Überarbeitete Shutdown Note. Da bin ich mir nicht sicher.
quelle
etc/rc.local
ohne das sudo. Dann ist es nur ifdown eth0 & sudo ifup -v eth0 Ausfahrt 0cron
verwendet dasPATH
in/etc/environment
, was hat/sbin
./etc/pam.d/cron
geladenpam_env
, also/etc/environment
sollte gelesen und der voreingestelltePATH
Wert verwendet werden. Diese Antwort wurde kurz vor dem 12.04 veröffentlicht.Sie können hierfür crontab verwenden. Wenn Sie jedoch crontab verwenden
sudo
, benötigen Sie hierfür eineNOPASSWD
Regelsudoers
. (Siehe Ausführen eines Cron-Jobs mit dem Befehl sudo .)Es wäre einfacher,
/etc/rc.local
diese Befehle vor derexit 0
Zeile zu bearbeiten und hinzuzufügen .quelle