Dies sollte in der /etc/rc.local
Startdatei möglich sein, die am Ende jedes Runlevels ausgeführt wird.
Um in / var / log zu mounten, müssen Sie jeden Prozess stoppen, der Dateien im Protokollverzeichnis geöffnet hat, mounten und dann neu starten. Mein Vorschlag wäre, Ihrem rc.local
Skript die folgende Zeile hinzuzufügen, damit es beim Booten ausgeführt wird:
lsof | grep /var/log | awk '{ print $1 }' | uniq > /root/logs_open
lsof
listet alle geöffneten Dateien auf. Dann filtern wir alle Zeilen heraus, die nicht auf / var / log ( grep /var/log
) verweisen . Wir drucken nur die erste Spalte (Prozessname) des Ergebnisses ( awk '{ print $1 }'
), behalten nur jeweils eine Kopie ( uniq
) und senden die Ausgabe in eine Datei ( > /root/logs_open
). Sie müssen der Startdatei etwas hinzufügen, um diese Prozesse zu stoppen, bevor Sie die Partition mounten, und starten Sie sie anschließend neu. Entfernen Sie mit diesen Informationen die Zeile von rc.local und wir können beginnen.
Zuerst müssen wir alles tun, um die Ramdisk zu erstellen. Vielleicht machen Sie ein Skript, um dies zu tun.
/root/create_ramdisk.sh
Um ein ext3-Dateisystem zu erstellen, führen Sie Folgendes aus:
mkfs.ext3 /dev/rb
Stoppen Sie anschließend jeden Prozess, der protokolliert.
service apache2 stop
Jetzt können wir auf / var / log einbinden
mount /dev/rb /var/log
Starten Sie die zuvor gestoppten Prozesse erneut
service apache2 start
Schließlich muss rc.local mit dem Status 0 oder Bad Things ™ beendet werden.
exit 0
rc.local
Skript:
/root/create_ramdisk.sh # example purposes only mkfs.ext3 /dev/rb # create the filesystem system apache2 stop # stop processes with open log files mount /dev/rb /var/log # mount system apache2 start # restart anything we stopped before exit 0 # important!!! rc.local must exit successfully or Bad Things (tm) happen
Ich hoffe das hilft.