PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RamDisk sichern



Maverick83
20.11.07, 14:49
Hallo Zusammen

Ich habe in der /etc/fstab/ eine Ramdisk an der Stelle /tmp.

Nun möchte ich gerne beim herunterfahren alle Dateien von der Ramdisk sichern und beim hochfahren wieder zurück in die Ramdisk schreiben.

Kann mir da jemand helfen?
Wahrscheinlich geht das mit einem Script, nur weis ich nicht wo anfangen, hab bis jetzt noch kein Script geschrieben.

Danke

zyrusthc
20.11.07, 16:35
Hallo

Man könnte das ganze über ein init-Script machen.

Das Script /etc/init.d/backup_ramdisk erstellen und ausführbar machen.
Bei OpenSuSe 10.x benötigt das init-Script LSB-konformen-Header (http://zyrusthc.homeip.net/include.php?path=forumsthread&threadid=260).

/etc/init.d/backup_ramdisk

case "$1" in
start)
cp -r /var/backup/ramdisk /tmp
;;

stop)
cp -r /tmp /var/backup/ramdisk
;;

restart)
$0 stop
$0 start
;;

*)
echo "Usage: $0 Parameter eingeben {start|stop|restart}"
exit 1
;;
esac

exit 0
Ausführtbar machen:

chmod +x /etc/init.d/backup_ramdisk

Danach noch Symlinks für die Runlevel erstellen:

ln -s /etc/init.d/backup_ramdisk /etc/rc.d/rc3.d/S99backup_ramdisk
ln -s /etc/init.d/backup_ramdisk /etc/rc.d/rc5.d/S99backup_ramdisk

Jetzt sollte bei jeden Stop /tmp nach /var/backup/ramdisk kopiert werden und bei Start wieder zurück.
Nachteil könnte eine Wartezeit beim Starten und Stoppen des Systems sein.


Greeez Oli

Maverick83
21.11.07, 10:14
Danke für das Script, aber es funktioniert nicht.

ich denke es wird garnicht ausgeführt, denn ich habe eine datei im ordner /ramdisk erstellt und die wird beim starten nicht kopiert.
Genau so beim herunterfahren, auch da wird eine testdatei nicht vom ordner /tmp in den ordner ramdisk kopiert.

mir ist aufgefallen , dass ich keinen Ordner /etc/rc.d/... habe.
meine Links liegen jetzt unter /etc/rc3.d/S99backup_ramdisk und
/etc/rc5.d/S99backup_ramdisk

unter /etc liegen bei mir nur:
rc0.d - rc6.d, rc.local und rcS.d

Was mach ich falsch?


edit: Wieso brauche ich 2 Links? (nur so aus Interersse )

marce
21.11.07, 10:26
Ok. Welches System hast Du, wie hast Du das Script eingepflegt, hat es X-Rechte, ...

Maverick83
21.11.07, 10:43
Ich habe Debian 4.0 r1 und habe den code vom Thread kopiert, in File mit namen backup_ramdisk gelegt und wie beschrieben mit chmod +x Rechte gegeben.
ls -l ergibt das:

-rwxr-xr-r 1 root root 233 2007-11-21 12:22 /etc/init.d/backup_ramdisk

marce
21.11.07, 10:44
... und wie hast Du es in die gewünschten RunLevel eingebunden?

-> http://www.debiananwenderhandbuch.de/init.html

Maverick83
21.11.07, 10:48
wie zyrusthc beschrieben hat:


ls -s /etc/rc3.d/S99backup_ramdisk
ls -s /etc/rc5.d/S99backup_ramdisk

ein ls -l ergibt:

lrwxrwxrwx 1 root root 26 2007-11-21 11:31 /etc/rc3.d/S99backup_ramdisk -> /etc/init.d/backup_ramdisk

Maverick83
21.11.07, 12:35
Hallo marce
hatte deinen Link nicht gesehen.

was meinst du mit "... und wie hast Du es in die gewünschten RunLevel eingebunden?"?

Habe mir den Link angesehen und bei mir gibt es kein "rcconf"
Wie kann ich feststelle auf welchem RunLevel mein System läuft?

Maverick83
21.11.07, 12:51
Ich glaube ich habe das Problem gefunden, aber leider keine Lösung dazu!

Ich habe im /etc/fstab eine Ramdisk erstellt auf /tmp, jetzt wird das Script wahrscheinlich ausgeführt bevor die Ramdisk aut /tmp gemountet wurde.

Wie kann ich also feststellen wann die Ramdisk sprich die /etc/fstab ausgeführt wird und dies ändern?

echo
21.11.07, 13:13
mal so ne frage am rande...

warum benutzt du dafür nicht ein normales filesystem, anstelle der RAM-Disk?
Wo liegt bei dir der vorteil zwischen einer RAM-Disk (die dann zu sicher und wieder zu füllen) und einem normale filesystem?
Ok die geschwindigkeit, aber brauchste die den?

marce
21.11.07, 13:19
dafür gäbe es z.B. tmpfs.

... wobei sich mir der Sinn von "dauerhaften" und zu sichernden Daten in /tmp auch noch nicht so recht erschliesst...

Maverick83
21.11.07, 13:49
Ich hab den Fehler gefunden, ich war im Runlevel 2, habe aber den Link im Runlevel 3 gemacht.

Nun funktioniert es!
Danke für deine Hilfe.

Ich möchte ein möglichst kleines System bauen, hab dazu ein mini-ITX Mainboard und einen 1GB USB-Stick, dort ist eine Debian drauf. Über einen Webserver kann darauf zugegriffen werden und eine Datei unter /tmp verändert werden. Damit der USB Stick nicht zuviele Schreibzyklen abbekommt.