Wszystko powinno być wykonalne w /etc/rc.local
plik startowy, który jest uruchamiany na końcu każdego poziomu pracy.
Aby zamontować w / var / log, musisz zatrzymać dowolny proces, który ma pliki otwarte w katalogu dziennika, zamontować je i ponownie uruchomić. Moją sugestią byłoby dodanie następującej linii do twojego rc.local
skrypt, więc działa przy starcie:
lsof | grep /var/log | awk '{ print $1 }' | uniq > /root/logs_open
lsof
wyświetla wszystkie otwarte pliki. Następnie odfiltrowujemy wszystkie linie, które nie odwołują się do / var / log ( grep /var/log
). Drukujemy tylko pierwszą kolumnę (nazwę procesu) wyniku ( awk '{ print $1 }'
), zachowując tylko jedną kopię każdego ( uniq
) i wysłanie wyniku do pliku ( > /root/logs_open
). Będziesz musiał dodać coś do pliku startowego, aby zatrzymać te procesy przed zamontowaniem partycji i zrestartować je po słowach. Mając te informacje w ręku, usuń ten wiersz z rc.local i możemy zacząć.
Po pierwsze, musimy zrobić wszystko, aby utworzyć ramdysk. Może zrobisz skrypt, aby to zrobić.
/root/create_ramdisk.sh
Aby utworzyć system plików ext3, uruchamiasz:
mkfs.ext3 /dev/rb
Następnie zatrzymaj proces, który się loguje.
service apache2 stop
Teraz możemy zamontować na / var / log
mount /dev/rb /var/log
Rozpocznij tworzenie kopii zapasowej procesów, które zatrzymaliśmy wcześniej
service apache2 start
W końcu rc.local musi wyjść ze statusem 0 lub zdarzyć się Bad Things ™.
exit 0
rc.local
scenariusz:
/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
Mam nadzieję, że to pomoże.