Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[Tip] /var/log, /var/run e /var/lock in tmpfs
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools)
View previous topic :: View next topic  
Author Message
Cazzantonio
Bodhisattva
Bodhisattva


Joined: 20 Mar 2004
Posts: 4477
Location: In giro

PostPosted: Sat Aug 18, 2007 4:03 pm    Post subject: [Tip] /var/log, /var/run e /var/lock in tmpfs Reply with quote

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:
http://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 man's death diminishes me, because I am involved in mankind, 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
View user's profile Send private message
cloc3
Advocate
Advocate


Joined: 13 Jan 2004
Posts: 4517
Location: http://www.gentoo-users.org/user/cloc3/

PostPosted: Sun Aug 19, 2007 8:31 am    Post subject: Re: [Tip] /var/log, /var/run e /var/lock in tmpfs Reply with quote

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
View user's profile Send private message
Kernel78
Moderator
Moderator


Joined: 24 Jun 2005
Posts: 3652

PostPosted: Sun Aug 19, 2007 8:50 am    Post subject: Re: [Tip] /var/log, /var/run e /var/lock in tmpfs Reply with quote

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
View user's profile Send private message
Cazzantonio
Bodhisattva
Bodhisattva


Joined: 20 Mar 2004
Posts: 4477
Location: In giro

PostPosted: Sun Aug 19, 2007 8:56 am    Post subject: Re: [Tip] /var/log, /var/run e /var/lock in tmpfs Reply with quote

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 :wink:
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 man's death diminishes me, because I am involved in mankind, and therefore never send to know for whom the bell tolls; it tolls for thee
-John Donne
Back to top
View user's profile Send private message
cloc3
Advocate
Advocate


Joined: 13 Jan 2004
Posts: 4517
Location: http://www.gentoo-users.org/user/cloc3/

PostPosted: Sun Aug 19, 2007 9:20 am    Post subject: Re: [Tip] /var/log, /var/run e /var/lock in tmpfs Reply with quote

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
View user's profile Send private message
Cazzantonio
Bodhisattva
Bodhisattva


Joined: 20 Mar 2004
Posts: 4477
Location: In giro

PostPosted: Sun Aug 19, 2007 9:26 am    Post subject: Reply with quote

ho aggiornato lo script per tenere conto della rotazione dei log anche da pc acceso :)
_________________
Any man's death diminishes me, because I am involved in mankind, and therefore never send to know for whom the bell tolls; it tolls for thee
-John Donne
Back to top
View user's profile Send private message
cloc3
Advocate
Advocate


Joined: 13 Jan 2004
Posts: 4517
Location: http://www.gentoo-users.org/user/cloc3/

PostPosted: Sun Aug 19, 2007 9:41 am    Post subject: Reply with quote

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
View user's profile Send private message
Cazzantonio
Bodhisattva
Bodhisattva


Joined: 20 Mar 2004
Posts: 4477
Location: In giro

PostPosted: Sun Aug 19, 2007 9:48 am    Post subject: Reply with quote

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 man's death diminishes me, because I am involved in mankind, and therefore never send to know for whom the bell tolls; it tolls for thee
-John Donne
Back to top
View user's profile Send private message
cloc3
Advocate
Advocate


Joined: 13 Jan 2004
Posts: 4517
Location: http://www.gentoo-users.org/user/cloc3/

PostPosted: Sun Aug 19, 2007 4:48 pm    Post subject: Reply with quote

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


:lol: :lol: :lol:
_________________
vu vu vu
gentù
mi piaci tu
Back to top
View user's profile Send private message
Kernel78
Moderator
Moderator


Joined: 24 Jun 2005
Posts: 3652

PostPosted: Sun Aug 19, 2007 5:30 pm    Post subject: Re: [Tip] /var/log, /var/run e /var/lock in tmpfs Reply with quote

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
View user's profile Send private message
Cazzantonio
Bodhisattva
Bodhisattva


Joined: 20 Mar 2004
Posts: 4477
Location: In giro

PostPosted: Sun Aug 19, 2007 6:01 pm    Post subject: Re: [Tip] /var/log, /var/run e /var/lock in tmpfs Reply with quote

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 man's death diminishes me, because I am involved in mankind, and therefore never send to know for whom the bell tolls; it tolls for thee
-John Donne
Back to top
View user's profile Send private message
cloc3
Advocate
Advocate


Joined: 13 Jan 2004
Posts: 4517
Location: http://www.gentoo-users.org/user/cloc3/

PostPosted: Sun Aug 19, 2007 7:02 pm    Post subject: Re: [Tip] /var/log, /var/run e /var/lock in tmpfs Reply with quote

Cazzantonio wrote:
Quali file di boot?? :?


:lol:

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
View user's profile Send private message
Kernel78
Moderator
Moderator


Joined: 24 Jun 2005
Posts: 3652

PostPosted: Sun Aug 19, 2007 9:46 pm    Post subject: Re: [Tip] /var/log, /var/run e /var/lock in tmpfs Reply with quote

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
View user's profile Send private message
Cazzantonio
Bodhisattva
Bodhisattva


Joined: 20 Mar 2004
Posts: 4477
Location: In giro

PostPosted: Sun Aug 19, 2007 10:16 pm    Post subject: Re: [Tip] /var/log, /var/run e /var/lock in tmpfs Reply with quote

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... :roll:
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 man's death diminishes me, because I am involved in mankind, and therefore never send to know for whom the bell tolls; it tolls for thee
-John Donne
Back to top
View user's profile Send private message
Kernel78
Moderator
Moderator


Joined: 24 Jun 2005
Posts: 3652

PostPosted: Mon Aug 20, 2007 5:42 am    Post subject: Re: [Tip] /var/log, /var/run e /var/lock in tmpfs Reply with quote

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... :roll:
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 :wink:
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 :wink:
_________________
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
View user's profile Send private message
codadilupo
Advocate
Advocate


Joined: 05 Aug 2003
Posts: 3134

PostPosted: Mon Aug 20, 2007 7:08 am    Post subject: Re: [Tip] /var/log, /var/run e /var/lock in tmpfs Reply with quote

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
View user's profile Send private message
Kernel78
Moderator
Moderator


Joined: 24 Jun 2005
Posts: 3652

PostPosted: Mon Aug 20, 2007 7:28 am    Post subject: Re: [Tip] /var/log, /var/run e /var/lock in tmpfs Reply with quote

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
View user's profile Send private message
Cazzantonio
Bodhisattva
Bodhisattva


Joined: 20 Mar 2004
Posts: 4477
Location: In giro

PostPosted: Mon Aug 20, 2007 3:13 pm    Post subject: Re: [Tip] /var/log, /var/run e /var/lock in tmpfs Reply with quote

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... :roll:
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 man's death diminishes me, because I am involved in mankind, and therefore never send to know for whom the bell tolls; it tolls for thee
-John Donne
Back to top
View user's profile Send private message
codadilupo
Advocate
Advocate


Joined: 05 Aug 2003
Posts: 3134

PostPosted: Mon Aug 20, 2007 4:38 pm    Post subject: Re: [Tip] /var/log, /var/run e /var/lock in tmpfs Reply with quote

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
View user's profile Send private message
Kernel78
Moderator
Moderator


Joined: 24 Jun 2005
Posts: 3652

PostPosted: Mon Aug 20, 2007 4:53 pm    Post subject: Re: [Tip] /var/log, /var/run e /var/lock in tmpfs Reply with quote

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
View user's profile Send private message
Cazzantonio
Bodhisattva
Bodhisattva


Joined: 20 Mar 2004
Posts: 4477
Location: In giro

PostPosted: Sun Sep 20, 2009 9:30 am    Post subject: Reply with quote

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 man's death diminishes me, because I am involved in mankind, and therefore never send to know for whom the bell tolls; it tolls for thee
-John Donne
Back to top
View user's profile Send private message
Kernel78
Moderator
Moderator


Joined: 24 Jun 2005
Posts: 3652

PostPosted: Sun Sep 20, 2009 9:54 am    Post subject: Reply with quote

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
View user's profile Send private message
Cazzantonio
Bodhisattva
Bodhisattva


Joined: 20 Mar 2004
Posts: 4477
Location: In giro

PostPosted: Sun Sep 20, 2009 3:31 pm    Post subject: Reply with quote

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?? :cry:
_________________
Any man's death diminishes me, because I am involved in mankind, and therefore never send to know for whom the bell tolls; it tolls for thee
-John Donne
Back to top
View user's profile Send private message
Kernel78
Moderator
Moderator


Joined: 24 Jun 2005
Posts: 3652

PostPosted: Sun Sep 20, 2009 3:40 pm    Post subject: Reply with quote

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?? :cry:

diciamo che alla lunga la RL ha la meglio anche sui migliori di noi :lol:
_________________
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
View user's profile Send private message
Cazzantonio
Bodhisattva
Bodhisattva


Joined: 20 Mar 2004
Posts: 4477
Location: In giro

PostPosted: Sun Sep 20, 2009 3:56 pm    Post subject: Reply with quote

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 :wink:

Quote:
diciamo che alla lunga la RL ha la meglio anche sui migliori di noi :lol:
Eh beh... se ci fosse uno stipendio per i moderatori sarei ancora qui :wink:
_________________
Any man's death diminishes me, because I am involved in mankind, and therefore never send to know for whom the bell tolls; it tolls for thee
-John Donne
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum