Isso tudo deve ser feito no arquivo de inicialização /etc/rc.local
, que é executado no final de cada runlevel.
Para montar em / var / log, você precisará interromper qualquer processo que tenha arquivos abertos no diretório de log, montá-los e reiniciá-los. Minha sugestão seria adicionar a seguinte linha ao seu script rc.local
, então ele será executado no boot:
lsof | grep /var/log | awk '{ print $1 }' | uniq > /root/logs_open
lsof
lista todos os arquivos abertos. Em seguida, filtramos todas as linhas que não fazem referência a / var / log ( grep /var/log
). Imprimimos apenas a primeira coluna (nome do processo) do resultado ( awk '{ print $1 }'
), mantendo apenas uma cópia de cada ( uniq
) e enviando a saída para um arquivo ( > /root/logs_open
). Você terá que adicionar algo ao arquivo de inicialização para parar esses processos antes de montar a partição e reiniciá-los depois. Com essa informação em mãos, remova essa linha do rc.local e podemos começar.
Primeiro, precisamos fazer o que for necessário para que o ramdisk seja criado. Talvez você faça um script para fazer isso.
/root/create_ramdisk.sh
Para criar um sistema de arquivos ext3, você executa:
mkfs.ext3 /dev/rb
Em seguida, pare qualquer processo que esteja registrando.
service apache2 stop
Agora podemos montar em / var / log
mount /dev/rb /var/log
Inicie o backup dos processos que paramos anteriormente
service apache2 start
Por fim, rc.local deve sair com status 0 ou Bad Things ™ acontecer.
exit 0
rc.local
script:
/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
Espero que isso ajude.