Torna indietro   Hardware Upgrade Forum > Software > Linux, Unix, OS alternativi

Renault Twingo E-Tech Electric: che prezzo!
Renault Twingo E-Tech Electric: che prezzo!
Renault annuncia la nuova vettura compatta del segmento A, che strizza l'occhio alla tradizione del modello abbinandovi una motorizzazione completamente elettrica e caratteristiche ideali per i tragitti urbani. Renault Twingo E-Tech Electric punta su abitabilità, per una lunghezza di meno di 3,8 metri, abbinata a un prezzo di lancio senza incentivi di 20.000€
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media
Nel Formula 1 Technology and Media Centre di Biggin Hill, la velocità delle monoposto si trasforma in dati, immagini e decisioni in tempo reale grazie all’infrastruttura Lenovo che gestisce centinaia di terabyte ogni weekend di gara e collega 820 milioni di spettatori nel mondo
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica
Il nuovo gimbal mobile DJI evolve il concetto di tracciamento automatico con tre modalità diverse, un modulo multifunzionale con illuminazione integrata e controlli gestuali avanzati. Nel gimbal è anche presente un'asta telescopica da 215 mm con treppiede integrato, per un prodotto completo per content creator di ogni livello
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 04-09-2008, 01:45   #1
Gimli[2BV!2B]
Senior Member
 
L'Avatar di Gimli[2BV!2B]
 
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
Salvare in una casella e-mail statistiche di funzionamento e backup parziali

Trasformare casella e-mail in scatola nera per un piccolo server domestico.

In questa discussione proverò a condividere l'insieme di script e demoni che utilizzo per tenere sotto controllo un pc acceso 24/7, fornitore di vari servizi nella mia rete domestica.

Certamente questo non è l'unico modo, né il più semplice, per realizzare una cosa di questo tipo.
Soprattutto riguardo i punti 1 e 3 (i più corposi) so che esistono strumenti che permettono di monitorare sensori e sistema e millemila altre cose. Ma tutto era partito senza un disegno preciso, quindi, ad un certo punto, mi è nata la necessità di avere mail con questi dati e le ho create.

Per molto tempo sono stato indeciso sull'utilità di postare tutto questo; diciamo che se non altro saprò dove andare a cercare se mi scorderò qualche dettaglio!

Obiettivi
  1. Monitoraggio hardware
  2. Monitoraggio dei log + storico di tutti i boot (del sistema e degli apparati di rete che lo permettono)
  3. Quantificazione del traffico di rete
  4. Monitoraggio hard disk
  5. Backup (protetto) delle porzioni fondamentali del sistema
  6. Archiviazione in una risorsa internet gratuita e di semplice fruizione
  7. Sincronizzazione DNS grazie a FreeDNS

Programmi utilizzati
  1. Monitoraggio hardware.
    Acquisizione dati: lm-sensors + sensord
    Archiviazione: RRDtool
    Rappresentazione dati: grafici quotidiani
    .
  2. Monitoraggio dei log.
    Demone di logging: syslog-ng
    Analisi log ed invio e-mail: logcheck
    .
  3. Quantificazione del traffico di rete.
    Logging: script ad-hoc + cron
    Archiviazione: di nuovo RRDtool
    Rappresentazione dati: grafici quotidiani
    .
  4. Monitoraggio hard disk.
    Monitoraggio S.M.A.R.T.: smartd
    Logging: script ad-hoc + cron
    Archiviazione: di nuovo RRDtool
    Rappresentazione dati: grafici quotidiani
    .
  5. Backup (protetto) delle porzioni fondamentali del sistema.
    Realizzato per mezzo di uno scrip ad-hoc + cron
    Compressione: bzip2
    Codifica: pgp con password
    .
  6. Archiviazione in una risorsa internet gratuita e di semplice fruizione.
    Archiviazione: gmail
    Invio dati: exim4
    .
  7. Sincronizzazione DNS
    Aggiornamento indirizzo: inadyn più uno script ad-hoc.


[1] Monitoraggio hardware.
Si potrà realizzare questo punto se l'hardware che si vuole analizzare è ufficialmente supportato: lm-sensors supported devices.
Se l'hardware non è esplicitamente elencato si può comunque tentare il primo passo.

A. Individuazione e taratura dei sensori.
Installazione ed utlizzo di lm-sensors.
In alcuni casi i valori ottenuti col comando sensors risulteranno un po' strani o fuoriscala, in tal caso è utile modificare la sezione del file /etc/sensors3.conf relativa al vostro chip dei sensori (man sensors.conf per dettagli, oltre all'ottima introduzione presente nel file stesso).

B. Installazione e configurazione sensord.
Ora si può installare il pacchetto sensord.
Il file di configurazione del demone è /etc/default/sensord.
Questo è la configurazione che ho scelto:
Codice:
RRD_FILE=/var/log/sensord.rrd
RRD_INTERVAL=2m
RRD_LOADAVG=yes
Per poter procedere agevolmente ho rinnovato il sistema di logging ufficiale della mia distribuzione (Debian), rimuovendo sysklogd e klogd, rimpiazzandoli con il più versatile e moderno syslog-ng.
Effettuata la sostituzione ho disabilitato il logging standard di sensord (che stamperebbe le letture dei sensori nei log ad ogni invocazione), lasciando solo il file round-robin.
Se in seguito ad un aggiornamento il file rrd presentasse canali scambiati o mancanti è usualmente sufficiente fermare il servizio sensord, rimuovere il vecchio rrd (magari facendo un backup temporaneo) e riavviare il servizio. Il servizio genererà un nuovo file risistemando la situazione.
Per disabilitare il logging è necessario editare il file /etc/syslog-ng/syslog-ng.conf commentando le seguenti sezioni:
Codice:
# sensord
#destination sensord { file("/var/log/sensord"); };

# ~-~-~-~

# sensord filter
#filter f_sensord {
#   facility(local4);
#};

# ~-~-~-~

# sensord
#log {
#       source(s_all);
#       filter(f_sensord);
#       destination(sensord);
#};
Assicuriamoci dell'avvio automatico di sensord controllando in rcconf (o con il vostro strumento preferito per il controllo degli script init).

C. Creazione dei grafici.
A questo punto abbiamo un file che memorizza circolarmente i dati dei sensori ogni due minuti con uno storico di una settimana.
Per ottenere dei grafici dai dati memorizzati possiamo utilizzare i versatili rrdtools:
Codice:
# Esempio 2 voltaggi + carico CPU delle ultime 24 ore
rrdtool graph daily-voltages.png --imginfo '<IMG SRC=/sensord/%s WIDTH=%lu HEIGHT=%lu>' \
				-a PNG -h 800 -w 800 -v 'Voltaggio (V)' \
				-t 'Voltaggi Phoenix' -x 'HOUR:1:HOUR:3:HOUR:3:0:%b %d %H:00' \
				-s -1d -l 0 -u 13 -r --slope-mode \
				DEF:in0=/var/log/sensord.rrd:in0:AVERAGE \
				DEF:in1=/var/log/sensord.rrd:in1:AVERAGE \
				DEF:loadavg=/var/log/sensord.rrd:loadavg:AVERAGE \
				LINE2:in0#1C0674:"+3.3V"	\
				LINE2:in1#2A961C:"Vtt1.2V"	\
				LINE2:loadavg#F52F1D:"loadavg" > /dev/null
Consultare man rrdgraph per comprendere le opzioni iniziali.
Per avere grafici con leggibilità ottimale è necessario assicurarsi di avere installati i font Dejavu, disponibili pacchettizzati nelle principali distribuzioni.
Ciò che riguarda i nostri dati sono i DEF ed i LINE
  • DEF: pescano i "canali" dell'rrd, che hanno gli stessi nomi visti in /etc/sensors3.conf (in0, in1, ecc...); da notare loadavg, che è il carico della CPU il cui monitoraggio è stato abilitato in /etc/default/sensord (RRD_LOADAVG=yes).
  • LINE: il numero che segue immediatamente indica lo spessore della linea (2), poi vi è il canale (in0), quindi il colore in notazione html (#1C0674), per finire l'etichetta per la legenda ("+3.3V").
Torna all'indice.

[2] Monitoraggio dei log.
Per questa funzione mi sono affidato al semplice logcheck.
Una volta installato verrà eseguito automaticamente ogni ora, riportando su di una casella di posta selezionata tutte le linee dei log principali che sono estranee ad un normale funzionamento della macchina.
In caso di boot o reboot viene recapitato un messaggio differente, contenente l'intero dmesg/kernel.log, con titolo "Reboot: MACCHINA data ora".
Il file di configurazione principale è /etc/logcheck/logcheck.conf; ecco le mie scelte:
Codice:
REPORTLEVEL="server"
SENDMAILTO="[email protected]"
MAILASATTACH=0
**PUNTO FONDAMENTALE**
Per poter ricevere le mail inviate da exim al nostro account Gmail (quindi tutte le mail citate in questa discussione) sarà necessario seguire questa guida.

Personalmente, utilizzando una buona quantità di demoni, ho avuto la necessità di modificare i filtri regexp di logcheck per ridurne la verbosità. Per quanto riguarda il filtraggio "server", si trovano nella cartella /etc/logcheck/ignore.d.server/.
Si tratta di espressioni regolari che corrispondono alle linee da ignorare.

APPENDICE
Trasformare syslog-ng in un server di logging di rete, su cui dirigere anche i log del modem (che naturalmente deve supportare la funzione di logging remoto/remote logging).
Aggiunte da fare al file /etc/syslog-ng/syslog-ng.conf (###### evidenzia la sezione modificata):
Codice:
######
# sources

# all known message sources
source s_modem {
		udp(ip(192.168.1.1) port(514));
};

######
# destinations

# file in cui dirigere i messaggi del modem
destination df_modem { file("/var/log/modem.log"); };

######
# logs

# collegamento tra sorgente e file
log {
        source(s_modem);
        destination(df_modem);
};
Abilitiamo quindi la rotazione del nuovo log creando un file /etc/logrotate.d/modem dal contenuto
Codice:
/var/log/modem.log {
    rotate 7
    daily
    compress
    delaycompress
    copytruncate
    missingok
    notifempty
}
Per finire diciamo a logcheck di monitorare anche questo file aggiungendo questa riga ad /etc/logcheck/logcheck.logfiles:
/var/log/modem.log
In caso di attivazione di logcheck è consigliabile controllare che il modem, soprattutto in fase di connessione, non spifferi dati sensibili; se accadesse si può pensare di lasciar perdere la cosa, oppure aggiungere opportuni filtri a logcheck (in /etc/logcheck/ignore.d.CLASSE_MONITORAGGIO).
Torna all'indice.

[3] Quantificazione del traffico di rete.
Questa è una buona guida su cui mi sono basato.
Questo punto è simile al primo, ma occorre crearlo da zero.
Nella guida è stato utilizzato script Perl che ho preferito frammentare nelle unità funzionali e trasformarlo in script bash.
  1. Si devono inizializzare i file rrd (notare DERIVE, cioè interpretare i dati alle variazioni):
    Codice:
    #!/bin/bash
    
    ETHS=$(/sbin/ifconfig | sed '/^eth\([[:digit:]]\{1,3\}\).*/!d ; s/\(\s\).*/\1/')
    for ETH in $ETHS; do
    	rrdtool	create /var/log/$ETH.rrd \
    		DS:in:DERIVE:600:0:12500000 \
    		DS:out:DERIVE:600:0:12500000 \
    		RRA:AVERAGE:0.5:1:576 \
    		RRA:AVERAGE:0.5:6:672 \
    		RRA:AVERAGE:0.5:24:732 \
    		RRA:AVERAGE:0.5:144:1460
    done
  2. Si deve quindi creare uno script di aggiornamento che da in pasto all'rrd il numero di byte transitati per l'interfaccia dalla sua attivazione:
    Codice:
    #!/bin/sh
    
    ETHS=$(/sbin/ifconfig | sed '/^eth\([[:digit:]]\{1,3\}\).*/!d ; s/\(\s\).*/\1/')
    for ETH in $ETHS; do
    	IN=`/sbin/ifconfig $ETH |grep bytes|cut -d":" -f2|cut -d" " -f1`
    	OUT=`/sbin/ifconfig $ETH |grep bytes|cut -d":" -f3|cut -d" " -f1`
    	rrdtool update /var/log/$ETH.rrd -t in:out N:$IN:$OUT
    done
    (Questi dati saranno poi interpretati tramite differenziale come impostato alla creazione del file, così otterremo la velocità media)
  3. Dopodiché di deve inserire in cron lo script di aggiornamento (crontab -e); personalmente ho considerato un aggiornamento ogni 5 min. sufficiente (*/5).
  4. Per finire si possono creare i grafici in maniera simile a come già illustrato (ma in modo più adeguato per le grandezze rappresentate):
    Codice:
    #!/bin/sh
    
    ETHS=$(/sbin/ifconfig | sed '/^eth\([[:digit:]]\{1,3\}\).*/!d ; s/\(\s\).*/\1/')
    for ETH in $ETHS; do
    	rrdtool graph $ETH.png  --imginfo '<IMG SRC=/sensord/%s WIDTH=%lu HEIGHT=%lu>' \
    				-a PNG -h 80 -w 800 -v 'Bytes/sec' \
    				-t "Traffico $ETH" -x 'HOUR:1:HOUR:3:HOUR:3:0:%b %d %H:00' \
    				-s -1d --slope-mode \
    				DEF:in=/var/log/$ETH.rrd:in:AVERAGE \
    				DEF:out=/var/log/$ETH.rrd:out:AVERAGE \
    				CDEF:out_neg=out,-1,* \
    				VDEF:inmax=in,MAXIMUM \
    				VDEF:inavg=in,AVERAGE \
    				VDEF:outmax=out,MAXIMUM \
    				VDEF:outavg=out,AVERAGE \
    				AREA:in#32CD32:Incoming \
    				LINE1:in#336600 \
    				GPRINT:inmax:"Max\: %5.1lf %S" \
    				GPRINT:inavg:"Avg\: %5.1lf %S\\n" \
    				AREA:out_neg#4169E1:Outgoing \
    				LINE1:out_neg#0033CC \
    				GPRINT:outmax:"Max\: %5.1lf %S" \
    				GPRINT:outavg:"Avg\: %5.1lf %S"
    done
    Questo script è più avanzato; contiene:
    • CDEF out_neg calcolato con notazione polacca inversa
    • VDEF inavg, ..., outmax con cui vengono calcolati massimo e media sul periodo grazie alle funzioni MAXIMUM e AVERAGE
    • AREA che disegna un grafico pieno, non la linea del precedemte esempio
    • GPRINT che stampa una stringa tra i valori della legenda, usata per scrivere max e avg
Torna all'indice.

[4] Monitoraggio hard disk.
Utilizzando il demone smartd si possono tenere sotto osservazione i valori S.M.A.R.T. dei dischi fissi.
Solitamente ci si accorge che un disco ha qualche problema quando inizia a bloccare la macchina o "dimenticare" dati: utilizzando smartd si può venire a conoscenza di valori preoccupanti non appena questi compaiono.
Il file di configurazione è /etc/smartd.conf; questi sono i valori che ho utilizzato:
Codice:
/dev/sda -d sat -n standby -H -I 194 -C 197 -U 198 -W 3,45,49 -m [email protected]
Punto molto simile al precedente per quanto riguarda la raccolta dei dati.
  1. Inizializzare i file rrd:
    Codice:
    #!/bin/bash
    
    for HDD in /dev/sd[[:alpha:]]; do
    	rrdtool create /var/log/$(basename "$HDD").rrd -s 300   \
    		DS:temp:GAUGE:600:0:100         \
    		RRA:AVERAGE:0.5:1:576                   \
    		RRA:AVERAGE:0.5:6:672                   \
    		RRA:AVERAGE:0.5:24:732                  \
    		RRA:AVERAGE:0.5:144:1460
    done
  2. Script di aggiornamento che legge la temperatura dal sensore dei dischi:
    Codice:
    #!/bin/sh
    
    HDDTEMP="/usr/sbin/hddtemp"
    
    for DEV in /dev/sd[[:alpha:]]; do
    	HDD=$(basename "$DEV")
    	rrdtool update /var/log/"$HDD".rrd -t temp N:$($HDDTEMP -n "$DEV")
    done
  3. Inserire in cron lo script di aggiornamento (crontab -e); anche in questo caso ho considerato un aggiornamento ogni 5 min. sufficiente (*/5).
  4. Non ho creato un grafico specifico per i dischi, ma ho aggiunto il valore al grafico delle temperature degli altri sensori.


Invio di tutti i grafici.
Codice:
#!/bin/sh

TEMP_DIR="/tmp"
DIR_CREATED=0
MAIL_TO="[email protected]"

# Per circa mezz'ora resta in attesa della connessione
I=0
while ! ping -c 4 -w 5 -q www.google.it >/dev/null 2>&1 ; do
  if [ $I -eq 9 ] ; then
    echo "Connessione non disponibile: creazione grafici terminata."
    exit 1
  fi
  sleep 120
  I=$(($I+1))
done

if [ ! -d "$TEMP_DIR" ] ; then
  if ! mkdir -p -- "$TEMP_DIR" ; then
    echo "Creazione cartella temporanea fallita!"
    exit 1
  fi
  DIR_CREATED=1
fi

echo -n "Plotting Graphs: voltages, "
# Dati voltaggi + carico CPU delle ultime 24 ore
rrdtool graph "$TEMP_DIR/daily-voltages.png" --imginfo '<IMG SRC=/sensord/%s WIDTH=%lu HEIGHT=%lu>' \
              -a PNG -h 800 -w 800 -v 'Voltaggio (V)' \
              -t 'Voltaggi Phoenix' -x 'HOUR:1:HOUR:3:HOUR:3:0:%b %d %H:00' \
              -s -1d -l 0 -u 13 -r --slope-mode \
              DEF:in0=/var/log/sensord.rrd:in0:AVERAGE \
              DEF:in1=/var/log/sensord.rrd:in1:AVERAGE \
              DEF:in2=/var/log/sensord.rrd:in2:AVERAGE \
              DEF:in3=/var/log/sensord.rrd:in3:AVERAGE \
              DEF:in4=/var/log/sensord.rrd:in4:AVERAGE \
              DEF:in5=/var/log/sensord.rrd:in5:AVERAGE \
              DEF:in6=/var/log/sensord.rrd:in6:AVERAGE \
              DEF:in7=/var/log/sensord.rrd:in7:AVERAGE \
              DEF:in8=/var/log/sensord.rrd:in8:AVERAGE \
              DEF:loadavg=/var/log/sensord.rrd:loadavg:AVERAGE \
              LINE2:in0#1C0674:"+3.3V"    \
              LINE2:in1#2A961C:"Vtt1.2V"    \
              LINE2:in2#5C93CE:"Vddr2"    \
              LINE2:in3#59F80F:"Vchip"    \
              LINE2:in4#424036:"+5V"      \
              LINE2:in5#B16C63:"+12V"     \
              LINE2:in6#442F18:"Vcc1.5V"    \
              LINE2:in7#790654:"Vcore"    \
              LINE2:in8#FBA71A:"5VSB"     \
              LINE2:loadavg#F52F1D:"loadavg" > /dev/null

FILES="$TEMP_DIR/daily-voltages.png"

echo -n "temperatures, "
# Dati temperature + carico CPU delle ultime 24 ore
rrdtool graph "$TEMP_DIR/daily-temperatures.png" --imginfo '<IMG SRC=/sensord/%s WIDTH=%lu HEIGHT=%lu>' \
              -a PNG -h 400 -w 800 -v 'Temperatura (C)' \
              -t 'Temperature Phoenix' -x 'HOUR:1:HOUR:3:HOUR:3:0:%b %d %H:00' \
              -s -1d -l 10 --slope-mode \
              DEF:temp2=/var/log/sensord.rrd:temp2:AVERAGE \
              DEF:temp1_0=/var/log/sensord.rrd:temp1_0:AVERAGE \
              DEF:temp_sda=/var/log/sda.rrd:temp:AVERAGE \
              DEF:loadavg=/var/log/sensord.rrd:loadavg:AVERAGE \
              CDEF:10_x_loadAvg=loadavg,10,* \
              LINE2:temp2#7b23c6:"system" \
              LINE2:temp1_0#D01717:"CPU" \
              LINE2:temp_sda#790654:"Hard disk" \
              LINE2:10_x_loadAvg#F52F1D:"10_x_loadAvg" > /dev/null

FILES="$FILES,$TEMP_DIR/daily-temperatures.png"

echo -n "fan speed, "
# Velocita' rotazione ventola nelle ultime 24 ore
rrdtool graph "$TEMP_DIR/daily-fan.png" --imginfo '<IMG SRC=/sensord/%s WIDTH=%lu HEIGHT=%lu>' \
            -a PNG -h 400 -w 800 -v 'RPM' \
            -t 'Ventola Phoenix' -x 'HOUR:1:HOUR:3:HOUR:3:0:%b %d %H:00' \
            -s -1d -l 700 --slope-mode \
            DEF:fan1=/var/log/sensord.rrd:fan1:AVERAGE \
            LINE2:fan1#F52F1D:"Sys Fan" > /dev/null

FILES="$FILES,$TEMP_DIR/daily-fan.png"

echo -n "ethernet interfaces"
ETHS=$(/sbin/ifconfig | sed '/^eth\([[:digit:]]\{1,3\}\).*/!d ; s/\(\s\).*/\1/')
if [ ! -z "$ETHS" ] ; then
  echo -n " ( "

  for ETH in $ETHS; do
    rrdtool graph "$TEMP_DIR/$ETH.png"  --imginfo '<IMG SRC=/sensord/%s WIDTH=%lu HEIGHT=%lu>' \
                -a PNG -h 80 -w 800 -v 'bytes/sec' \
                -t "Traffico $ETH" -x 'HOUR:1:HOUR:3:HOUR:3:0:%b %d %H:00' \
                -s -1d --slope-mode \
                DEF:in=/var/log/$ETH.rrd:in:AVERAGE \
                DEF:out=/var/log/$ETH.rrd:out:AVERAGE \
                CDEF:out_neg=out,-1,* \
                VDEF:inmax=in,MAXIMUM \
                VDEF:inavg=in,AVERAGE \
                VDEF:outmax=out,MAXIMUM \
                VDEF:outavg=out,AVERAGE \
                AREA:in#32CD32:"Incoming" \
                LINE1:in#336600 \
                GPRINT:inmax:"Max\: %5.1lf %S" \
                GPRINT:inavg:"Avg\: %5.1lf %S\\n" \
                AREA:out_neg#4169E1:"Outgoing" \
                LINE1:out_neg#0033CC \
                GPRINT:outmax:"Max\: %5.1lf %S" \
                GPRINT:outavg:"Avg\: %5.1lf %S" > /dev/null

    FILES="$FILES,$TEMP_DIR/$ETH.png"
    echo -n "$ETH "
  done

  echo -n ")"
fi
echo "."

echo -n "Invio mail a $MAIL_TO..."
uptime | biabam $FILES -s "Phoenix sensors statistics `date`" $MAIL_TO
echo "Done."

echo -n "Rimozione "
if [ $DIR_CREATED -eq 1 ] ; then
  if [ -d "$TEMP_DIR" ] ; then
    echo -n "$TEMP_DIR"
    rm -r -- "$TEMP_DIR"
    echo "."
    exit 0
  else
    echo "cartella \"$TEMP_DIR\" FALLITA!"
    echo -n "Rimozione "
  fi
fi

echo "file:"
FILES_ARR=$(echo "$FILES" | tr "," "\n")
for file in $FILES_ARR ; do
  if [ -f "$file" ] ; then
    echo "\"$file\""
    rm -- "$file"
  fi
done

exit 0
Questo script viene lanciato da un cronjob ogni mezzanotte.

Report mensile. Assicurarsi di avere sufficienti dati:
Codice:
rrdtool info /var/log/sensord.rrd | grep rows
rra[0].rows = 20160
Nel mio caso devono essere 21600 (30 campionamenti/h * 24 h * 30 gg):
Codice:
rrdtool resize /var/log/sensord.rrd 0 GROW 1440
mv resize.rrd /var/log/sensord.rrd
Porzione script mensile con evidenziato parametro fondamentale:
Codice:
# Dati voltaggi + carico CPU
GRAFICO_TITOLO="Voltaggi $HOSTNAME_CAPITAL - $(date +%Y-%m-%d\ %H.%M.%S)"
FILE="$TEMP_DIR/monthly-voltages_$DATE.png"
rrdtool graph "$FILE" --imginfo '<IMG SRC=/sensord/%s WIDTH=%lu HEIGHT=%lu>' \
                      -a PNG -h 800 -w 800 -v 'Voltaggio (V)' \
                      -t "$GRAFICO_TITOLO" \
                      -s -1m -l 0 -u 13 -r --slope-mode -y 0.1:10 -L 1 \
                      DEF:in0=/var/log/sensord.rrd:in0:AVERAGE \
                      DEF:in1=/var/log/sensord.rrd:in1:AVERAGE \
                      DEF:in2=/var/log/sensord.rrd:in2:AVERAGE \
                      DEF:in3=/var/log/sensord.rrd:in3:AVERAGE \
                      DEF:in4=/var/log/sensord.rrd:in4:AVERAGE \
                      DEF:in5=/var/log/sensord.rrd:in5:AVERAGE \
                      DEF:in6=/var/log/sensord.rrd:in6:AVERAGE \
                      DEF:cpu0_vid=/var/log/sensord.rrd:cpu0_vid:AVERAGE \
                      DEF:in8=/var/log/sensord.rrd:in8:AVERAGE \
                      DEF:loadavg=/var/log/sensord.rrd:loadavg:AVERAGE \
                      LINE2:in0#1C0674:"+3.3V"    \
                      LINE2:in1#2A961C:"Vtt1.2V"    \
                      LINE2:in2#5C93CE:"Vddr2"    \
                      LINE2:in3#59F80F:"Vchip"    \
                      LINE2:in4#424036:"+5V"      \
                      LINE2:in5#B16C63:"+12V"     \
                      LINE2:in6#442F18:"Vcc1.5V"    \
                      LINE2:cpu0_vid#790654:"CPU_vid"   \
                      LINE2:in8#FBA71A:"5VSB"     \
                      LINE2:loadavg#F52F1D:"loadavg" > /dev/null
Torna all'indice.

[5] Backup (protetto) delle porzioni fondamentali del sistema.
Obiettivo: salvare la minima quantità di dati sufficiente per ricreare un sistema gemello del "backuppato" in tempi brevi.
Mia ipotesi di soluzione: salvare TUTTA /etc, il config del kernel in uso ed un elenco dei pacchetti installati.
Svolgimento:
Codice:
#!/bin/sh

PASSWORD="Password!"
HOSTNAME=`hostname`
HOSTNAME_CAPITAL=`printf %c $HOSTNAME | tr [:lower:] [:upper:]`${HOSTNAME#`printf %c $HOSTNAME`}
TEMP_DIR="/tmp"
FILES=""
DIR_CREATED=0
RETURN=0
[email protected]

# Per due ore spera che la connessione funzioni...
I=0
while ! ping -c 4 -w 5 -q www.google.it  >/dev/null 2>&1 ; do
  if [ $I = 20 ] ; then
    echo "Connessione non disponibile: backup annullato."
    exit 1
  fi
  sleep 340
  I=$(($I+1))
done

if [ ! -d "$TEMP_DIR" ] ; then
  if ! mkdir -p -- "$TEMP_DIR" ; then
    echo "Creazione cartella temporanea fallita!"
    exit 1
  fi
  DIR_CREATED=1
fi

echo -n "Elenco dei pacchetti installati"
PACKAGES="packages-snapshot-`date +%Y-%m-%d_%H.%M.%S`"
if dpkg --get-selections > "$TEMP_DIR/$PACKAGES" ; then
  FILES="$TEMP_DIR/$PACKAGES"
  echo "."
else
  PACKAGES=""
  echo " Errore!"
fi

echo -n "Lista delle partizioni"
PARTITIONS="fdisk_-l"
if /sbin/fdisk -l > "$TEMP_DIR/$PARTITIONS" ; then
  FILES="$FILES $TEMP_DIR/$PARTITIONS"
  echo "."
else
  PARTITIONS=""
  echo " Errore!"
fi

# bz2
FILE="$TEMP_DIR/$HOSTNAME.tar.bz2"

if [ -d "$TEMP_DIR" ] ; then
  cd "$TEMP_DIR"
fi

tar -cjf "$FILE" \
    "$PACKAGES" \
    "$PARTITIONS" \
    --preserve-permissions /etc \
    --preserve-permissions /boot/config-`uname -r` \
    --preserve-permissions /boot/grub/menu.lst \
    --preserve-permissions /var/spool/cron/crontabs \
    >/dev/null 2>&1

if [ $? -eq 0 ] ; then
  FILES="$FILES $FILE"
  echo "."
else
  echo " Errore creando il tar!"
  RETURN=1
fi

if [ $RETURN -eq 0 ] ; then
  echo -n "gpg"
  FILE="$TEMP_DIR/$HOSTNAME.tar.bz2"
  if gpg -q --yes -c --passphrase "$PASSWORD" "$FILE" ; then
    echo " Done!"

    echo -n "Invio mail a $MAIL_TO... "
    FILE="$FILE.gpg"
    FILES="$FILES $FILE"
    date | biabam "$FILE" -s "$HOSTNAME_CAPITAL backup `date`" "$MAIL_TO"
    echo "done."
  else
    echo " Errore creando il gpg!"
    RETURN=1
  fi
fi

echo -n "Rimozione "
if [ $DIR_CREATED -eq 1 ] ; then
  if [ -d "$TEMP_DIR" ] ; then
    echo -n "$TEMP_DIR"
    rm -r -- "$TEMP_DIR"
    echo "."
    exit 0
  else
    echo "cartella \"$TEMP_DIR\" FALLITA!"
    echo -n "Rimozione "
  fi
fi

echo "file:"
FILES_ARR=$(echo "$FILES" | tr "," "\n")
for file in $FILES_ARR ; do
  if [ -f "$file" ] ; then
    echo "\"$file\""
    rm -- "$file"
  fi
done

exit $RETURN
Questo script viene lanciato da cron una volta alla settimana.
Torna all'indice.

[6] Archiviazione in una risorsa internet gratuita e di semplice fruizione.
Il passaggio chiave di questo punto riguarda la modifica della configurazione di exim4 come smarthost per Gmail, come già evidenziato precedentemente, seguendo questa guida.
Personalmente non ho idea di come sia il rapporto di exim4 con altri servizi e-mail.
Naturalmente ci sono alcuni aspetti da tenere in considerazione, principalmente:
  • Protezione/privacy: i dati del sistema sono protetti pgp (mi sono accontentato della password, ma niente nega di usare una chiave), in mesi di utilizzo non ho trovato dati sensibili nei log inviati usualmente da logcheck, inoltre gmail è abbastanza sicura ed in continuo miglioramento.
  • La password della mail sarà scritta in chiaro in un file sul vostro computer, per questo ho impostato Exim come smarthost della mia mail secondaria (quella per gli esperimenti...), inviandole però alla mia mail primaria, la cui password non sarà scritta da nessuna parte.
  • Spazio disponibile: mentre sto scrivendo, dopo circa 3 anni col sistema a pieno regime (più altri 6 mesi parziali), ho occupato ~600 mega sui 10 giga disponibili.
  • Ordine: grazie alle etichette di Gmail ed alla standardizzazione dei messaggi è possibile smistarli ed archiviarli senza problemi.
    Le mie semplici etichette sono:
    • Phoenix: filtro "from: (logcheck system account)"
    • Phoenix backup: filtro "from:root subject: (Phoenix backup)"
    • Phoenix sensors: filtro "from:root subject: (Phoenix sensors)"
  • Come suggerito da omerook è anche possibile fare in modo che GMail ci avvisi offline, tramite SMS, dell'arrivo di qualche email importante.
    Tra le mail descritte in questa discussione penserei soprattutto agli allarmi di smartd sulla salute dei dischi.
Torna all'indice.
[7] Sincronizzazione DNS.
Prima di tutto: perché FreeDNS? Perché i domini disponibili su DynDNS fanno schifo... resta che altri fornitori di strumenti DNS non necessitano di un piccolo hack come FreeDNS per aggiornare il record.
Bene, ricordate la questione del logging centralizzato per la rete (appendice punto [2])? Ho pensato di utilizzarlo per capire quando è necessario contattare i server per aggiornare il record DNS.
Una modifica ad /etc/syslog-ng/syslog-ng.conf ed ho creato un log "volatile"
Codice:
######
# destinations

# file in cui dirigere i messaggi del modem
destination df_modem_volatile { file("/var/log/modem.volatile"); };
destination df_modem { file("/var/log/modem.log"); };

######
# logs

# collegamento tra sorgente e file
log {
        source(s_modem);
        destination(df_modem_volatile);
};

log {
        source(s_modem);
        destination(df_modem);
};
Volatile sta ad indicare che, non appena comparirà una riga magica nel log, verrà lanciato inadyn ed il log verrà svuotato, grazie a questo semplice script, lanciato da Cron ogni 5 minuti:
Codice:
#!/bin/sh

# il grep dev'essere adattato all'output del modem quando annuncia la connessione
if [ -s /var/log/modem.volatile ]; then
	if grep -q "Connection Successfully Established" /var/log/modem.volatile; then
		if ping -c 4 -w 5 -q www.google.it >/dev/null 2>&1 ; then
			# il log esiste, il modem ha registrato una connessione e la connessione è ancora attiva
			/usr/bin/inadyn --input_file /etc/inadyn.conf
			# svuota il log
			> /var/log/modem.volatile
		fi
	else
		> /var/log/modem.volatile
	fi
fi

exit 0
L'input file per inadyn, /etc/inadyn.conf, contiene questa riga:
Codice:
--iterations 1 --dyndns_system [email protected] -a INDIRIZZO.DA.AGGIORNARE,AXfGt3hydtyXVD57SEg5csWEqwc8ujM4MkOwMg==
La stringa incomprensibile alla fine non è altro che un hash di password ed url da aggiornare, ricavabile in questa pagina (una volta registrati e configurato almeno un sottodominio).
Si tratta del parametro php visibile nel link Direct URL che si trova in fondo al riquadro centrale a sinistra.
Torna all'indice.
[*] Conclusioni.
Tutto questo a cosa serve?
  • Permette di avere un backup minimale in caso di disastri (ancora non...).
  • Si viene a conoscenza della nascita di eventuali problemi grazie alle mail sui log (Chi è quel pirla che ha cercato di loggarsi con la password ****?! Ah, io...).
  • La salute dell'hardware è sotto controllo grazie ai sensori (la 12V è meno stabile...).
  • In caso di traffico di rete anomalo se ne viene a conoscenza grazie ad una veloce occhiata ai grafici quotidiani (il vicino scrocca la wireless!).
  • Si può conservare uno storico della vita del pc (blackout, ventole che rallentano).
  • Il modem ha perso la portante e si è riconnesso.
  • E altro...
Scherzi a parte ho avuto modo di apprezzare i miei sforzi.

Bene, se avete critiche, offese, suggerimenti, scrivete pure!

Ultima modifica di Gimli[2BV!2B] : 09-07-2013 alle 23:29.
Gimli[2BV!2B] è offline   Rispondi citando il messaggio o parte di esso
Old 04-09-2008, 09:16   #2
psimem
Senior Member
 
L'Avatar di psimem
 
Iscritto dal: Jan 2006
Messaggi: 1525
Lavorone Gimli! Complimenti!
Anch'io avevo realizzato una cosa simile, ma mooooolto piu' semplice , per monitorare la mancanza di corrente sull'UPS.
Una cosa che mi sono sempre chiesto e sulla quale non ho trovato risposte precise: e' possibile tramite qualche servizio internet trasformare le mail di avviso in sms da spedire su un cellulare? L'inghippo e' trovare qualche operatore che fornisca questo servizio in modo decente, ma per ora non ho trovato nulla (per ovvi motivi commerciali ).
(PS: conoscenza )
__________________
-)(- debian -)(-
psimem è offline   Rispondi citando il messaggio o parte di esso
Old 04-09-2008, 14:01   #3
Gimli[2BV!2B]
Senior Member
 
L'Avatar di Gimli[2BV!2B]
 
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
Grazie psimem!

Per quanto riguarda gli SMS ci avevo pensato tempo fa.
Dopo qualche giorno di ricerca non ho trovato nulla che mi convincesse al 100%.
Quelli gratuiti erano difficilmente scriptabili causa captcha o altri impedimenti, poi, basandosi quasi esclusivamente su siti che offrono il servizio, erano moolto soggetti alla modifiche delle pagine web di appoggio...
Avevo anche trovato l'esperienza di un tipo che aveva utilizzato direttamente un cellulare, usando una SIM che non usava più ed un vecchio apparecchio (Link sull'argomento).

Sono riconoscente per la tua partecipazione!
Gimli[2BV!2B] è offline   Rispondi citando il messaggio o parte di esso
Old 04-09-2008, 14:17   #4
psimem
Senior Member
 
L'Avatar di psimem
 
Iscritto dal: Jan 2006
Messaggi: 1525
E' un piacere partecipare
Ho dato una scorsa al link e mi sembra molto interessante, appena ho piu' tempo approfondiro' senza dubbio.
__________________
-)(- debian -)(-
psimem è offline   Rispondi citando il messaggio o parte di esso
Old 05-09-2008, 09:37   #5
Devil!
Senior Member
 
L'Avatar di Devil!
 
Iscritto dal: Feb 2003
Città: Padova
Messaggi: 5905
Ottima guida Gimli!

L'unico consiglio che ti posso dare è quello di backuppare anche la cartella /var/spool/cron/crontabs. E' sempre abbastanza odioso riscrivere i cronjob

Io sul mio server ho utilizzato strumenti simili per il monitoraggio, anche se meno affinati dei tuoi

Monitoraggio hardware.
lm-sensors + semplice script bash che mi avverte via email se la temp di cpu/chipset o hdd superano una soglia limite
Più in generale uso Munin per la creazione di grafici (grazie a RRDtool) che riportano varie statistiche (Apache Disk Exim Mysql Network Nfs Uptime Processes Sensors Squid System), consultabili via browser

Monitoraggio dei log.
Demone di logging: sysklogd
Analisi log ed invio e-mail: logwatch con report giornaliero


Backup (protetto) delle porzioni fondamentali del sistema.
Utilizzo un programma che ho trovato nei rep di debian: ibackup
Giornalmente archivia i seguenti file e cartelle:

Codice:
|-- boot|   
|   |-- config-2.6.26
|   `-- grub
|       `-- menu.lst
|-- etc
|-- tmp
|   `-- sysinfo
|       |-- deb_installed (dpkg -l)
|       |-- deb_installed_gs (dpkg --get-selections)
|       |-- dmesg
|       |-- fdisk-l
|       |-- ifconfig
|       |-- netstat-nr
|       |-- netstat-plunt (Active Internet connections)
|       `-- netstat-s
|-- usr
|   `-- src
|       `-- linux
`-- var
    `-- spool
        `-- cron
            `-- crontabs
__________________

Devil! è offline   Rispondi citando il messaggio o parte di esso
Old 05-09-2008, 14:29   #6
Gimli[2BV!2B]
Senior Member
 
L'Avatar di Gimli[2BV!2B]
 
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
Grazie Devil!
Soprattutto grazie dello schema del tuo backup!

Mi hai ricordato varie cose leggere (i 41 KBs che ho a disposizione sono un discreto limite) e molto utili che trascuravo: il menu.lst, l'fdisk -l, per non parlare dei cron su cui baso varie cose...
Adatterò presto lo script (prima di domenica mattina alle 4:30...).

Per quanto riguarda Munin ed Apache li avevo presi in considerazione quando avevo deciso di aumentare le informazioni da controllare.
Ma il pc originale aveva 128MB di RAM (ben spesi tra bind9, openssh, mldo...., distcc, lirc [+ vlc] + mpd, ecc... ), poi desideravo poter monitorare la situazione da qualsiasi pc senza dover aprire un servizio pericoloso come Apache al mondo: quindi mi sono inventato 'sta roba...
Gimli[2BV!2B] è offline   Rispondi citando il messaggio o parte di esso
Old 05-09-2008, 21:47   #7
Gimli[2BV!2B]
Senior Member
 
L'Avatar di Gimli[2BV!2B]
 
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
Perfetto: 932k di backup e modifica in linea largamente in anticipo per il prossimo backup pianificato; script del post aggiornato.
Gimli[2BV!2B] è offline   Rispondi citando il messaggio o parte di esso
Old 05-09-2008, 22:01   #8
Gimli[2BV!2B]
Senior Member
 
L'Avatar di Gimli[2BV!2B]
 
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
Mi sono accorto che gli script non erano aggiornati e contenevano alcune imprecisioni dovute all'adattamento per il "pubblico": la piuma biabam al posto del fuori luogo mutt ed aggiunta una variabile utile.
Gimli[2BV!2B] è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2008, 22:26   #9
Gimli[2BV!2B]
Senior Member
 
L'Avatar di Gimli[2BV!2B]
 
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
Migrazione a dash anche sul server-pulce con conseguente revisione degli script per rimuovere i bashismi; tempi di esecuzione ridotti anche del 40%, nei casi migliori.
(vabbé si parla di mezzi decimi di secondo o meno, ma le percentuali danno aria di professionalità, come dice il capo )

Dopotutto due fustini non sempre son meglio di uno solo...
Gimli[2BV!2B] è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2008, 22:35   #10
gianlucab70
Senior Member
 
L'Avatar di gianlucab70
 
Iscritto dal: Dec 2006
Città: Ex Crema (cr)
Messaggi: 1025
Ammazza!!.
Proprio un bel lavoro Gimli.
Complimenti.!!
gianlucab70 è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2008, 23:07   #11
Gimli[2BV!2B]
Senior Member
 
L'Avatar di Gimli[2BV!2B]
 
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
Grazie gianlucab70, ma son quasi più soddisfatto del lavoro di impaginazione che del contenuto.
In sostanza si tratta di poco più di un accrocchio di demoni e cronjobs che, per carità, fanno il loro sporco mestiere (proprio come lo volevo io) ma, stilisticamente parlando, non son granché da vedere...
Esistono strumenti bell'e fatti che fan cose simili.
Però è stato interessante fare tutto per conto mio (e queste righe le ho scritte anche per non dimenticare i passaggi che ho fatto al tempo).
Gimli[2BV!2B] è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2010, 22:20   #12
Gimli[2BV!2B]
Senior Member
 
L'Avatar di Gimli[2BV!2B]
 
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
Aggiornamento agli script con alcune correzioni, aggiunta di un po' di sicurezza e sincronizzazione delle parti uguali.

Ormai con lo script dei grafici ho accumulato 700 giorni di storico, mentre i backup protetti hanno superato le 100 settimane.
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...)
Gimli[2BV!2B] è offline   Rispondi citando il messaggio o parte di esso
Old 19-08-2012, 17:36   #13
Gimli[2BV!2B]
Senior Member
 
L'Avatar di Gimli[2BV!2B]
 
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
Saltata la corrente dopo 82 giorni di uptime: nuovo kernel, diverso output sensors.
Ho dovuto revisionare gli script, ne ho approfittato per fare un paio di cose che avevo pensato da tempo.

Temperature hard disk.
Codice:
#!/bin/bash

for HDD in /dev/sd[[:alpha:]]; do
  rrdtool create /var/log/$(basename "$HDD").rrd -s 300 \
        DS:temp:GAUGE:600:0:100   \
        RRA:AVERAGE:0.5:1:576     \
        RRA:AVERAGE:0.5:6:672     \
        RRA:AVERAGE:0.5:24:732      \
        RRA:AVERAGE:0.5:144:1460
done
Codice:
#!/bin/sh

HDDTEMP="/usr/sbin/hddtemp"

for DEV in /dev/sd[[:alpha:]]; do
  HDD=$(basename "$DEV")
  rrdtool update /var/log/"$HDD".rrd -t temp N:$($HDDTEMP -n "$DEV")
done
Codice:
# Dati temperature + carico CPU delle ultime 24 ore
rrdtool graph "$TEMP_DIR/daily-temperatures.png" --imginfo '<IMG SRC=/sensord/%s WIDTH=%lu HEIGHT=%lu>' \
                      -a PNG -h 400 -w 800 -v 'Temperatura (C)' \
                      -t 'Temperature Phoenix' -x 'HOUR:1:HOUR:3:HOUR:3:0:%b %d %H:00' \
                      -s -1d -l 10 --slope-mode \
                      DEF:temp2=/var/log/sensord.rrd:temp2:AVERAGE \
                      DEF:temp1_0=/var/log/sensord.rrd:temp1_0:AVERAGE \
                      DEF:temp_sda=/var/log/sda.rrd:temp:AVERAGE \
                      DEF:loadavg=/var/log/sensord.rrd:loadavg:AVERAGE \
                      CDEF:10_x_loadAvg=loadavg,10,* \
                      LINE2:temp2#7b23c6:"system" \
                      LINE2:temp1_0#D01717:"CPU" \
                      LINE2:temp_sda#790654:"Hard disk" \
                      LINE2:10_x_loadAvg#F52F1D:"10_x_loadAvg" > /dev/null

FILES="$FILES,$TEMP_DIR/daily-temperatures.png"
La seconda è un report mensile, ma al momento è in prova quindi preferisco non riportarlo ancora qui.
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...)

Ultima modifica di Gimli[2BV!2B] : 20-08-2012 alle 00:25.
Gimli[2BV!2B] è offline   Rispondi citando il messaggio o parte di esso
Old 20-08-2012, 14:15   #14
omerook
Senior Member
 
L'Avatar di omerook
 
Iscritto dal: Jul 2003
Città: Civis Romanus Sum
Messaggi: 7538
Quote:
Originariamente inviato da Gimli[2BV!2B] Guarda i messaggi
Trasformare casella e-mail in scatola nera per un piccolo server domestico.


[*] Conclusioni.
Tutto questo a cosa serve?
  • Permette di avere un backup minimale in caso di disastri (ancora non...).
  • Si viene a conoscenza della nascita di eventuali problemi grazie alle mail sui log (Chi è quel pirla che ha cercato di loggarsi con la password ****?! Ah, io...).
  • La salute dell'hardware è sotto controllo grazie ai sensori (la 12V è meno stabile...).
  • In caso di traffico di rete anomalo se ne viene a conoscenza grazie ad una veloce occhiata ai grafici quotidiani (il vicino scrocca la wireless!).
  • Si può conservare uno storico della vita del pc (blackout, ventole che rallentano).
  • Il modem ha perso la portante e si è riconnesso.
  • E altro...
Scherzi a parte ho avuto modo di apprezzare i miei sforzi.

Bene, se avete critiche, offese, suggerimenti, scrivete pure!
Solo ringraziamenti e complimenti!

p.s. ho trovato una guida che consente di ricevere un sms di notifica quando arrivano email su gmail
http://www.navigaweb.net/2012/04/ric...a-sms-sul.html
__________________
Asrock Q1900M , SSD 1TB, Pico Psu 90W, No Fans , No HD, zero meccanica, zero rumore!

Ultima modifica di omerook : 20-08-2012 alle 14:33.
omerook è offline   Rispondi citando il messaggio o parte di esso
Old 20-08-2012, 15:04   #15
Gimli[2BV!2B]
Senior Member
 
L'Avatar di Gimli[2BV!2B]
 
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
Grazie!

Interessante questa cosa degli SMS, già ora ho smistato le mail del "server" sotto varie etichette.
Potrebbe essere utile attivare una funzionalità di questo tipo per mail di priorità altissima, come il disco fisso che si sta cuocendo o sta perdendo settori per strada.

Questo mi fa giusto venire in mente che da qualche tempo ho attivato in smartd l'invio delle mail in caso di brutte variazioni di alcuni valori del disco:
Codice:
gimli@phoenix:~$ grep -E "^[^#].*$" /etc/smartd.conf 
/dev/sda -d sat -n standby -H -I 194 -C 197 -U 198 -W 3,45,49 -m [email protected]
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...)
Gimli[2BV!2B] è offline   Rispondi citando il messaggio o parte di esso
Old 20-08-2012, 15:49   #16
omerook
Senior Member
 
L'Avatar di omerook
 
Iscritto dal: Jul 2003
Città: Civis Romanus Sum
Messaggi: 7538
io, per curiosita, ho appena finito di provare la guida della notifica gmail su sms e confermo che funziona!
__________________
Asrock Q1900M , SSD 1TB, Pico Psu 90W, No Fans , No HD, zero meccanica, zero rumore!
omerook è offline   Rispondi citando il messaggio o parte di esso
Old 20-08-2012, 16:09   #17
Gimli[2BV!2B]
Senior Member
 
L'Avatar di Gimli[2BV!2B]
 
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
Bene! Ho appena aggiornato il post principale aggiungendo la notifica SMS tra i pro di GMail.
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...)
Gimli[2BV!2B] è offline   Rispondi citando il messaggio o parte di esso
Old 09-07-2013, 23:44   #18
Gimli[2BV!2B]
Senior Member
 
L'Avatar di Gimli[2BV!2B]
 
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
Han spostato inadyn da /usr/sbin ad /usr/bin
Aggiunte un paio di righe sui grafici mensili.
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...)
Gimli[2BV!2B] è offline   Rispondi citando il messaggio o parte di esso
Old 10-07-2013, 00:44   #19
Gimli[2BV!2B]
Senior Member
 
L'Avatar di Gimli[2BV!2B]
 
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
Sono abbastanza colpito dal fatto che la Debian Sid e l'hardware di 'sta pulce siano in funzione quasi ininterrottamente dal 26/02/2007.
Codice:
root@phoenix:~# ls -la --full-time /lost+found
totale 8
drwx------  2 root root 4096 2007-02-26 20:08:27.000000000 +0100 .
drwxr-xr-x 22 root root 4096 2013-06-19 23:57:01.000000000 +0200 ..
root@phoenix:~# ls -la --full-time /root/.local/share/Trash/
totale 16
drwx------ 4 root root 4096 2007-02-26 22:02:17.000000000 +0100 .
drwx------ 3 root root 4096 2007-02-26 22:02:17.000000000 +0100 ..
drwx------ 2 root root 4096 2007-02-26 22:02:17.000000000 +0100 files
drwx------ 2 root root 4096 2007-02-26 22:02:17.000000000 +0100 info
Gli script di questo thread sono in funzione dal febbraio 2008 ed hanno accumulato più di un GiB di backup e grafici.
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...)
Gimli[2BV!2B] è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Renault Twingo E-Tech Electric: che prezzo! Renault Twingo E-Tech Electric: che prezzo!
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media Il cuore digitale di F1 a Biggin Hill: l'infrast...
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica DJI Osmo Mobile 8: lo stabilizzatore per smartph...
Recensione Pura 80 Pro: HUAWEI torna a stupire con foto spettacolari e ricarica superveloce Recensione Pura 80 Pro: HUAWEI torna a stupire c...
Opera Neon: il browser AI agentico di nuova generazione Opera Neon: il browser AI agentico di nuova gene...
Blink Mini 2 da 34,99€ 15,90€ (-55%) su ...
Altro che AGI, la superintelligenza di M...
Il nuovo ECOVACS DEEBOT T30C OMNI GEN2 s...
GeForce RTX 50 SUPER in ritardo o persin...
HYTE X50: il case dalle linee arrotondat...
Sony ULT WEAR in super offerta: le cuffi...
Sconti record su smartwatch top: Apple W...
NIU continua a crescere: a EICMA 2025 nu...
DJI Osmo 360 ai prezzi più bassi ...
Il nuovo Edge 70 conferma la strategia v...
Il Re dei mini PC economici: 160€ con 16...
Smartphone, tablet e auricolari a soli 2...
Square Enix guarda al futuro: più...
Crolla a 89€ una scopa elettrica low cos...
Anche Huawei segue il trend del mercato:...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 10:30.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v