qualche giorno fa ho installato KDE4, ed ho cominciato a stripparmi con i widget, ad un certo punto ho inserito un widget (che devo ancora identificare) e tutto è divenuto inutilizzabile, nel senso che anche facendo logout/login, non potevo riprendere possesso del desktop e fare qualsiasi operazione era impossibile…
Unica soluzione è stata quella di cancellare completamente la directory .kde/share e ricominciare tutto da capo.
A quel punto ho deciso di scrivere un piccolo script che mi permettesse di fare un backup della directory .kde/share
In una futura versione vorrei implementare anche il restore, per ora comunque la cosa
più importante è che fa il backup.
Ho inserito lo script tra quelli che devono essere lanciati automaticamente all’avvio di KDE4 (in kde4 è veramente facile da gestire la cosa), e di default applico un rotate dei backup (che sono dei semplici tar.gz) di 10 elementi, in pratica ad ogni registrazione
viene buttato quello più vecchio.
Di default i backup vengono messi in .kde/backup, ma può essere determinata la directory di destinazione, come quanti file tenere in tale directory.
Questa possibilità mi permette di creare un bottone sul desktop o sulla barra, che lancia lo script con una directory diversa da quella di default e mettendo come rotate un file soltanto (quello creato sul momento) per fare un backup “straordinario” rispetto a quelli fatti alla partenza, per poter tenere una configurazione particolare su cui sto lavorando e a cui posso rapidamente accedere.
Lo script funziona anche con kde3, visto che la directory da copiare è la stessa.
Spero che lo script sia di vostro gradimento, è in bash e non richiede nessun elemento in più di quelli installati di default.
Naturalmente sono ben accetti commenti e/o miglioramenti. Lo script è rilasciato con licenza GPL V3, quindi ne potete fare quello che volete…
================================
Questo è il post che ho inserito sulla ML degli utenti Debian italiani.
Visto che a quanto pare non tutti possono leggere gli allegati, inserisco qui di seguito lo script in modo che possa essere tranquillamente scaricato.
kde-conf-backup (è ancora troppo immaturo, se per esempio avete tante mail, ci mette un'ora prima di essere pronto).
Purtroppo per poterlo caricare ho dovuto mettere l’estensione .doc, cambiatela con .sh, rendete il file eseguibile, e buon divertimento.
non so se apparirà, ma posto anche direttamente qui il codice che ho scritto:
#!/bin/bash
# Shell script per il backup della directory /.kde/share ad ogni avvio di sistema,
# in modo da recuperare la configurazione funzionante quando kde impazzisce
# (possibile con l'uso dei widget).
# Definizione delle variabili usate nello script
PRGNAME=`basename $0`
VERSION="1.8"
BASEDIR=~/.kde/
FROMDIR=$BASEDIR"share"
TODIR=$BASEDIR"backup"
BASENAME="kde-backup"
TIMENAME=`date +%Y%m%d%H%M%S`
BACKUPNAME=$TIMENAME"-"$BASENAME
EXTENSION=".tgz"
DESTINATION=$TODIR"/"$BACKUPNAME$EXTENSION
NROTATE=10
print_version(){
# print version message.
echo "$PRGNAME - realname: kde-backup"
echo " version $VERSION"
echo " "
echo "$PRGNAME -h for help message."
echo " "
echo " © 2009 - Gollum1 - Distribution under GPL V3 (see GPL V3 definition from http://www.gnu.org/copyleft/gpl.html)"
}
print_help(){
# reset to default value.
TODIR=$BASEDIR"backup"
NROTATE=10
# print help message.
echo "$PRGNAME - backup for kde settings."
echo " usage: $PRGNAME [options]"
echo " "
echo " Options:"
echo " -d : select destination directory for backup file. DEFAULT: $TODIR"
echo " -r : select number of rotation for backup files (max number of file to save). DEFAULT: $NROTATE"
echo " -h : print this help and exit."
echo " -V : print version of this script and exit."
echo " "
echo " Todo list for next versione:"
echo " Select one backup file from backup files list and restore it (after backup directory to delete for restoring)."
echo " "
echo " © 2009 - Gollum1 - Distribution under GPL V3 (see GPL V3 definition from http://www.gnu.org/copyleft/gpl.html)"
}
standard-backup(){
# If not exist destination directory, create it.
if [ ! -d $TODIR ]; then
mkdir -p `echo $TODIR` &>/dev/null
fi
# Create backup file, it's a simplex tar file compress with gzip.
tar -cf $DESTINATION $FROMDIR &>/dev/null
}
rotate(){
# Delete old backup file, rotate similar system log file.
for FILETODELETE in `ls -1 $TODIR | grep -i kde-backup | head -n -$NROTATE`; do
rm $TODIR"/"$FILETODELETE
done
}
# START SCRIPT
OPTIONS=":Vhd:r:" # inline parameter.
# Parsing inline parameter.
while getopts $OPTIONS opt; do
case $opt in
V) # Print version message and exit.
print_version
exit 0
;;
h) # Print help message and exit.
print_help
exit 0
;;
d) # Set destination directory.
TODIR="$OPTARG"
DESTINATION=$TODIR"/"$BACKUPNAME$EXTENSION
;;
r) # Set number of rotation files.
NROTATE="$OPTARG"
;;
\?) # Invalid option.
echo "Invalid option: -$OPTARG" >&2
exit 1
;;
esac
done
standard-backup
rotate
exit 0
Buon divertimento, aspetto vostri commenti…
Byez
