Shutdownscript beim Systemstart ausführen funktioniert nicht
Hallo,
ich habe einen alten Server, welcher per wakeonlan täglich einmal gestartet wird.
Dieser soll dann von dem eigentlichen Hauptserver einen Ordner mit Backups kopieren und dann wieder herunterfahren.
Nun habe ich dieses Script dafür geschrieben:
Leider wird das Script beim Systemstart nicht gestartet.
Folgendes habe ich versucht
(ich habe zwichen dem @ und dem reboot ein Leerzeichen, weil es sonst ein Forumlink wäre!!!)
1)
sudo crontab -e
1.1) => @ reboot /root/backup-raspi.sh
1.2) => @ reboot root /root/backup-raspi.sh
2)
sudo nano /etc/crontab
2.1) => @ reboot /root/backup-raspi.sh
2.2) => @ reboot root /root/backup-raspi.sh
3)
ln -s /root/backup-raspi.sh /etc/rc3.d/S99backup-raspi
Leider funktionieren bei mir alle 3 Möglichkeit nicht, oder habe ich nur irgendwo ein Fehler gemacht?
Mfg. 8digit
ich habe einen alten Server, welcher per wakeonlan täglich einmal gestartet wird.
Dieser soll dann von dem eigentlichen Hauptserver einen Ordner mit Backups kopieren und dann wieder herunterfahren.
Nun habe ich dieses Script dafür geschrieben:
debian-backup:~# cat /root/backup-raspi.sh
#!/bin/bash
Datum=`date +"%d.%m.%Y"`
Uhrzeit=`date +"%H:%M"`
rsync --delete -avze "ssh -p 22 -i /home/backup_key" --rsync-path='sudo /usr/bin/rsync' backupuser@192.168.2.2:/home2 /backup &> /dev/null
echo "Backup done $Datum $Uhrzeit" >> backup_log.txt
shutdown -h 5
Leider wird das Script beim Systemstart nicht gestartet.
Folgendes habe ich versucht
(ich habe zwichen dem @ und dem reboot ein Leerzeichen, weil es sonst ein Forumlink wäre!!!)
1)
sudo crontab -e
1.1) => @ reboot /root/backup-raspi.sh
1.2) => @ reboot root /root/backup-raspi.sh
2)
sudo nano /etc/crontab
2.1) => @ reboot /root/backup-raspi.sh
2.2) => @ reboot root /root/backup-raspi.sh
3)
ln -s /root/backup-raspi.sh /etc/rc3.d/S99backup-raspi
Leider funktionieren bei mir alle 3 Möglichkeit nicht, oder habe ich nur irgendwo ein Fehler gemacht?
Mfg. 8digit
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 205725
Url: https://administrator.de/contentid/205725
Ausgedruckt am: 23.11.2024 um 12:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo,
hast Du das Skript ausführbar gemacht? also
Die Anführungszeichen sind überflüssigoder
Du solltest zuallererst mal ausprobieren, ob das Skript überhaupt funktioniert bevor Du es mit cron automatisierst. Und natürlich, ob es das macht, was es soll.
Teste zuerst, ob Dein rsync-Befehl so funktioniert wie er soll, teste dann das shutdown-Kommando (wieso nicht einfach "halt"?). Laut manpage müsste es eher sein, also warte 5 Sekunden und fahre dann runter, aber ich hab das nicht ausprobiert.
Markus
hast Du das Skript ausführbar gemacht? also
chmod +x /root/backup-raspi.sh
Die Anführungszeichen sind überflüssig
Datum=`date +%d.%m.%Y`
Datum=$(date +%d.%m.%Y)
Du solltest zuallererst mal ausprobieren, ob das Skript überhaupt funktioniert bevor Du es mit cron automatisierst. Und natürlich, ob es das macht, was es soll.
Teste zuerst, ob Dein rsync-Befehl so funktioniert wie er soll, teste dann das shutdown-Kommando (wieso nicht einfach "halt"?). Laut manpage müsste es eher
shutdown -t +5 -h
Markus
Das kann gut sein. Ich will nicht behaupten, dass das ein Fehler im Skript ist, ich hatte nur mal in die manpage gesehen und gelesen, dass
und
Wie sehen denn die crontab Einträge aus?
Und wie ist es mit den Berechtigungen? Das Skript soll ja mit root-Rechten ausgeführt werden. Ist das so?
Markus
PS: und crond läuft?
-t sec Tell init(8) to wait sec seconds between sending processes the warning and the kill signal, before changing to another runlevel
und
The time argument can have different formats. First, it can be an absolute time in the format hh:mm, in which hh is the hour (1 or 2 digits)
and mm is the minute of the hour (in two digits). Second, it can be in the format +m, in which m is the number of minutes to wait. The word
now is an alias for +0.
Das ist die manpage auf meinem Rechner.and mm is the minute of the hour (in two digits). Second, it can be in the format +m, in which m is the number of minutes to wait. The word
now is an alias for +0.
Wie sehen denn die crontab Einträge aus?
Und wie ist es mit den Berechtigungen? Das Skript soll ja mit root-Rechten ausgeführt werden. Ist das so?
Markus
PS: und crond läuft?
Und eine weitere Frage ist: kann denn crond im /root/ Verzeichnis überhaupt auf das Skript zugreifen? Ich würde auf meinem System ein solches Skript in /usr/local/sbin speichern.
Markus
Markus
Hi 8digit,
Scripte, die beim Starten/Beenden aufgerufen werden sollen, legt man im Ordner /etc/init.d ab.
Mit dem Befehl update-rc.d kannst du die Links zu dem Script in den Runlevelordnern rcX.d anlegen.
-n: Die Links werden nicht angelegt, es wird nur ausgegeben, was passieren würde.
defaults: Es werden Standardlinks angelegt.
Die Ausgabe für ein Script firewall könnte dann so aussehen:
Ausgabe am Monitor:
K steht für Kill, S steht für Start. Die Zahl für die Reihenfolge, in der die Scripte gestartet/gekillt werden.
Mehr unter man update-rc.d, oder einfach mal Googlen.
Ich würde das mal mit einem einfachen Script testen, das einfach nur echo "Guten Morgen" ausgibt.
Dann siehst du ja, ob es beim Start aufgerufen wird.
Gruß
Günni
Scripte, die beim Starten/Beenden aufgerufen werden sollen, legt man im Ordner /etc/init.d ab.
Mit dem Befehl update-rc.d kannst du die Links zu dem Script in den Runlevelordnern rcX.d anlegen.
update-rc.d -n scriptname defaults
-n: Die Links werden nicht angelegt, es wird nur ausgegeben, was passieren würde.
defaults: Es werden Standardlinks angelegt.
Die Ausgabe für ein Script firewall könnte dann so aussehen:
update-rc.d -n firewall defaults
Ausgabe am Monitor:
Adding system startup for /etc/init.d/firewall ...
/etc/rc0.d/K20firewall -> ../init.d/firewall
/etc/rc1.d/K20firewall -> ../init.d/firewall
/etc/rc6.d/K20firewall -> ../init.d/firewall
/etc/rc2.d/S20firewall -> ../init.d/firewall
/etc/rc3.d/S20firewall -> ../init.d/firewall
/etc/rc4.d/S20firewall -> ../init.d/firewall
/etc/rc5.d/S20firewall -> ../init.d/firewall
K steht für Kill, S steht für Start. Die Zahl für die Reihenfolge, in der die Scripte gestartet/gekillt werden.
Mehr unter man update-rc.d, oder einfach mal Googlen.
Ich würde das mal mit einem einfachen Script testen, das einfach nur echo "Guten Morgen" ausgibt.
Dann siehst du ja, ob es beim Start aufgerufen wird.
Gruß
Günni