Hallo,
ich möchte mit einem Skript jedes mal beim Herunterfahren das Homeverzeichnis eines Users durch ein Backup ersetzen.
Dies soll bewirken, dass ein öffentlicher Nutzer zwar das Profil "zerstören" kann, aber es einfach nach jedem Neustart wieder so aussieht, wie ich es vorgesehen hab. Dabei werden Dateien, die im Homeverzeichnis abgelegt sind erhalten, es werden aber alle veränderten Config-Dateien gelöscht und aus dem Backup wiederhergestellt. Hierbei geht es um ca 1GB Daten, da eine Wineinstallation inklusive ist.
Das klappt soweit auch ganz gut, wenn ich es per Hand ausführe. Das Ganze sieht ungefähr so aus:
#! /bin/bash rm -r /home/schueler/.[!.]* cp -ra /home/restore/* /home/restore/.[!.]* /home/schueler/ exit 0
Soweit so gut.
Jetzt möchte ich es aber automatisieren. Zuerst hab ich es einfach in /etc/rc.local eingetragen. Dies führte allerdings dazu, dass die Konfigurationsdatein bereits gelöscht waren, aber noch nicht wieder zurückkopiert, als das Autologin zuschlug. Also die Idee es einfach beim Herunterfahren zu machen, nachdem der User ausgelogt ist. Ich habe daher in /etc/rc0.d einen Link zu dem Skript eingefügt. Leider fährt sich Ubuntu runter ohne das Ende des Skriptes abzuwarten.
Also hab ich mir ein einfaches Init-Skript geschrieben. Hier soll zu Testzwecken nur eine 500MB-Datei kopiert werden. Das hab ich in /etc/init.d abgelegt, ausführbar gemacht und mit update-rc.d test stop 0 6 . in den Herunterfahrprozess eingebunden.
test:
#! /bin/sh ### BEGIN INIT INFO # Provides: Was macht das Skript? # Required-Start: # Required-Stop: # Default-Start: # Default-Stop: 0 6 # Short-Description: Kurze Beschreibung # Description: Längere Bechreibung ### END INIT INFO # Author: Name <email@domain.tld> # Aktionen case "$1" in start) ;; stop) mkdir /home/abc echo "Skript gestartet "+`date` >>/home/abc/test.txt /bin/cp /home/say/Datei /home/abc/ >> /home/abc/test.txt echo "Skript beendet "+`date` >>/home/abc/test.txt ;; restart) ;; esac exit 0
Wenn ich es per /etc/init.d/test stop ausführe klappt alles.
Beim Herunterfahren hingegen wird nur das Verzeichnis angelegt und das echo für gestartet und beendet in die Datei geschrieben (Zeitdifferenz 1 Sekunde).
Allerdings das Kopieren wird nicht ausgeführt.
Weiss jemand, welchen Fehler ich mache oder wie ich Ubuntu sage, er soll erst mit dem Herunterfahren weitermachen, wenn das Skript erfolgreich abgeschlossen ist (egal wo eingetragen)?
Schonmal danke fürs lesen und sorry für den vielen Text.