La mia soluzione per Raspbian 8.0 (Jessie) basata sull'accesso alla RAM
Esiste già il pacchetto Debian Ramlog e le istruzioni di installazione per questo. Tuttavia, questo non ha funzionato per me (avvio di ramlog-tmpfs 2.0.0: errore: / var / log è in uso ... [fallito]).
Uso di iotop -bktoqqq
Ho scoperto l'accesso in scrittura più frequente. Si scopre che anche / var / cache / samba / viene spesso scritto. Quindi questo deve anche andare alla RAM oltre a / var / tmp / dove saranno i nuovi file di log.
1. Creazione del ramdisk
Quindi prima queste due voci devono essere aggiunte a / etc / fstab
:
tmpfs / var / tmp tmpfs size = 10 M, nodev, nosuid 0 0tmpfs / var / cache / samba tmpfs size = 5 M, nodev, nosuid 0 0
2. Lo script log2disk
Dobbiamo salvare questo script in / usr / local / bin / log2disk
che aggiungerà ed eliminerà il contenuto da tutti i file di log in / var / tmp / log /
nei file in /var/log/
.
#! / bin / sh # Autore: Frank Breitling <frank.breitling @ gmx.de>DESC = "Spostamento di contenuti da / var / tmp / log / a / var / log /" if [$ (id -u) -ne 0] then echo "Si prega di eseguire come root" exitfiecho $ DESCexec >> / var / log /log2disk.log 2>&1datecd / var / tmp / for i in log / *; fare basename $ i cat $ i >> / var / $ i > $ idone
e renderlo eseguibile sudo chmod + x / usr / local / bin / log2disk
.
3. Aggiunta a crontab
Vogliamo eseguire questo script ogni 3 ore e aggiungere questa riga al /etc/crontab
10 * / del sistema 3 * * * root / usr / local / bin / log2disk
(Non dimenticare una nuova riga finale necessaria a crontab.)
4. Installazione di log2disk.service
Dobbiamo creare un servizio systemd in /lib/systemd/system/log2disk.service
che esegua questo script prima dell'arresto e del riavvio, in modo che il contenuto del file di log venga preservato:
[Unit] Description = Scrivi i file di registro su diskRequiresMountsFor = / Before = rsyslog.service [Service] Type = oneshotRemainAfterExit = trueExecStart = / bin / trueExecStop = / usr / local / bin / log2disk [Install] WantedBy = multi-user.target
e installalo con sudo systemctl enable log2disk
.
5. Selezione dei file di log per la RAM
Ora possiamo dire a /etc/rsyslog.conf
quali file di log tenere nella RAM. Questi file sono auth.log, syslog, daemon.log, user.log e messages
e sostituiamo per ciascuna delle loro voci il percorso log /
con tmp / log /
ad esempio in questo modo:
auth, authpriv. * /var/tmp/log/auth.log
Fatto!
Dopo un riavvio, il sistema ora registrerà le voci di registro più frequenti in / var / tmp / log
e le sincronizzerà di nuovo ogni 3 ore e prima dello spegnimento.
Possiamo utilizzare di nuovo iotop
per trovare un'attività di scrittura notevolmente ridotta, tuttavia non dovremmo preoccuparci del LED ACT verde lampeggiante. Apparentemente questo non è un buon indicatore di accesso in scrittura.