Pagine

sabato 14 agosto 2010

Backup con Tar

Per effettuare il backup di una directory o un intero disco, può essere molto comodo utilizzare il comando Tar:

Riporto un mio script che utilizzavo quando volevo effettuare un backup completo di tutta la mia Gentoo (tutte le partizioni).
Dopo aver effettuato il boot con un CD di avvio di Gentoo, richiamavo il seguente script che creava un backup completo di tutto il disco (per la partizione /home/roby solo delle directory di configurazione... non mi interessava effettuare il backup di tutta la home).
Il backup di ogni partizione veniva creato con un file separato, utilizzando uno stesso prefisso per il nome del file e, come suffisso, la data di creazione.
Veniva inoltre creato un ulteriore backup della directory /etc a parte, in modo da poter accedere alle configurazioni senza dover manipolare il file più grosso del backup.
I messaggi di output dei comandi eseguiti sono memorizzati in un file di log a parte.

NB: da notare che la directory /mnt/gentoo/backup (preventivamente creata) non deve essere considerata durante la creazione del backup!

#!/bin/bash
cd /mnt
mount /dev/hda2 /mnt/gentoo/boot
mount /dev/hda6 /mnt/gentoo/var
mount /dev/hda5 /mnt/gentoo/home

if [ $? != 0 ]; then
echo "ERRORE:"
exit -1
fi

cd /mnt/gentoo
PREFISSO_FILE="/mnt/gentoo/backup/distroBack"
FILE_LOG="$PREFISSO_FILE.log"
EST_TAR=".tar.gz"

DATA_START=$(date "+%Y%m%d_%H-%M-%S")

pwd
echo "Backup etc..."
echo "Backup etc..." > $FILE_LOG
tar -czpf $PREFISSO_FILE"_etc__"$(date "+%Y%m%d_%H-%M-%S")$EST_TAR /mnt/gentoo/etc/* 2>&1 | tee -a $FILE_LOG

echo "Backup tutto (tranne home)..."
echo "Backup tutto (tranne home)..." >> $FILE_LOG
tar -czpf $PREFISSO_FILE"_root_"$(date "+%Y%m%d_%H-%M-%S")$EST_TAR --exclude={/mnt/gentoo/home,/mnt/gentoo/backup,/mnt/gentoo/usr/portage/distfiles} /mnt/gentoo/* 2>&1 | tee -a $FILE_LOG

echo "Backup home (solo file e directory nascoste)..."
echo "Backup home (solo file e directory nascoste)..." >> $FILE_LOG
tar -czpf $PREFISSO_FILE"_home_"$(date "+%Y%m%d_%H-%M-%S")$EST_TAR --exclude={.,..} /mnt/gentoo/home/roby/noBeep.sh `ls -ad /mnt/gentoo/home/roby/.*` 2>&1 | tee -a $FILE_LOG

echo "Finito..."
echo "Finito..." >> $FILE_LOG

echo "--------------------------------------------" >> $FILE_LOG
echo "Backup start: "$DATA_START >> $FILE_LOG
echo "Backup end: "$(date "+%Y%m%d_%H-%M-%S") >> $FILE_LOG


cd /mnt
umount /mnt/gentoo/home
umount /mnt/gentoo/var
umount /mnt/gentoo/boot
umount /mnt/gentoo

echo "Spengo..."
poweroff
exit 0

Script per convertire vari formati audio in mp3

GNU/Linux offre diverse soluzioni per convertire i file audio da un formato ad un altro.

Riporto uno script molto semplice, per la conversione di vari formati audio nel formato mp3, che può essere utile:
NB: verificate ed eventualmente aggiornate il corretto nome di GStreamer (nel mio caso gst-launch-0.10)
#!/bin/bash

GSTLAUNCH=gst-launch-0.10
ENCODER=lame
#ENCODEOPTIONS=preset=1001 quality=0
ENCODEOPTIONS=-h -b 160
INPUTEXTENSION=$1
OUTPUTEXTENSION=mp3

INPUTFILES=`find $2 -iname *.$INPUTEXTENSION -printf %p\"`

usage() {
echo "Usage is $0 "
echo "$0 will transcode all files with the specified extension"
echo "in the directory, and all subdirectories"
echo
echo "Example: "
echo "$0 m4a Music"
echo "Will convert all the *.m4a files in the ./Music directory"
echo "and all it's subdirectories to .mp3 files"
}

if [[ $# != 2 ]] ; then
usage ;
exit ;
fi

for INPUT in $INPUTFILES ;
do OUTPUT=`echo $INPUT | sed s/.$INPUTEXTENSION/.$OUTPUTEXTENSION/` ;
echo "Converting \"$INPUT\" to \"$OUTPUT\"" ;
$GSTLAUNCH filesrc location=\"$INPUT\" ! decodebin ! \
$ENCODER $ENCODEOPTIONS ! filesink location=\"$OUTPUT\" ;
done

Disabilitare il "beep" della console

Utilizzando la console senza ambiente grafico, può capitare che, utilizzando il TAB per l'auto-completamento dei percorsi, il sistema esegue dei beep fastidiosissimi!

GNU/Linux:
Per disabilitare il beep da console (*buntu), è sufficiente eseguire il seguente comando:
setterm -blength 0

E' possibile creare un piccolo script con un nome comodo da ricordare, ad esempio "noBeep.sh":
#!/bin/bash
setterm -blength 0


FreeBSD:
Per FreeBSD si deve digitare il seguente comando:
# sysctl hw.syscons.bell=0

E per renderlo attivo ad ogni avvio:
# echo "hw.syscons.bell=0" >> /etc/sysctl.conf

LXDE voci menù con xdg-desktop-menu

Attualmente LXDE non ha una gestione grafica delle voci di menù.
LXDE segue comunque lo standard freedesktop.org.

Per creare una nuova voce di menù delle applicazioni, si può procedere così:
  • 1) Creare il file desktop
    Si può duplicare un file desktop già esistente e apportare le necessarie rettifiche.
    Salvare il nuovo file in una delle due directory:
    • /usr/share/applications
    • /usr/local/share/applications
    Per i menù aggiunti da me preferisco utilizzare: /usr/local/share/applications.
    NB: per poter utilizzare un editor grafico tipo leafpad (editor di default di LXDE) è sufficiente digitare: sudo leafpad voce-nuova-menu.desktop

    Riferimenti:
  • 2) Utilizzare l'utility a riga di comando xdg-desktop-menu
    In questo modo è possibile aggiornare il menù con la nuova voce creata.
    NB: se il nome del file desktop non contiene il prefisso "-" nel nome del file, il comando non installa nulla. Per risolvere, è possibile o rinominare il file desktop in modo da soddisfare i requisiti, oppure eseguire il comando con il parametro --novendor.

    Riferimenti:

domenica 1 agosto 2010

Connessione ADSL intermittente

Se la connessione internet sembra voler funzionare in modo intermittente, oppure a volte si blocca o il download non sembra funzionare, oltre alle varie soluzioni che si trovano sulla rete, è il caso di verificare anche se:
  • il parametro MTU (TCP Maximum Transmission Unit) del router sia impostato ad un valore corretto e coerente per il fornitore del servizio ADSL.

    Per maggiori informazioni potete seguire questa guida:

    http://ubuntuforums.org/showthread.php?t=872346
  • verificare se il firewall ha il filtro ICMP attivo, tramite lo scambio di messaggi icmp il sistema riesce a determinare la corretta dimensione del parametro MTU.
  • verificare se il router riesce ad accedere correttamente al DNS del fornitore del servizio

System utility per Linux

Premessa: rimango dell'idea che un buon sistemista Linux debba saper fare tutto da console (un server Linux non deve avere interfaccia grafica), ma molti utenti dei sistemi desktop Linux possono avere la vita più semplice con qualche buona utility da usare nelle interfacce grafiche.

Me ne hanno segnalate due: