Articles plus anciens

Voici le déroulement d’une mise à jour de Jaunty vers Karmic sous forme de copies d’écran (rien de plus à ajouter)


Karmic- sources tiers desactivés

Karmic- sources tiers desactivés


Karmic- logiciels non mis à jour

Karmic- logiciels non mis à jour, du fait de la désactivation des sources tiers


Karmic- démarrage de la mise à jour

Karmic- démarrage de la mise à jour


Karmic- confirmation mise à jour

Karmic- confirmation mise à jour


Karmic- mise à jour

Karmic- mise à jour, téléchargement des paquets


Karmic- installation

Karmic- installation


Karmic- suppression paquets obsolètes

Karmic- suppression paquets obsolètes


Karmic- fin de l'installation redémarrage

Karmic- fin de l'installation redémarrage



Facile non ?



A l’occasion de la sortie de Karmic Koala (Ubuntu 9.10), j’ai décider de faire la mise à jour sur mon portable (sweetLap).


J’ai donc naturellement lancé le gestionnaire de mise à jour (ALT+F2, update-manager) et cliqué sur mettre à jour mon système (ou quelque chose dans le genre).

La mise à jour à démarré mais ça s’est corsé au moment du téléchargement des paquets, visiblement je n’étais aps le seul à avoir eu l’idée, le vitesse de téléchargement était abominable.


D’une nature impatiente, j’ai interompu cette mise à jour et cherché comment upgrader Ubuntu sans Internet, ayant dans l’après midi téléchargé les ISO des CDs (par torrent où cette fois ci plus on est nombreux plus ça va vite…)


Et voici le résultat de mes recherches (pas très compliqué puisqu’une page existe sur ubuntu.com



Tout d’abord il faut avoir le bon CD c’est à dire la version alternate d’Ubuntu (lien torrent pour Karmic)



Ensuite on peut graver le CD ou mieux tout simplement monter l’ISO :

sudo mount -o loop ~/Bureau/ubuntu-9.10-alternate-i386.iso /media/cdrom0



Si rien ne se passe lancer :

gksu "sh /cdrom/cdromupgrade"



Et là devrait apparaitre la fenêtre suivante :

Boite de dialogue pour la mise à jour vers Karmic Koala depuis le CD alternate

Boite de dialogue pour la mise à jour vers Karmic Koala depuis le CD alternate



Reste plus qu’à cliquer sur « Lancer la mise à jour« 



Durant la phase d’installation la boite de dialogue suivante, demande si on doit aller chercher la dernière version des paquets, il faut bien entendu répondre non, sinon on perd l’intérêt de la mise à jour par CD.

Ne pas télécharger les dernières mise à jour (Karmic)

Ne pas télécharger les dernières mise à jour (Karmic)



La copie des paquets se fait alors depuis l’image ISO et est donc très rapide.



Sources :

http://www.ubuntu.com/getubuntu/upgrading



Pour sauvegarder un PC Windows avec rSnapshot, il existe 3 (au moins) grandes méthodes :

  • Monter un démon rsync sous Windows et faire une sauvegarde comme si il s’agissait d’un PC Linux
  • Monter un partage Windows via Samba, et sauvegarder le partage comme un répertoire local
  • Ajouter le support NFS sous Windows


J’ai personnellement testé les deux premières, mais je n’ai réussi à mettre en œuvre de façon acceptable que la deuxième solution.


Comme pour l’article Samba, je rédige le présent post à partir de notes prises au moment de la mise en œuvre de la solution, je ne peux plus vérifier les configurations décrites ici n’ayant plus de PC sous Windows.


Démon rsync sous Windows

Pour avoir un serveur rsync sous Windows il faut passser par cygwin qui est un package qui met à disposition des utilisateurs Windows les principaux outils Linux existant dont rsync.


Je ne voulais pas installer cygwin j’ai donc trouvé 2 packages rsync indépendant (se basant tout de même sur cygwin, mais avec le strict minimum)

Le premier étant plus automatisé que le second.


J’ai testé les 2 et je me suis heurté au même problème de non préservation des accents dans les noms de fichiers.

Il est logique que ces 2 packages aient le même comportement concernant les accents, puisque ce dernier est inhérent à cygwin qui ne gère pas l’UTF8

 

J’ai bien tenter d’appliquer une dll patchée de cygwin sensé ajouter le support de l’UTF8 à ce dernier mais sans succès.

Ce problème d’accent étant bloquant je n’ai pas persévéré avec cette solution.


Pour en savoir plus sur la mise en œuvre consulter cet article :

http://www.stillnetstudios.com/snapshot-backups-howto/


Partage Samba

Dans cette solution le pré-requis est d’avoir Samba d’installé et configuré sur le serveur de sauvegarde.


Ensuite on monte le partage Windows voulu dans le point de montage de son choix avec la commande mount :


mount -t cifs //adresse_ip_machine_windows/partage /mnt -o username=utilisateur_windows,password=mot_de_passe,iocharset=utf8,noperm


Dans mon cas le partage Windows était le partage administratif du disque dur contenant les données à sauvegarder (D$) et mon utilisateur était membre du groupe Administrateur.

L’option iocharset permet de spécifier l’encodage des noms de fichier (UTF8) pour prendre en compte les accents et noperm indique qu’il ne faut pas vérifier les droits sur les fichiers


Après la saisie de la commande, normalement votre partage (D: dasn mon cas) devrait être accessible dans votre point de montage /mnt.


Fichier rsnapshot

Le fichier de configuration rSnapshot utilisé est peut différent de celui décrit pour la sauvegarde des machine Linux.

################################################# 
# rsnapshot.conf - rsnapshot configuration file # 
################################################# 
# # 
# PLEASE BE AWARE OF THE FOLLOWING RULES: # 
# # 
# This file requires tabs between elements # 
# # 
# Directories require a trailing slash: # 
# right: /home/ # 
# wrong: /home # 
# # 
#################################################
 
####################### 
# CONFIG FILE VERSION # 
#######################
 
config_version 1.2
 
########################### 
# SNAPSHOT ROOT DIRECTORY # 
###########################
 
snapshot_root /data/sauvegardes/sweetHome/ 
no_create_root 1
 
################################# 
# EXTERNAL PROGRAM DEPENDENCIES # 
################################# 
cmd_cp /bin/cp 
cmd_rm /bin/rm 
cmd_rsync /usr/bin/rsync 
cmd_ssh /usr/bin/ssh 
cmd_logger /usr/bin/logger 
cmd_du /usr/bin/du 
cmd_rsnapshot_diff /usr/bin/rsnapshot-diff 
#cmd_preexec /path/to/preexec/script 
#cmd_postexec /path/to/postexec/script
 
######################################### 
# BACKUP INTERVALS # 
# Must be unique and in ascending order # 
# i.e. hourly, daily, weekly, etc. # 
######################################### 
interval daily 7 
interval weekly 4 
interval monthly 2
 
############################################ 
# GLOBAL OPTIONS # 
# All are optional, with sensible defaults # 
############################################
 
# Verbose level : 1 (mini) through 5 (maxi). 
verbose 2 
loglevel 3 
logfile /var/log/svc/rsnapshot.log 
lockfile /var/lock/rsnapshot.pid
 
rsync_long_args --delete --numeric-ids --delete-excluded --chmod=ugo=rwX 
ssh_args -o BatchMode=yes
 
#include_file /path/to/include/file 
#exclude_file /path/to/exclude/file
 
############################### 
### BACKUP POINTS / SCRIPTS ### 
###############################
 
# sweetHome 
backup /mnt/


Les 2 seuls différences concernent le point de sauvegarde (on spécifie ici que l’on sauvegarde un dossier local) et l’argument chmod de l’option rsync_long_args, où l’on indique qu’il faut changer les droits utilisateur de tous les fichiers sauvegardés pour y appliquer les droits en lecture, écriture et exécution pour tout le monde.


Scripts de sauvegarde

Pour finir mes scripts enchainant les diverses opération nécessaires à la sauvegarde du PC Windows :

  • Allumage via WOL
  • Montage du partage
  • Sauvegarde
  • Démontage
  • Extinction


/home/mon_user/bin/sauvegarde.sh

#!/bin/bash
 
DAY_OF_WEEKLY_BACKUP=lundi 
DAY_OF_MONTHLY_BACKUP=01
 
cd $(dirname "${0}")
 
echo Attente reveil sweetHome 
./wakeOnLanSweetHome.sh 
sleep 60 
sudo ./mountSweetHome.sh
 
echo Sauvegarde journaliere en cours... 
rsnapshot -c rsnapshotSweetHome.conf daily
 
if [ $(date +%A) == $DAY_OF_WEEKLY_BACKUP ]; then 
echo Sauvegarde hebdomadaire en cours... 
rsnapshot -c rsnapshotSweetHome.conf weekly 
fi 
if [ $(date +%d) == $DAY_OF_MONTHLY_BACKUP ]; then 
echo Sauvegarde mensuelle en cours... 
rsnapshot -c rsnapshotSweetHome.conf monthly 
fi
 
sudo ./umountSweetHome.sh 
echo Arret de sweetHome 
net rpc shutdown -f -I machine_distante -U utilisateur_distant%mot_de_passe -t 10 -C "Arrêt en cours..."


wakeOnLanSweetHome.sh est le même que celui mentionné dans Sauvegarde avec rSnapshot, configuration complète

#!/bin/bash
 
echo Reveil de sweetHome 
wakeonlan mon_adresse_mac


mountSweetHome.sh contient juste la commande de mount indiquée ci-dessus.

#! /bin/bash
 
echo montage du lecteur D de sweetHome 
mount -t cifs //adresse_ip_machine_windows/partage /mnt -o username=utilisateur_windows,password=mot_de_passe,iocharset=utf8,noperm


umountSweetHome.sh lui contient juste :

#! /bin/bash
 
echo demontage du lecteur D de sweetHome 
umount /mnt/sweetHome


L’intérêt de mettre ces commandes simple dans des scripts bash est de pouvoir modifier le sudoer pour autoriser l’exécution de ces scripts sans mot de passe, évitant de mettre ce droit sur les commandes mount et umount directement.

Ainsi on pourra monter/demonter le partage Windows de sweetHome avec sudo sans mot de passe mais l’exécution de mount/umount pour monter/demonter autre chose necessitera toujours le mot de passe.


On aura donc dans sudoer :

mon_user ALL = NOPASSWD: mountSweetHome.sh, umountSweetHome.sh

Et non pas :

mon_user ALL = NOPASSWD: mount, umount



Sources :

http://www.stillnetstudios.com/snapshot-backups-howto/

Démon rsync sur Windows

http://blog.gingerlime.com/rsnapshot-server-on-windows

http://www.stillnetstudios.com/snapshot-backups-howto/

Démon rsync sur Windows – problèmes accent

http://itefix.no/i2/node/11626?page=1#comment-14452

http://forum.ubuntu-fr.org/viewtopic.php?id=141415

http://www.okisoft.co.jp/esc/utf8-cygwin/



Cette article est la synthèse des précédents :

Il contient tous les scripts et configuration mis en oeuvre pour la sauvegarde du home de ma machine sweetHome par sweetBox.


Configuration du serveur de sauvegarde

Tout d’abord je ne planifie pas chacun des intervals rSnapshot individuellement dans Cron, j’ai une seul tache appellant un script qui lui va « calculer » quel interval rSnapshot exécuter.

L’avantage, on éteint les machines à sauvegarder à la fin de l’exécution des tous les intervals, on pourrait même éteindre la machine réalisant la sauvegarde.


Voici ce script :

/home/mon_user/bin/sauvegarde.sh


#!/bin/bash
 
DAY_OF_WEEKLY_BACKUP=lundi
DAY_OF_MONTHLY_BACKUP=01
 
cd $(dirname "${0}")
 
. $HOME/.profile
. wakeOnLanSweetHome.sh
sleep 120
 
echo Sauvegarde journaliere en cours...
rsnapshot -v -c rsnapshotSweetHome.conf daily > /var/log/svc/rsnapshot.log 2>&1
 
if [ $(date +%A) == $DAY_OF_WEEKLY_BACKUP ]; then
echo Sauvegarde hebdomadaire en cours...
rsnapshot -v -c rsnapshotSweetHome.conf weekly >> /var/log/svc/rsnapshot.log 2>&1
fi
if [ $(date +%d) == $DAY_OF_MONTHLY_BACKUP ]; then
echo Sauvegarde mensuelle en cours...
rsnapshot -v -c rsnapshotSweetHome.conf monthly >> /var/log/svc/rsnapshot.log 2>&1
fi
 
cat /var/log/mon_user/rsnapshot.log | rsnapreport.pl | mail -s Sauvegarde mon_email
 
ssh mon_user@sweethome "shutdown -h now"


Ce script réveil sweetHome via Wake on Lan, lance la sauvegarde journalière puis hebdmadaire si on est un lundi, la mensuelle si on est un premier du mois.


Edit 27/01/2010 : Pour que le test sur le jour de la semaine fonctionne il faut que ce script soit exécuté dans un environnement pour lequel la langue est FR, or ce n’est pas le cas par défaut dans une tache Cron.

Il conviendra donc d’ajouter LANG=fr_FR.UTF-8 dnas l’en-tête de la crontab.

Cf. cet article


Puis le rapport de sauvegarde est formatté par rsnareport et envoyé par mail, enfin on éteint le pc à distance.


Pour info le WOL est réalisé dans un script à part, ce qui me permet de réveiller sweetHome quand je veux sans avoir à me rappeler son adresse MAC, il est très succinct :


wakeOnLanSweetHome.sh

#!/bin/bash
 
echo Reveil de sweetHome
wakeonlan mon_adresse_mac



Ci-dessous mon fichier de configuration rsnapshot (purgé des commentaires) :


#################################################
# rsnapshot.conf - rsnapshot configuration file #
#################################################
# #
# PLEASE BE AWARE OF THE FOLLOWING RULES: #
# #
# This file requires tabs between elements #
# #
# Directories require a trailing slash: #
# right: /home/ #
# wrong: /home #
# #
#################################################
 
#######################
# CONFIG FILE VERSION #
#######################
 
config_version 1.2
 
###########################
# SNAPSHOT ROOT DIRECTORY #
###########################
 
snapshot_root /data/sauvegardes/sweetHome/
no_create_root 1
 
#################################
# EXTERNAL PROGRAM DEPENDENCIES #
#################################
cmd_cp /bin/cp
cmd_rm /bin/rm
cmd_rsync /usr/bin/rsync
cmd_ssh /usr/bin/ssh
cmd_logger /usr/bin/logger
cmd_du /usr/bin/du
cmd_rsnapshot_diff /usr/bin/rsnapshot-diff
#cmd_preexec /path/to/preexec/script
#cmd_postexec /path/to/postexec/script
 
#########################################
# BACKUP INTERVALS #
# Must be unique and in ascending order #
# i.e. hourly, daily, weekly, etc. #
#########################################
interval daily 7
interval weekly 4
interval monthly 2
 
############################################
# GLOBAL OPTIONS #
# All are optional, with sensible defaults #
############################################
 
# Verbose level : 1 (mini) through 5 (maxi).
verbose 2
loglevel 3
logfile /var/log/svc/rsnapshot.log
lockfile /var/lock/rsnapshot.pid
 
rsync_long_args --delete --numeric-ids --relative --delete-excluded --stats
ssh_args -o BatchMode=yes
 
#exclude .gvfs
#include_file /path/to/include/file
exclude_file /home/mon_user/bin/rsnapshotExclude
 
###############################
### BACKUP POINTS / SCRIPTS ###
###############################
 
# sweetHome
backup mon_user@sweethome:/home/user_distant <br class="spacer_" />

Le fichier d’exclusion contient ceci :


Trash/
.thumbnails/
.mozilla/*/*/Cache/
.gvfs
tmp/



Afin d’avoir une connexion SSH sans mot de passe, j’ai généré un couple de clés stockés dans /home/mon_user/.ssh.


Pour simplifier la synthaxe SSH, j’ai ensuite créé un fichier config :

/home/mon_user/.ssh/config


Host sweethome
Hostname 192.168.1.100
User mon_user



Configuration de la machine sauvegardée


La clé publique généré sur le serveur de sauvegarde à été copié dans authorized_key sur la machine sauvegardée, et modifiée ainsi :


from="IP_sweetBox",command="/home/user_distant/bin/validate-rsync" ssh-rsa AAAAB3...VJpj9cjzjPTyYcXgGiQ== <a href="mailto:mon_user@sweetBox">mon_user@sweetBox</a>


On indique ainsi que cette clé utilisable que pour une connexion venant de l’IP from et que l’on exécute le script validate_rsync lors de l’établissement de cette connexion SSH.


Ce script de validation s’assure que la connexion SSH n’est établie que pour les commandes rsync (pour la sauvegarde) et/ou shutdown (pour éteindre sweetHome à la fin de la sauvegarde :

bin/validate-rsync


#!/bin/sh
 
case "$SSH_ORIGINAL_COMMAND" in
*\&*)
echo "Rejected"
;;
*\(*)
echo "Rejected"
;;
*\{*)
echo "Rejected"
;;
*\;*)
echo "Rejected"
;;
*\<*)
echo "Rejected"
;;
*\`*)
echo "Rejected"
;;
*\|*)
echo "Rejected"
;;
rsync\ --server*)
sudo $SSH_ORIGINAL_COMMAND
;;
shutdown\ -h\ now*)
sudo $SSH_ORIGINAL_COMMAND
;;
 
*)
echo "Rejected"
;;
esac


On le voit ici que les commande rsync et shutdown sont précédées de sudo pour les exécuter en super-utilisateur.


Il convient donc de modifier le sudoer (sudo visudo) pour autoriser l’utilisateur de sweetHome réalisant la sauvegarde (utilisateur que j’ai décrit comme utilisateur distant vis a vis de sweetBox qui est ma référence) ait le droit de lancer sudo pour ces 2 commandes sans mot de passe.


J’ai donc ajouté cette ligne à mon sudoer :


mon_user ALL = NOPASSWD: /usr/bin/rsync, /sbin/shutdown



Et voila..



Edit :

10/11/2009 : ajout de l’option –relative aux paramètres rsync et mise à jour de la variable rsnapshot exclude_file

27/01/2010 : Ajout de la remarque concernant le langue du script de sauvegarde dans le cadre d’une exécution via Cron


Lorsque l’on a Internet chez soi, recevoir tous les ans les annuaires papier est une aberration, surtout en cette période de sensibilité écologique grandissante.


Pour y remédier une solution existe, se désinscrire.

C’est trop tard pour cette année, mais ce sera toujours 3 kg (j’ai pesé) de papier d’économisé l’année prochaine et les suivantes.


Le lien :

http://www.recevoirmesannuaires.pagesjaunes.fr




PS : s’eut été trop beau, je viens d’essayer de me désinscrire et j’ai un jolie message :

Attention ! Nous n’avons pas réussi à vous identifier. Veuillez contacter le Centre Relation Client.


Dommage….


Sources:

http://www.greenzer.fr/non-pages-jaunes-boite-aux-lettres