Archives de catégorie : Linux

Mettre Ubuntu à jour et conserver les données

Tous les utilisateurs de linux le savent, le système d’exploitation est puissant et offre de nombreuses possibilités, mais le configurer à notre goût peut prendre un temps considérable. Qu’il s’agisse d’installer ou de configurer les logiciels, nous passons régulièrement de longues heures à bidouiller afin de rendre tout fonctionnel. Lorsque que vient le temps de changer de version ou lorsque survient un pépin, il est intéressant de pouvoir relancer le système le plus rapidement possible. Voici la méthode que j’ai développé, suite à plusieurs essais et erreurs.

 

  1. Insérer une clé USB. Elle devrait apparaître comme un répertoire dans /media ou dans un sous-répertoire à votre nom d’usager sous /media. Nous créons un lien symbolique /media/USB qui pointera vers ce répertoire.
    sudo su
    ln -s /media/USERNAME/NOM_DE_LA_CLE_USB /media/USB
    exit
  2. Un des programme que j’utilise et qui n’a pas de
    fichiers de configuration à proprement dit est crontab. Pour conserver la configuration, nous sauvegarderons la sortie de la commande crontab -l dans un fichier à l’aide de:

    crontab -l >& ~/crontab.txt
  3. Faire la même chose avec le crontab du compte root:
    sudo su
    crontab -l >& ~/crontab.txt
    exit
  4. Un autre programme dont les données doivent être sauvegardées manuellement est mysql. Oui, les fichiers sont dans le répertoire /var/mysql, mais il est plus sage de recréer les bases de données à partir d’un fichier sql pour éviter les problèmes de compatibilités. Voici le script que j’utilise afin de faire un backup journalier. N’oubliez pas de modifier les paramètres MYSQLUSER, MYSQLPASSWORD et BACKUPPATH pour y mettre les valeurs appropriées. Les données étant dans le répertoire backupmysql dans le répertoire home de l’usager, nous les copierons au point suivant
    #!/bin/sh
    umask 007
    
    renice 10 $$ >/dev/null
    
    BACKUPPATH=~/backupmysql
    MYSQLUSER=mysqldump
    MYSQLPASSWORD=backup
    
    mkdir -p $BACKUPPATH/sql
    for db in `mysql -u$MYSQLUSER -p$MYSQLPASSWORD --batch --skip-column-names --execute="SHOW DATABASES" | grep -v performance_schema | grep -v information_schema`
    do
    	/usr/bin/nice /usr/bin/mysqldump -u$MYSQLUSER -p$MYSQLPASSWORD --events --ignore-table=mysql.event --single-transaction --quick --extended-insert $db > $BACKUPPATH/sql/Backup_mysql_`date +\%Y-\%m-\%d`_${db}.sql
    done
    tar -czf $BACKUPPATH/Backup_mysql_`date +\%Y-\%m-\%d`.sql.tgz -C $BACKUPPATH sql 
    rm -rf $BACKUPPATH/sql
    
    
  5. Ensuite, faire un backup du répertoire /home à l’aide de la commande suivante (il est possible d’ajouter autant de ––exclude que nécessaire):
    tar czvf /media/USB/home.tgz --exclude ~/.mozilla/cache ~
  6. Faire de même avec le répertoire /etc:
    sudo su
    tar czvf /media/USB/etc.tgz /etc
    exit
  7. Enfin, faire la même chose avec le répertoire /root:
    sudo su
    tar czvf /media/USB/root.tgz ~
    exit

Voilà, vous avez maintenant un backup qui vous permettera de remettre votre système en marche rapidement lors de votre prochaine remise à niveau.