View previous topic :: View next topic |
Author |
Message |
Cazzantonio Bodhisattva


Joined: 20 Mar 2004 Posts: 4514 Location: Somewere around the world
|
Posted: Sat Aug 18, 2007 4:03 pm Post subject: [Tip] /var/log, /var/run e /var/lock in tmpfs |
|
|
Recentemente ho usato un po' ubuntu e mi sono accorto che usa tmpfs anche per le directory /var/lock e /var/run (che teoricamente dovrebbero contenere solo file temporanei). La cosa potrebbe non essere un idiozia visto che potrebbe (teoricamente... dubito cambi qualcosa nella realtà) ridurre gli accessi a disco.
Visto che mettere barbaramente in tmpfs le due directory non è una cosa saggia (contengono anche directory create da alcuni ebuild) ho creato un piccolo script che crea un tar della directory e lo ripristina al riavvio nella tmpfs.
Mi sono spinto anche più in la', ovvero ho messo in tmpfs anche le directory /var/log! e /var/spool
Pazzia direte voi... beh fino ad un certo punto... su un portatile i log potrebbero essere superflui e comunque ho arrangiato lo script in modo da creare un tar anche di quelli. In questo modo vengono persi solo in caso di freeze o spegnimento improvviso del sistema.
Appena il tar dei log raggiunge la dimensione stabilita da $MAX_LOG_SIZE viene creato un backup dei log e i precedenti vengono cancellati. Viene preservato emerge.log visto che molti utenti trovano importante avere tutta la storia di emerge.
Vedete voi se la cosa vi gusta, in ogni caso eccovi il mio initscript da aggiungere al runlevel di boot
Code: | #!/sbin/runscript
depend() {
after localmount root
before bootmisc logger cron
}
#Directory dove salvare i tar di /var/log, /var/run e /var/lock
DATA_DIR_BACKUP=/var
#Massima dimensione del tar dei log prima della rotazione
MAX_LOG_SIZE=50
#Se si vuole che lo script agisca come demone e ruoti i log anche prima del
#riavvio impostare la seguente variabile a 1
DEMONIZED=0
#Nel caso si imposti DEMONIZED=1 selezionare l'intervallo di tempo tra i controlli
#della dimensione della directory /var/log
#Il suffisso puo' essere `s' per secondi (the default), `m' per minuti, `h' per
#ore o `d' per giorni.
CHECK_TIME=2h
#Il demone è lo script /usr/local/sbin/log_daemon.sh
backup() {
#backup struttura di /var/log e rotazione in caso di dimensione eccessiva
cd /var
tar cvpf $DATA_DIR_BACKUP/log_bk.tar log/ &>/dev/null
chmod 600 $DATA_DIR_BACKUP/log_bk.tar
LOGSIZE=$(du -m $DATA_DIR_BACKUP/log_bk.tar|cut -f1)
if [ $LOGSIZE -gt $MAX_LOG_SIZE ]; then
cd /var
echo "Log size limit reached. Rotating logs"
/bin/mv $DATA_DIR_BACKUP/log_bk.tar $DATA_DIR_BACKUP/log_bk.tar_old -f
tar cvzpf $DATA_DIR_BACKUP/log_bk.tar log/ &>/dev/null
chmod 600 $DATA_DIR_BACKUP/log_bk.tar $DATA_DIR_BACKUP/log_bk.tar
/bin/mv $DATA_DIR_BACKUP/log_bk.tar $DATA_DIR_BACKUP/log_bk.tar_old -f
/bin/rm `find /var/log -type f|grep -v "\.keep"|grep -v "emerge.log"`
touch /var/run/utmp; chgrp utmp /var/run/utmp; chmod 664 /var/run/utmp
tar cvzpf $DATA_DIR_BACKUP/log_bk.tar log/ &>/dev/null
chmod 600 $DATA_DIR_BACKUP/log_bk.tar $DATA_DIR_BACKUP/log_bk.tar
else
echo "Log size = $LOGSIZE M, Rotating at $MAX_LOG_SIZE"
fi
#backup struttura di /var/run
/bin/rm `find /var/run -type f -iname *.pid` -rf
echo "" > /var/run/utmp
tar cvpf $DATA_DIR_BACKUP/run_bk.tar run/ &>/dev/null
chmod 600 $DATA_DIR_BACKUP/run_bk.tar
#backup struttura di /var/lock
tar cvpf $DATA_DIR_BACKUP/lock_bk.tar lock/ &>/dev/null
chmod 600 $DATA_DIR_BACKUP/lock_bk.tar
#backup struttura di /var/spool
tar cvpf $DATA_DIR_BACKUP/spool_bk.tar spool/ &>/dev/null
chmod 600 $DATA_DIR_BACKUP/spool_bk.tar
}
restore() {
#ripristino struttura di /var/log e creazione dei file neccessari per il boot
tar xvpf $DATA_DIR_BACKUP/log_bk.tar -C /var/ &>/dev/null
#ripristino struttura di /var/run e creazione dei file neccessari per il boot
tar xvpf $DATA_DIR_BACKUP/run_bk.tar -C /var/ &>/dev/null
test -e /var/run/utmp || touch /var/run/utmp && chgrp utmp /var/run/utmp && chmod 664 /var/run/utmp
#ripristino struttura di /var/lock e relativi permessi
tar xvpf $DATA_DIR_BACKUP/lock_bk.tar -C /var/ &>/dev/null
chmod 775 /var/lock && chown root:wheel /var/lock
#ripristino struttura di /var/spool e relativi permessi
tar xvpf $DATA_DIR_BACKUP/spool_bk.tar -C /var/ &>/dev/null
chmod 755 /var/spool
#daemon
if [ $DEMONIZED -eq 1 ]; then
/usr/local/sbin/log_daemon.sh &
fi
}
start() {
ebegin "Ripristino struttura di /var/log, /var/run, /var/lock e /var/spool"
restore
eend $?
}
stop() {
ebegin "Backup struttura di /var/log, /var/run, /var/lock e /var/spool"
backup
eend $?
} |
Per usare il demone, ovvero per avere una rotazione dei log anche a pc acceso (non solo durante i reboot), dovete mettere in /usr/local/sbin questo script:
log_daemon.sh:
Code: | #!/bin/sh
DEMONIZED=`cat /etc/init.d/manage_log|grep -v "#" |grep DEMONIZED|cut -d"=" -f2|head -n1`
DATA_DIR_BACKUP=`cat /etc/init.d/manage_log|grep -v "#" |grep DATA_DIR_BACKUP|cut -d"=" -f2|head -n1`
MAX_LOG_SIZE=`cat /etc/init.d/manage_log|grep -v "#" |grep MAX_LOG_SIZE|cut -d"=" -f2|head -n1`
CHECK_TIME=`cat /etc/init.d/manage_log|grep -v "#" |grep CHECK_TIME|cut -d"=" -f2|head -n1`
while [ $DEMONIZED -eq 1 ]; do
LOGSIZE=$(du -ms /var/log|cut -f1)
if [ $LOGSIZE -gt $MAX_LOG_SIZE ]; then
cd /var
echo "Log size limit reached. Rotating logs"
/etc/init.d/syslog-ng stop
/bin/mv $DATA_DIR_BACKUP/log_bk.tar $DATA_DIR_BACKUP/log_bk.tar_old -f
tar cvzpf $DATA_DIR_BACKUP/log_bk.tar log/ &>/dev/null
chmod 600 $DATA_DIR_BACKUP/log_bk.tar $DATA_DIR_BACKUP/log_bk.tar
/bin/mv $DATA_DIR_BACKUP/log_bk.tar $DATA_DIR_BACKUP/log_bk.tar_old -f
/bin/rm `find /var/log -type f|grep -v "\.keep"|grep -v "emerge.log"`
touch /var/run/utmp; chgrp utmp /var/run/utmp; chmod 664 /var/run/utmp
tar cvzpf $DATA_DIR_BACKUP/log_bk.tar log/ &>/dev/null
chmod 600 $DATA_DIR_BACKUP/log_bk.tar $DATA_DIR_BACKUP/log_bk.tar
/etc/init.d/syslog-ng start
fi
sleep $CHECK_TIME
done |
Ovviamente dovete preoccuparvi di aggiornare fstab con voci di questo tipo:
Code: | varlog /var/log/ tmpfs mode=1755,size=100m 0 0
varrun /var/run/ tmpfs mode=1755,size=1m 0 0
varlock /var/lock/ tmpfs mode=1775,size=1m 0 0
varspool /var/spool tmpfs mode=1750,size=1m 0 0 |
Parto dal presupposto che chi si azzarda ad usare questo script sappia cosa sta facendo.
P.S. ho notato in seguito che esisteva anche un'altro tip del genere nel forum internazionale:
https://forums.gentoo.org/viewtopic-t-371889-highlight-tmpfs+var+lock.html
Il mio è stato pensato in modo indipendente e potete valutare da soli quali delle due soluzioni scegliere  _________________ Any mans death diminishes me, because I am involved in Mankinde; and therefore never send to know for whom the bell tolls; It tolls for thee.
-John Donne
Last edited by Cazzantonio on Sun Sep 20, 2009 9:29 am; edited 6 times in total |
|
Back to top |
|
 |
cloc3 Advocate


Joined: 13 Jan 2004 Posts: 4817 Location: http://www.gentoo-users.org/user/cloc3/
|
Posted: Sun Aug 19, 2007 8:31 am Post subject: Re: [Tip] /var/log, /var/run e /var/lock in tmpfs |
|
|
Cazzantonio wrote: |
Visto che mettere barbaramente in tmpfs le due directory non è una cosa saggia (contengono anche directory create da alcuni ebuild) ho creato un piccolo script che crea un tar della directory e lo ripristina al riavvio nella tmpfs.
|
anziché solo al riavvio, potresti determinare una frequenza di backup, per chi tiene accesa la macchina di notte.
Cazzantonio wrote: |
e i precedenti vengono cancellati.
|
io metterei una desinenza variabile che permetta di mantenere i vecchi log.
infine, una cosa che cambierei è il nome della $DATA_DIR_BACKUP di default. non /var ma /var/backup , magari con un controllo iniziale che la crea se non preesistente. potrebbe essere utile, magari, prelevare il nome da /etc/env.02locale.
ps. i file per il boot sono troppo utili. _________________ vu vu vu
gentù
mi piaci tu |
|
Back to top |
|
 |
Kernel78 Moderator

Joined: 24 Jun 2005 Posts: 3654
|
Posted: Sun Aug 19, 2007 8:50 am Post subject: Re: [Tip] /var/log, /var/run e /var/lock in tmpfs |
|
|
Cazzantonio wrote: | Mi sono spinto anche più in la', ovvero ho messo in tmpfs anche la directory /var/log!
Pazzia direte voi... beh fino ad un certo punto... su un portatile i log potrebbero essere superflui e comunque ho arrangiato lo script in modo da creare un tar anche di quelli. In questo modo vengono persi solo in caso di freeze o spegnimento improvviso del sistema.
|
Pazzia no ma non riesco a vederne l'utilità pratica ...
Se ritieni i log superflui puoi proprio evitare di farli scrivere così non ti occupano ram e non generano accessi al disco.
Se i log vengono scritti con parsimonia allora la quantità di accessi che togli al disco non vale la pena (a meno che il tuo portatile non abbia 8gb di ram).
Se i log vengono scritti ad un livello di dettaglio molto alto allora potrebbe esserci un senso ma dovresti rotarli in fretta per evitare di riempirti la memoria e mi chiederei perchè tenerli ad un livello di dettaglio così alto.
Cazzantonio wrote: |
Appena il tar dei log raggiunge la dimensione stabilita da $MAX_LOG_SIZE viene creato un backup dei log e i precedenti vengono cancellati.
|
per questo non sarebbe più pratico usare logrotate ?
Per le altre due dir potrebbe anche andare ma per i log mi lascia decisamente perplesso. _________________ Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con Code: | grep -vE '(^[[:space:]]*($|(#|!|;|//)))' |
|
|
Back to top |
|
 |
Cazzantonio Bodhisattva


Joined: 20 Mar 2004 Posts: 4514 Location: Somewere around the world
|
Posted: Sun Aug 19, 2007 8:56 am Post subject: Re: [Tip] /var/log, /var/run e /var/lock in tmpfs |
|
|
cloc3 wrote: | anziché solo al riavvio, potresti determinare una frequenza di backup, per chi tiene accesa la macchina di notte. | E' pensato per un portatile che pertanto viene riavviato spesso... In caso contrario puoi sempre utilizzare logrotate.
Quote: | io metterei una desinenza variabile che permetta di mantenere i vecci log. | Beh io ho pensato ad una singola rotazione (quando mai vai a leggere dei log vecchi di mesi?), comunque è fattibile.
Quote: | infine, una cosa che cambierei è il nome della $DATA_DIR_BACKUP di default. non /var ma /var/backup | /var/backup non esiste di default mentre /var si... La variabile esiste per essere modificata all'occorrenza e se vuoi creare una directory di backup sei liberissimo
Quote: | magari con un controllo iniziale che la crea se non preesistente. potrebbe essere utile, magari, prelevare il nome da /etc/env.02locale. | Mi sembra molto macchinoso. Inoltre non vedo perché imporre delle scelte (tipo la directory di default) quando la puoi creare ed impostare da solo se ti serve. Non vedo infine perché appoggiarsi a più file (02locale) quando posso avere tutto dentro un semplice initscript (altrimenti potrei mettere anche un file /etc/conf.d/ ma è troppo macchinoso per le poche variabili che uso).
Kernel78 wrote: | Pazzia no ma non riesco a vederne l'utilità pratica ... | Nessuno ti obbliga
Togliere i log mi sembra esagerato, ti ripeto che li perdo solo in caso di crash (non mi capita così spesso...).
Non capisco questa storia del dettaglio... uso syslog-ng in una configurazione abbastanza standard e loggo praticamente tutto il loggabile. Nonostante tutto per accumulare 50 mega di log ci mette una vita (se non hai problemi vari che ti riempiono i log).
Quote: | per questo non sarebbe più pratico usare logrotate ? | A dire il vero non ne ho mai apprezzato il funzionamento. Logrotate ti consente di controllare con dettaglio la rotazione di ogni SINGOLO file. Non consente (per quanto ne so) di impostare condizioni globali su tutta la cartella dei log. In questo modo posso ruotare tutta la cartella appena sopraggiungono delle condizioni generiche. Mi piace di più così. _________________ Any mans death diminishes me, because I am involved in Mankinde; and therefore never send to know for whom the bell tolls; It tolls for thee.
-John Donne |
|
Back to top |
|
 |
cloc3 Advocate


Joined: 13 Jan 2004 Posts: 4817 Location: http://www.gentoo-users.org/user/cloc3/
|
Posted: Sun Aug 19, 2007 9:20 am Post subject: Re: [Tip] /var/log, /var/run e /var/lock in tmpfs |
|
|
Cazzantonio wrote: | Non consente (per quanto ne so) |
non è vero. ma questo è proprio il problema di logrotate. ha troppe opzioni, e naturlamente quella che ti sembra irriunciabile è proprio quella che non troverai mai. _________________ vu vu vu
gentù
mi piaci tu |
|
Back to top |
|
 |
Cazzantonio Bodhisattva


Joined: 20 Mar 2004 Posts: 4514 Location: Somewere around the world
|
Posted: Sun Aug 19, 2007 9:26 am Post subject: |
|
|
ho aggiornato lo script per tenere conto della rotazione dei log anche da pc acceso  _________________ Any mans death diminishes me, because I am involved in Mankinde; and therefore never send to know for whom the bell tolls; It tolls for thee.
-John Donne |
|
Back to top |
|
 |
cloc3 Advocate


Joined: 13 Jan 2004 Posts: 4817 Location: http://www.gentoo-users.org/user/cloc3/
|
Posted: Sun Aug 19, 2007 9:41 am Post subject: |
|
|
Cazzantonio wrote: | ho aggiornato lo script per tenere conto della rotazione dei log anche da pc acceso  |
su. modifica anche i file per il boot.
ti ripeto che sono troppo utili. _________________ vu vu vu
gentù
mi piaci tu |
|
Back to top |
|
 |
Cazzantonio Bodhisattva


Joined: 20 Mar 2004 Posts: 4514 Location: Somewere around the world
|
Posted: Sun Aug 19, 2007 9:48 am Post subject: |
|
|
cloc3 wrote: | su. modifica anche i file per il boot.
ti ripeto che sono troppo utili. | Effettivamente mi ero dimenticato di aggiungere il controllo per la rigenerazione di alcuni file... era quello che intendevi? _________________ Any mans death diminishes me, because I am involved in Mankinde; and therefore never send to know for whom the bell tolls; It tolls for thee.
-John Donne |
|
Back to top |
|
 |
cloc3 Advocate


Joined: 13 Jan 2004 Posts: 4817 Location: http://www.gentoo-users.org/user/cloc3/
|
Posted: Sun Aug 19, 2007 4:48 pm Post subject: |
|
|
Cazzantonio wrote: | Effettivamente mi ero dimenticato di aggiungere il controllo per la rigenerazione di alcuni file... era quello che intendevi? |
no, no.
dicevo proprio i file di boot.
i tuoi sono addirittura:
Cazzantonio wrote: |
neccessari
|
 _________________ vu vu vu
gentù
mi piaci tu |
|
Back to top |
|
 |
Kernel78 Moderator

Joined: 24 Jun 2005 Posts: 3654
|
Posted: Sun Aug 19, 2007 5:30 pm Post subject: Re: [Tip] /var/log, /var/run e /var/lock in tmpfs |
|
|
Cazzantonio wrote: | Togliere i log mi sembra esagerato, ti ripeto che li perdo solo in caso di crash (non mi capita così spesso...).
|
Sei tu che hai scritto:"su un portatile i log potrebbero essere superflui", nel caso tu fossi convinto che fossero superflui la soluzione migliore sarebbe di toglierli ...
Quote: |
Non capisco questa storia del dettaglio... uso syslog-ng in una configurazione abbastanza standard e loggo praticamente tutto il loggabile. Nonostante tutto per accumulare 50 mega di log ci mette una vita (se non hai problemi vari che ti riempiono i log).
|
Non è solo la configurazione del logger che conta ma anche quella dei vari servizi, un conto è impostare i servizi in modo che riportino solo gli errori, altra cosa è impostarli affinché scrivano un trattato di 30 pagine ogni volta che impostano una variabile (magari stai debuggando o altro).
Con una configurazione abbastanza standard come la tua (in cui, fidati, loggi una minima frazione del loggabile) ha poco senso pratico spostare i log in ram per evitare continui accessi al disco, visto che ci pensa già il fs a bufferizzare prima di scrivere su disco ed essendo un flusso minimo di dadi è più l'impegno della ram che non il risparmi del disco ...
Quote: |
Quote: | per questo non sarebbe più pratico usare logrotate ? | A dire il vero non ne ho mai apprezzato il funzionamento. Logrotate ti consente di controllare con dettaglio la rotazione di ogni SINGOLO file. Non consente (per quanto ne so) di impostare condizioni globali su tutta la cartella dei log. In questo modo posso ruotare tutta la cartella appena sopraggiungono delle condizioni generiche. Mi piace di più così. |
Come ti hanno fatto notare logrotate può gestire anche intere directory. _________________ Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con Code: | grep -vE '(^[[:space:]]*($|(#|!|;|//)))' |
|
|
Back to top |
|
 |
Cazzantonio Bodhisattva


Joined: 20 Mar 2004 Posts: 4514 Location: Somewere around the world
|
Posted: Sun Aug 19, 2007 6:01 pm Post subject: Re: [Tip] /var/log, /var/run e /var/lock in tmpfs |
|
|
Quote: | Come ti hanno fatto notare logrotate può gestire anche intere directory. | Come? Ho letto bene man logrotate ma non ho capito come...
cloc3 wrote: | dicevo proprio i file di boot. | Quali file di boot??  _________________ Any mans death diminishes me, because I am involved in Mankinde; and therefore never send to know for whom the bell tolls; It tolls for thee.
-John Donne |
|
Back to top |
|
 |
cloc3 Advocate


Joined: 13 Jan 2004 Posts: 4817 Location: http://www.gentoo-users.org/user/cloc3/
|
Posted: Sun Aug 19, 2007 7:02 pm Post subject: Re: [Tip] /var/log, /var/run e /var/lock in tmpfs |
|
|
Cazzantonio wrote: | Quali file di boot??  |
vedo che non c'è verso.
era ironia infantile sulla doppia c della parola "necessari" (nei commenti), che sembrava rendere i tuoi file per il boot straordinaria utilità...
perdonami, siamo in vacanza. _________________ vu vu vu
gentù
mi piaci tu |
|
Back to top |
|
 |
Kernel78 Moderator

Joined: 24 Jun 2005 Posts: 3654
|
Posted: Sun Aug 19, 2007 9:46 pm Post subject: Re: [Tip] /var/log, /var/run e /var/lock in tmpfs |
|
|
Cazzantonio wrote: | Quote: | Come ti hanno fatto notare logrotate può gestire anche intere directory. | Come? Ho letto bene man logrotate ma non ho capito come...
|
Posso credere che tu abbia scorso velocemente il man ma che lo abbia letto bene e non abbia capito la spiegazione dell'esempio su come rotare una directory ... man logrotate wrote: | The last section defines the parameters for all of the files in
/var/log/news. Each file is rotated on a monthly basis. This is con-
sidered a single rotation directive and if errors occur for more then
one file, the log files are not compressed.
Please use wildcards with caution. If you specify *, logrotate will
rotate all files, including previously rotated ones. A way around this
is to use the olddir directive or a more exact wildcard (such as
*.log). |
mi sembra strano
Quale parte non hai capito ? _________________ Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con Code: | grep -vE '(^[[:space:]]*($|(#|!|;|//)))' |
|
|
Back to top |
|
 |
Cazzantonio Bodhisattva


Joined: 20 Mar 2004 Posts: 4514 Location: Somewere around the world
|
Posted: Sun Aug 19, 2007 10:16 pm Post subject: Re: [Tip] /var/log, /var/run e /var/lock in tmpfs |
|
|
Kernel78 wrote: | Quale parte non hai capito ? | No, quella parte l'ho capita benissimo, solo che non ruota tutti i files che sono invece contenuti nelle sottodirectory di /var/log
Infatti mi toccava usare un logrotate.conf del genere e ricordarmi di aggiungere una voce in più ogni volta che un ebuild creava una sottodirectory in /var/log
Code: | /var/log/* {
rotate 1
}
/var/log/sandbox/* {
rotate 1
}
/var/log/cups/* {
rotate 1
}
/var/log/gdm/* {
rotate 1
}
/var/log/news/* {
rotate 1
}
/var/log/partimage/* {
rotate 1
}
/var/log/samba/* {
rotate 1
}
/var/log/tor/* {
rotate 1
}
/var/log/portage/* {
rotate 1
}
/var/log/portage/elog/* {
rotate 1
olddir /var/log/old_logs/elog
} |
Non è proprio il massimo della praticità
Magari fosse stato possibile specificare di rotare tutta la directory INCLUSE le subdirectory...
Comunque siamo OT nel parlare di logrotate.
Il mio script non ha tutte queste pretese... se vi piace bene, altrimenti sentitevi liberi di non usarlo  _________________ Any mans death diminishes me, because I am involved in Mankinde; and therefore never send to know for whom the bell tolls; It tolls for thee.
-John Donne |
|
Back to top |
|
 |
Kernel78 Moderator

Joined: 24 Jun 2005 Posts: 3654
|
Posted: Mon Aug 20, 2007 5:42 am Post subject: Re: [Tip] /var/log, /var/run e /var/lock in tmpfs |
|
|
Cazzantonio wrote: | Kernel78 wrote: | Quale parte non hai capito ? | No, quella parte l'ho capita benissimo, solo che non ruota tutti i files che sono invece contenuti nelle sottodirectory di /var/log
Infatti mi toccava usare un logrotate.conf del genere e ricordarmi di aggiungere una voce in più ogni volta che un ebuild creava una sottodirectory in /var/log
Code: | /var/log/* {
rotate 1
}
/var/log/sandbox/* {
rotate 1
}
/var/log/cups/* {
rotate 1
}
/var/log/gdm/* {
rotate 1
}
/var/log/news/* {
rotate 1
}
/var/log/partimage/* {
rotate 1
}
/var/log/samba/* {
rotate 1
}
/var/log/tor/* {
rotate 1
}
/var/log/portage/* {
rotate 1
}
/var/log/portage/elog/* {
rotate 1
olddir /var/log/old_logs/elog
} |
Non è proprio il massimo della praticità
|
Ci credo che non è il massimo come praticità, è sbagliato ...
In questo modo tu prendi tutti i file nelle varie directory, anche quelli che hai già ruotato, e li ruoti di nuovo (tranne gli elog per cui usi olddir), inoltre è perfettamente inutile che ridefinisci ogni volta "rotate 1", basta che la definisci globalmente.
Please use wildcards with caution. If you specify *, logrotate will
rotate all files, including previously rotated ones. A way around this
is to use the olddir directive or a more exact wildcard (such as
*.log).
Quote: |
Magari fosse stato possibile specificare di rotare tutta la directory INCLUSE le subdirectory...
Comunque siamo OT nel parlare di logrotate.
|
Ok, che io sappia non funziona ricorsivamente e so di essere OT ma mi sembrava maleducato non rispondere alla tua domanda
Quote: | Il mio script non ha tutte queste pretese... se vi piace bene, altrimenti sentitevi liberi di non usarlo  |
Ovvio che non ho nessuna pistola alla testa e quindi non lo uso ma pensavo che delle critiche costruttive ti potessero interessare, non pensavo si trattasse di un esercizio di stile fine a se stesso.
La mia impressione era che oltre a reinventare la ruota tu l'abbia fatta un po' più squadrata e pretenda che vada montata sul tettuccio della macchina.
Meno di quanto già esiste (per tua stessa ammissione) e dal mio punto di vista di utilità dubbia.
Ho fatto notare le mie perplessità, non sono perfetto e magari non avevo pensato a qualche fattore che rendeva utile il tuo script, e fatto notare l'esistenza di strumenti già esistenti, più testati ed efficienti che già esistono.
La mia considerazione sui log è stata lasciata cadere e quando rispondo alla tua domanda su logrotate mi dici che andiamo OT, se non vuoi discuterne dillo dal primo post  _________________ Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con Code: | grep -vE '(^[[:space:]]*($|(#|!|;|//)))' |
|
|
Back to top |
|
 |
codadilupo Advocate

Joined: 05 Aug 2003 Posts: 3135
|
Posted: Mon Aug 20, 2007 7:08 am Post subject: Re: [Tip] /var/log, /var/run e /var/lock in tmpfs |
|
|
Kernel78 wrote: | a mia impressione era che oltre a reinventare la ruota tu l'abbia fatta un po' più squadrata e pretenda che vada montata sul tettuccio della macchina.
Meno di quanto già esiste (per tua stessa ammissione) e dal mio punto di vista di utilità dubbia. |
direi anche che è inutile sparare a una mosca con un bazooka, per cui un sistema come questo puo' giovare in sistemi desktop dove i log li leggi solo se hai un problema, e poi li butti via
Coda |
|
Back to top |
|
 |
Kernel78 Moderator

Joined: 24 Jun 2005 Posts: 3654
|
Posted: Mon Aug 20, 2007 7:28 am Post subject: Re: [Tip] /var/log, /var/run e /var/lock in tmpfs |
|
|
codadilupo wrote: | Kernel78 wrote: | a mia impressione era che oltre a reinventare la ruota tu l'abbia fatta un po' più squadrata e pretenda che vada montata sul tettuccio della macchina.
Meno di quanto già esiste (per tua stessa ammissione) e dal mio punto di vista di utilità dubbia. |
direi anche che è inutile sparare a una mosca con un bazooka, per cui un sistema come questo puo' giovare in sistemi desktop dove i log li leggi solo se hai un problema, e poi li butti via |
In questo caso sarebbe inutile farne il backup come fa lo script in questione.
P.S. il bazooka della tua metafora non sarà mica logrotate ? _________________ Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con Code: | grep -vE '(^[[:space:]]*($|(#|!|;|//)))' |
|
|
Back to top |
|
 |
Cazzantonio Bodhisattva


Joined: 20 Mar 2004 Posts: 4514 Location: Somewere around the world
|
Posted: Mon Aug 20, 2007 3:13 pm Post subject: Re: [Tip] /var/log, /var/run e /var/lock in tmpfs |
|
|
Kernel78 wrote: | In questo modo tu prendi tutti i file nelle varie directory, anche quelli che hai già ruotato, e li ruoti di nuovo (tranne gli elog per cui usi olddir), inoltre è perfettamente inutile che ridefinisci ogni volta "rotate 1", basta che la definisci globalmente. |
Uff... non è tutto il logrotate.conf... e ci sono delle definizioni globali che ho omesso. Non è affatto sbagliato. Se ti interessa davvero te lo spedisco via pm.
Kernel78 wrote: | In questo caso sarebbe inutile farne il backup come fa lo script in questione. |
Beh io ritengo che tra avere un po' di log e nessuno sia meglio averne un po'.
Su una macchina desktop 50 mega corrispondono a qualche mese di log quindi direi che è adatto alle esigenze della maggior parte degli utenti. Se la macchina inizia all'improvviso a crasharti senza pietà allora è il caso di disabilitare questa cosa per tenersi i log in caso di crash... certo una eventualità che tutti si augurano remota.
Se poi hai intenzione di applicare la cosa ad un server di produzione devi davvero sapere quello che stai facendo...
Il backup viene fatto perché nel momento in cui li ruoti verrebbero cancellati del tutto, mentre potresti improvvisamente accorgerti di averne bisogno...
Potrei, a pensarci bene, evitare di ruotare emerge.log visto che la maggior parte degli utenti gradisce mantenere la storia di emerge (query sui pacchetti).
Ripeto: E' uno script senza pretese! E' pensato per un uso desktop standard dove magari uno vuole tenere l'hd in idle il più possibile...
Se uno lascia il desktop acceso e ogni pochi minuti il buffer dei log viene scritto l'hd non può andare in spindown, o peggio va in spindown e subito ritorna up (con conseguente logorio meccanico a lungo andare). Ci sono casi in cui potrebbe essere utile, altri invece in cui è sicuramente svantaggioso.
Io l'ho pensato per un serverino che nel 99% del tempo è idle (è un fileserver) e solo ogni tanto ha dei periodi di attività molto concentrati ma sporadici. In questo modo l'hd può andare in spindown senza problemi sapendo che non verrà risvegliato così spesso.
Sono perfettamente cosciente del fatto che in caso di crash perdo i log e se mi capita vedrò di disabilitare la cosa per fare il dovuto debug. _________________ Any mans death diminishes me, because I am involved in Mankinde; and therefore never send to know for whom the bell tolls; It tolls for thee.
-John Donne |
|
Back to top |
|
 |
codadilupo Advocate

Joined: 05 Aug 2003 Posts: 3135
|
Posted: Mon Aug 20, 2007 4:38 pm Post subject: Re: [Tip] /var/log, /var/run e /var/lock in tmpfs |
|
|
Kernel78 wrote: | In questo caso sarebbe inutile farne il backup come fa lo script in questione.
P.S. il bazooka della tua metafora non sarà mica logrotate ? |
certo! logrotate è sprecato per un desktop, ed è fin troppo complicato da imparare, se non devi farne un uso massivo. Meglio uno scrippettino senza pretese che ti salvi capra e cavoli spazio, pochi accessi al disco, e cmq un minimo di log per ogni evenienza, no ?
Coda |
|
Back to top |
|
 |
Kernel78 Moderator

Joined: 24 Jun 2005 Posts: 3654
|
Posted: Mon Aug 20, 2007 4:53 pm Post subject: Re: [Tip] /var/log, /var/run e /var/lock in tmpfs |
|
|
codadilupo wrote: | Kernel78 wrote: | In questo caso sarebbe inutile farne il backup come fa lo script in questione.
P.S. il bazooka della tua metafora non sarà mica logrotate ? |
certo! logrotate è sprecato per un desktop, ed è fin troppo complicato da imparare, se non devi farne un uso massivo. Meglio uno scrippettino senza pretese che ti salvi capra e cavoli spazio, pochi accessi al disco, e cmq un minimo di log per ogni evenienza, no ?
|
Se fosse carnevale crederei ad uno scherzo ...
logrotate è sprecato per un desktop ? è troppo complicato da imparare ?
A parte il fatto che su un desktop ti basta installarlo (e abilitare la USE logrotate per convenienza) e non devi preoccuparti d'altro ... per configurare la rotazione dei miei primi log personalizzati ho aperto il file di configurazione senza nemmeno leggere il man ... _________________ Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con Code: | grep -vE '(^[[:space:]]*($|(#|!|;|//)))' |
|
|
Back to top |
|
 |
Cazzantonio Bodhisattva


Joined: 20 Mar 2004 Posts: 4514 Location: Somewere around the world
|
Posted: Sun Sep 20, 2009 9:30 am Post subject: |
|
|
Ho aggiornato lo script, nel caso qualcuno sia interessato.
Alla luce del successo dei dischi SSD l'idea di mettere in ram diverse directory di accesso frequente diventa sempre più interessante. _________________ Any mans death diminishes me, because I am involved in Mankinde; and therefore never send to know for whom the bell tolls; It tolls for thee.
-John Donne |
|
Back to top |
|
 |
Kernel78 Moderator

Joined: 24 Jun 2005 Posts: 3654
|
Posted: Sun Sep 20, 2009 9:54 am Post subject: |
|
|
Cazzantonio wrote: | Ho aggiornato lo script, nel caso qualcuno sia interessato.
Alla luce del successo dei dischi SSD l'idea di mettere in ram diverse directory di accesso frequente diventa sempre più interessante. |
mi sfugge la connessione ...
prendiamo per esempio un ssd della mtron: loro grazie all'elevato numero di cicli di scrittura supportati e agli algoritmi di wear-leveling implementati se tu prendi uno dei loro prodotti da 32 gb e ci scrivi sopra 50 gb al giorno avrai bisogno di 140 anni per sfasciarlo ...
Tu scrivi 50 gb al giorno di log ? o nella tmp ?
Semmai adesso che gli SSD iniziano a diffondersi diventa sempre meno utile tenere le cose in ram _________________ Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con Code: | grep -vE '(^[[:space:]]*($|(#|!|;|//)))' |
|
|
Back to top |
|
 |
Cazzantonio Bodhisattva


Joined: 20 Mar 2004 Posts: 4514 Location: Somewere around the world
|
Posted: Sun Sep 20, 2009 3:31 pm Post subject: |
|
|
E' un punto di vista interessante. Io preferisco però continuare ad usare lo script, nell'eventualità che il mio disco non sia della mtron e che non supporti tutti questi cicli di scrittura.
P.S. era un eternità che non passavo dal forum... ma che fine ha fatto randomaze? Se ne sono andati tutti??  _________________ Any mans death diminishes me, because I am involved in Mankinde; and therefore never send to know for whom the bell tolls; It tolls for thee.
-John Donne |
|
Back to top |
|
 |
Kernel78 Moderator

Joined: 24 Jun 2005 Posts: 3654
|
Posted: Sun Sep 20, 2009 3:40 pm Post subject: |
|
|
Cazzantonio wrote: | E' un punto di vista interessante. Io preferisco però continuare ad usare lo script, nell'eventualità che il mio disco non sia della mtron e che non supporti tutti questi cicli di scrittura.
|
se non è della mtron magari invece di 140 anni potrebbe durarti solo 30 ... ti aspetti seriamente di non cambiare disco nei prossimi 30 anni ???
Quote: |
P.S. era un eternità che non passavo dal forum... ma che fine ha fatto randomaze? Se ne sono andati tutti??  |
diciamo che alla lunga la RL ha la meglio anche sui migliori di noi  _________________ Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con Code: | grep -vE '(^[[:space:]]*($|(#|!|;|//)))' |
|
|
Back to top |
|
 |
Cazzantonio Bodhisattva


Joined: 20 Mar 2004 Posts: 4514 Location: Somewere around the world
|
Posted: Sun Sep 20, 2009 3:56 pm Post subject: |
|
|
Kernel78 wrote: | se non è della mtron magari invece di 140 anni potrebbe durarti solo 30 ... ti aspetti seriamente di non cambiare disco nei prossimi 30 anni ??? | Io su queste cose sono superstizioso... preferisco peccare per eccesso
Quote: | diciamo che alla lunga la RL ha la meglio anche sui migliori di noi  | Eh beh... se ci fosse uno stipendio per i moderatori sarei ancora qui  _________________ Any mans death diminishes me, because I am involved in Mankinde; and therefore never send to know for whom the bell tolls; It tolls for thee.
-John Donne |
|
Back to top |
|
 |
|