ubuntuusers.de

Skript bei shutdown ausführen?

Status: Ungelöst | Ubuntu-Version: Kubuntu 11.10 (Oneiric Ocelot)
Antworten |

tailormade

Anmeldungsdatum:
30. Januar 2012

Beiträge: 10

Wohnort: Österreich

Hallo!

Ich kämpfe jetzt schon seit einiger Zeit mit einem Backup, das ich zum shutdown ausführen lassen will. Das mache ich mit rsync. Eigentlich klappt ja die Sicherung schon. Aber das mit dem Starten, wenn der Rechner heruntergefahren werden soll, das klappt irgendwie noch nicht so richtig. Bin aber eher Shell-Anfänger und kenne mich mit dem System noch nicht so gut aus. Übrigens soll das ganze unter root geschehen, da alle Benutzerdaten gesichert werden sollen - also von mehreren Benutzern.

Als erstes: Ich habe versucht, dass über einen Dienst abzuwickeln. Nur, ist das eigentlich sinnvoll? Ich meine, es ist ja kein Dienst, der gestartet und gestoppt werden soll, wie z.B. eine Datenbank, sondern der Vorgang muss nur einmal gestartet werden und soll dann irgendwann einmal fertig sein. Ist es so gesehen richtig, das ganze zu einem Dienst zu machen? Kommt mir komisch vor.

Dann: Wenn es ein Dienst sein soll, welche Dienstkommandos muss ich implementieren, außer start? Muss ich damit rechnen, dass Ubuntu auch stop oder restart aufruft? Ganz allgemein, woher weiß ich, wie das System die Dienste verwendet? Oder gibt es da keinen Automatismus, müssen neue Dienste immer selbst kontrolliert werden? Stop wird aber wohl bei allen aufgerufen, oder? Spätestens doch beim Shutdown.

Und wie muss eigentlich der Bereich bei INIT INFO nun genau ausschauen? Und wie der update-rc.d-Befehl, den ich wohl verwenden sollte? Das müsste doch jetzt eindeutig sein (also nicht: kommt darauf an). Das Skript soll ja einfach nur beim Herunterfahren oder Neustarten ausgeführt werden. Und die Daten sollen vom lokalen /home-Verzeichnis auf ein NAS (mit rsync-Daemon) kopiert werden.

Und, soll ich die init.d-skeleton-Vorlage hernehmen, mit samt ihren start-stop-daemon-Aufrufen? Oder kann/soll ich das doch irgendwie anders machen?

Hoffentlich kann mir da wer ein wenig weiterhelfen. Ich bin da noch eher unsicher, mit der ganzen Geschichte.

Für Hilfe schomma Danke! Gruß, Robert

salocin

Anmeldungsdatum:
30. September 2007

Beiträge: 292

ist jetzt nicht die gw+nschte Lösung, aber evtl eine Überlegung wert:

Ich fände es sehr unpraktisch, wenn das backup wirklich IMMER beim runterfahren an geht, evtl will ich nur mal schnell neustarten, oder aus anderen gründen mal ohne backup runterfahren.

Wäre es nicht praktischer statt "backup beim shutdown" eher "shutdown nach backup" in das backup script zu bauen? Das kann man sich dann ja trotzdem ähnlich der shutdown Schaltfläche platzieren und dann einfach fast immer dieses script zum herunterfahren starten.

theinlein

Anmeldungsdatum:
29. Dezember 2007

Beiträge: 1279

Hi,

dein Backup ist in diesem SInne zwar kein Dienst im Hintergrund (also keiner, der während der laufzeit von außen verfügbar wäre). Es ist aber so, dass "standardmäßig" Dienste beim Hochfahren gestartet, beim Herunterfahren gestoppt werden.

Du benötigst also ein Dummy-Start für deinen Dienst (mit start passiert also nix) und ein Durchführen des Backups bei "Stopp" des Dienstes.

Ubuntu verwendet inzwischen "Upstart" zum Management der Dienste (siehe hier im Wiki).

salocin

Anmeldungsdatum:
30. September 2007

Beiträge: 292

Achso, wenn du es wirklich immer haben möchtest, dann ist upstart natürlich richtig, aber da muss man einiges beachten, upstart führt alles parallel aus, falls also Abhängigkeiten bestehen, muss man diese angeben damit sie eingehalten werden.

Und bei dir fallen mir da direkt einige Abhängikeiten ein: vorm unmount, vorm Netzwerk runterfahren, aber nach dem Herunterfahren von Diensten deren Daten man evtl sichern will.

Das müsste dann sowas sein:

start on stopping umountfs or stopping networking or ...

Aber ich kenn mich da auch nur sehr wenig aus

tailormade

(Themenstarter)

Anmeldungsdatum:
30. Januar 2012

Beiträge: 10

Wohnort: Österreich

@salocin: Shutdown nach Backup wäre eigentlich ja auch okay. Aber dafür müsste ich, wenn ich es richtig sehe, immer mein Passwort eingeben, weil ich ja wie gesagt als root sichern will. Das ist ja dann doch recht unpraktisch, da ich ja doch fast ausschließlich über die GUI arbeite.

@theinlein: Aha, so hatte ich mir das auch noch nicht gedacht. Ich dachte immer, dass ich beim Betreten des "shutdown-runlevels" den Dienst starten müsste. Aber so wie du es beschrieben hast, klingt es auch auch sehr vernünftig.

Und wie müsste man das dann machen? Und wie wäre das mit upstart machbar? Habe echt zu wenig Ahnung. Bei mir gibt's leider mehr Unklarheiten als Wissen, und ich wäre froh, wenn es dann mal endlich läuft... 😕

salocin

Anmeldungsdatum:
30. September 2007

Beiträge: 292

Alles ohne Gewähr und ungetestet:

Das hier sollte das backup als aller erstes starten, bevor irgendwas anderes runtergefahren wird oder gar die term signals versendet wurden: /etc/init/backup.conf

description "Starte backup script beim shutdown"

start on starting rc
task
exec /usr/local/bin/backupscript

http://upstart.ubuntu.com/cookbook/#shutdown-process

Das Problem mit dem root passwort ist einfach zu umgehen, benutze sudo für dein script und erlaube dem Benutzer/Gruppe das starten dieses einen scriptes mittles sudo OHNE Passwortabfrage:

in /etc/sudoers unten anfügen:

MeinBenutzerName ALL=NOPASSWD: /usr/local/bin/backupscript

nun kann man sich irgendein icon irgendwo hin basteln, dass sudo /usr/local/backupscript startet und es kommt keine Passwortabfrage

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Hi Robert,

erstmal willkommen auf dem Forum !

Grundsätzlich gibt es ja einen Ort, wo alle Skripte stehen, die beim Shutdown (= Runlevel 0) ausgeführt werden: /etc/rc0.d
und einen Ort, wo alle Skripte stehen, die beim rebooten (= Runlevel 6) ausgeführt werden: /etc/rc6.d
(ich hoffe, das funktioniert jetzt auch unter Upstart noch !)

Aber trotzdem scheint mir der Vorschlag von salocin sinnvoller, mit einem Backupskript, das dann seinerseits den Rechner herunterfährt.

LG,

track

Antworten |