Questa è una vecchia versione del documento!


RamLog per Raspbian Jessie

FONTI:

NON USARE QUESTA PROCEDURA CON LA DISTRO RASPBIAN WHEEZY funziona solo ed esclusivamente con la distro Raspbian Jessie

Con Raspbian Jessie non è possibile installare Ramlo, in quanto Jessie a differenza di Wheezy utilizza systemd e Ramlog non è attualmente compatibile con systemd.
E' però possibile ricreare il funzionamento di Ramlog anche su Raspbian Jessie, creando un servizio che compie le medesime operazioni di Ramlog.

1) Da terminale creiamo il servizio ramlog (/usr/bin/ramlog):

sudo nano /usr/bin/ramlog

ed incolliamo il seguente codice:

#!/bin/sh
. /lib/lsb/init-functions

start() {
    log_begin_msg "RAMLOG: Read files from disk.."
    tar xfz /var/ram_log.tar.gz -C /
    log_end_msg 0
}

stop() {
    log_begin_msg "RAMLOG: Write files to disk.."
    tar cfz /var/ram_log.tar.gz --directory=/ var/log/
    log_end_msg 0
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    flush)
        stop
        ;;
    *)
         echo "Usage: $0 {start|stop|flush}"
         exit 1
esac

CTRL+O per salvare e CTRL+X per uscire

Diamo ora i corretti permessi al file:

sudo chmod a+x /usr/bin/ramlog

2) Creiamo una voce per systemd (/etc/systemd/system/ramlog.service): Da terminale

sudo nano /etc/systemd/system/ramlog.service

ed incolliamo il seguente codice:

[Unit]
Description=Ramlog
After=local-fs.target
Before=cron.service syslog.service

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/ramlog start
ExecStop=/usr/bin/ramlog stop

[Install]
WantedBy=multi-user.target

CTRL+O per salvare e CTRL+X per uscire

3) aggiungiamo a cron il comando da eseguire ogni giorno a mezzanotte ed 1 minuto

sudo nano /etc/crontab

e aggiungiamo la seguente riga alla fine

1 0 * * * root /usr/bin/ramlog flush >/dev/null 2>&1

CTRL+O per salvare e CTRL+X per uscire

4) modifichiamo fstab per creare ramdisk della cartella /var/log/

sudo nano /etc/fstab

ed incolliamo la riga:

tmpfs /var/log tmpfs nodev,nosuid 0 0<code>

CTRL+O per salvare e CTRL+X per uscire

5) installiamo il servizio eseguendo da terminale
<code>insserv
systemctl enable ramlog.service

6) avviamo quindi il servizio eseguendo sempre da terminale

systemctl start ramlog.service

7) riavviamo il raspberry

sudo reboot

Ora dovrebbe venire creato il ramdisk della cartella /var/log

Per verificare che Ramlog sia attivo, puoi comunque fare quanto segue:

1) controllare se nella cartella /var/ si trova un file compresso dal nome ram_log.tar.gz con la data dell'ultimo riavvio/spegnimento del raspberry, oppure dell'ultima periodicità del comando inserito in cron (di default prevista alle 00:01 di ogni giorno) Questo è il file che verrà scompattato e copiato nella cartella in memoria temporanea /var/log al riavvio del raspberry Viene creato al primo avvio del servizio ramlog oppure con la periodicità impostata in cron

2) eseguire da Putty il seguente comando:

df

e controllare che la cartella /var/log sia del tipo tmpfs cioè una memoria temporanea (ramdisk)

Se sono verificati i due punti sopra significa che RamLog è attivo e funzionante.

Una ulteriore protezione per evitare la corruzione della scheda SD è di disabilitare lo swapping

Il Raspberry usa dphys-swapfile per controllare lo swapping. Questo crea dinamicamente una partizione di swap. Utilizzeremo questo tool per disabilitare lo swap.

Eseguire i seguenti comandi da terminale per disabilitare lo swap:

sudo systemctl disable dphys-swapfile

Questa soluzione non è però permanente ed al riavvio il raspberry continuerebbe a creare lo swap file. Per rendere permeanente la modifica è necessario rimuovere il pacchetto dphys-swapfile

sudo apt-get remove dphys-swapfile

Infine riavviamo il raspberry

sudo reboot

Fatto ciò potremo eseguire il commando free -m per verificare l’uso della memoria:

Troveremo che lo swap è stato disabilitato.

  • ramlog_jessie.1505716573.txt.gz
  • Ultima modifica: 2017/09/18 08:36
  • da flane