3. Le script bash

Le script bash (shivalik version 1.0) est un programme permettant de sauvegarder les informations et les fichiers essentiels. Après avoir téléchargé ce script :

[Important] Important

Vous devez lire l'avertissement donné à la fin du script. Ne passez aux étapes suivantes que si vous êtes d'accord avec les conditions indiquées dans cet avertissement…

Maintenant vous pouvez exécuter le script (sous le compte root, ne l'oubliez pas) en lançant la commande : ./shivalik

Ce script est très documenté. En aucun cas il ne modifiera ni ne détruira vos fichiers et vos répertoires. Il va créer une copie de sauvegarde bien protégée de quelques informations et fichiers essentiels. Le script entier est disponible ci-dessous pour que vous puissiez le parcourir et comprendre son fonctionnement. Sentez-vous libre d'ajouter au script des fonctions supplémentaires ou des fichiers que vous souhaiteriez voir sauvegarder. N'hésitez pas à envoyer un petit mot en anglais à l'auteur de ce script () pour lui indiquer vos modifications.

Rappelez-vous que le script shivalik n'est pas un outil destiné à sauvegarder et à restaurer totalement votre système. L'idéal étant de faire une copie intégrale de votre installation Linux, incluant tous les fichiers et tous les répertoires. Ce qui n'est pas toujours possible, nécessaire ou conseillé. La seconde meilleure chose étant de sauvegarder les informations et les fichiers les plus essentiels. Le script shivalik le fait pour vous. Le script crée le répertoire /root/postinfo/, et y stocke les informations et fichiers essentiels. Pour être préparé à toute éventualité, vous devrez intégralement copier le répertoire /root/postinfo/ sur un disque ou une disquette dès que le script aura été exécuté.

Récupération et réparation : en cas de problème, plus tard, vous pourrez réparer les fichiers endommagés en les recopiant depuis le répertoire /root/postinfo/. C'est aussi simple que ça.

La structure du répertoire /root/postinfo/ et les fichiers qu'il contient seront comme suit :

/root/postinfo/summary

Ce fichier contient un rapport de synthèse de la situation de votre système (mémoire, partitions, points de montage, utilisation du disque). Ce fichier contient aussi la liste des fichiers qui ont été sauvegardés. Il contient enfin des informations destinées à l'administrateur comme la date et l'heure de la sauvegarde, la version de shivalik utilisée, et cætera.

/root/postinfo/postinfo.tar.gz

Contient une copie du précédent postinfo (s'il y en a eu un).

/root/postinfo/snapshot.gz

Ce fichier compressé contient une liste structurée de tous les fichiers et répertoires de votre système Linux. Vous pouvez décompresser ce fichier et utiliser un éditeur de texte pour retrouver l'emplacement de n'importe quel fichier. Bien sûr, vous ne pourrez retrouver le contenu d'un fichier à moins que vous l'ayez sauvegardé explicitement ailleurs.

/root/postinfo/shivalik

C'est une copie du script shivalik qui a été utilisé pour faire la sauvegarde post-installation. Après un incident, lors de la récupération, vous pourrez toujours examiner ce script pour voir comment la sauvegarde a été faite. Vous aurez toujours une copie du script cohérentes avec les fichiers créés par le script.

/root/postinfo/etcfiles/

Ce sous-répertoire contient la copie d'un grand nombre de fichiers essentiels contenus dans le répertoire /etc/ de votre installation Linux. Il contient aussi les copies de divers fichiers de configuration contenus dans le répertoire /etc/.

/root/postinfo/otherfiles/

Ce sous-répertoire contient une copie de quelques fichiers essentiels (ceux qui ne sont pas dans le répertoire /etc/ de votre installation Linux. Si vous voulez, vous pouvez ajouter n'importe quel autre fichier ici, et le sauvegarder automatiquement avec les autres.

3.1. Le script…

# ---------------------------------------------------------------------
#                       shivalik (version 1.0)
#                 Adaptation française de Simon Depiets
#
# Lisez d'abord la section AVERTISSEMENT de ce script.
#
# Ce script collecte après installation des informations
# essentielles sur votre système. Il peut aussi être lancé 
# à l'occasion pour rassembler en un endroit unique toutes 
# les informations utiles sur votre installation Linux.
#
# Les données du script seront stockées dans :
# /root/postinfo/
#
# Un rapport de synthèse sera écrit dans :
# /root/postinfo/summary

# Pour le mode d'emploi et les informations associées, consultez :
# http://algolog.tripod.com/postlnx.htm
# ---------------------------------------------------------------------

clear

cat << EOF

---------------------------------------------------------------
Ce texte est la sortie du script shivalik (version 1.0) de
M. Partha, d'Algologic Research & Solutions.
Pour que ce script fonctionne correctement, vous devez être
connecté sous le compte « root ». Vous devez aussi
lire et accepter les termes et les avertissements donnés dans
la section AVERTISSSEMENT à la fin de ce script.
---------------------------------------------------------------

### ÉTAPE 0 ### Travail préparatoire

Premièrement, nous créons le répertoire /root/postinfo/
si ce n'est pas encore fait
EOF

test ! -d /root/postinfo && mkdir /root/postinfo

cat << EOF

Nous sauvegardons la version actuelle de tous les fichiers
contenus dans le répertoire « postinfo »

Mais tout d'abord nous supprimons la version précédente,
c'est-à-dire la version actuelle - 1

EOF

test -e /root/postinfo/oldpostinfo* && \
    rm -v /root/postinfo/oldpostinfo.tar.gz

echo

# Le fichier oldpostinfo est créé temporairement dans /root ;
# il sera déplacé dans /root/postinfo

tar czvf /root/oldpostinfo.tar.gz /root/postinfo/*

# Vérification du fonctionnement de la compression

if `test -s /root/oldpostinfo.tar.gz` ; then 
    echo "Ancien répertoire postinfo copié dans /root/oldpostinfo.tar.gz"
    ls -l /root/oldpostinfo*
else
    echo "Impossible de sauvegarder oldpostinfo."
    echo "Abandon. Arrêt du script."
    exit 1
fi

# Maintenant nous supprimons tous les fichiers postinfo actuels

rm -rf /root/postinfo/*

# Et nous créons un nouveau fichier de synthèse

echo "shivalik (version 1.0)" > /root/postinfo/summary
echo -n "Rapport créé le : " >> /root/postinfo/summary

date -R >> /root/postinfo/summary

echo
echo "Et maintenant, nous déplaçons le fichier oldpostinfo"
echo "dans le répertoire /root/postinfo/"

mv -v /root/oldpostinfo.tar.gz /root/postinfo
#

# Copie du script schivalik

echo "Charité bien ordonnée commence par soi-même."
echo "Nous faisons une copie du script shivalik."

cat << EOF >> /root/postinfo/summary
Nous faisons une copie du script shivalik dans /root/postinfo/
EOF


cp -v ./shivalik /root/postinfo/shivalik

# Faisons le point

echo
echo "Contenu du répertoire /root/postinfo à la fin de l'étape 0"

ls -AlR /root/postinfo

echo "Fin de l'"### ÉTAPE 0 ###"
echo
#
#
echo

echo "### ÉTAPE 1 ### Prendre un instantané de votre système"

cat << EOF >> /root/postinfo/summary

### ÉTAPE 1 ### Un instantané de tous vos répertoires
                et de tous vos fichiers

EOF

cat << EOF
La première étape est de faire le point sur le contenu
de votre ordinateur. Cela peut prendre plusieurs minutes.
Donc, allez chercher votre tasse à café !
EOF

ls -AlRH / >> /root/postinfo/snapshot

rm -f /root/postinfo/snapshot.gz

gzip /root/postinfo/snapshot

echo "Le petit oiseau va sortir !"
echo "Photo prise"

cat << EOF >> /root/postinfo/summary
Une liste exhaustive de tous les fichiers a été crée et enregistrée
dans /root/postinfo/snapshot.gz
EOF

ls -l /root/postinfo/snapshot.gz >> /root/postinfo/summary

# Faisons le point à la fin de cette étape

echo
echo "Contenu du répertoire /root/postinfo à la fin de cette étape"

ls -l /root/postinfo

echo "Fin de l'"### ÉTAPE 1 ###"
echo
#
#

echo
echo "### ÉTAPE 2 ### Informations sur le système"

cat << EOF >> /root/postinfo/summary

### ÉTAPE 2 ### Informations sur le système

EOF

echo "Récolte des informations sur le système"

echo "... sur la mémoire"
echo "---- cat /proc/meminfo ---------" >> /root/postinfo/summary
cat /proc/meminfo >> /root/postinfo/summary

echo "... sur les partitions et les points de montage"
echo "---- cat /proc/partitions ------" >> /root/postinfo/summary
cat /proc/partitions >> /root/postinfo/summary

echo "... sur l'espace disque utilisé"
echo "---- df ------------------------" >> /root/postinfo/summary
df >> /root/postinfo/summary

echo "... sur les modules"
echo "---- cat /proc/modules ---------" >> /root/postinfo/summary
cat /proc/modules >> /root/postinfo/summary

# Faisons le point à la fin de cette étape

echo
echo "Contenu du répertoire /root/postinfo à la fin de l'ÉTAPE 2"
ls -AlR /root/postinfo
echo "Fin de l'"### ÉTAPE 2 ###"
echo
#
#
cat << EOF

### ÉTAPE 3 ### Maintenant nous copions quelques fichiers
                importants du répertoire « /etc ».

Cette section pourrait avoir besoin d'être adaptée à vos besoins.
Cela dépend de l'installation que vous avez faite, de la distribution
que vous avez utilisé et des options que vous avez choisies durant 
l'installation.
EOF

cat << EOF >> /root/postinfo/summary

### ÉTAPE 3 ### Maintenant nous sauvegardons quelques fichiers
                importants du répertoire /etc
EOF

test ! -d /root/postinfo/etcfiles \
    && mkdir /root/postinfo/etcfiles

echo "... sauvegarde de XF86Config -- \
votre fichier de configuration de XWindows"

cp /etc/XF86Config /root/postinfo/etcfiles

echo "copie /etc/XF86Config dans /root/postinfo/" \
    >> /root/postinfo/summary

echo "... sauvegarde du fichier /etc/fstab"
cp /etc/fstab  /root/postinfo/etcfiles
echo "copie /etc/fstab dans /root/postinfo/" \
    >> /root/postinfo/summary

echo "... sauvegarde du fichier /etc/profile"
cp /etc/profile  /root/postinfo/etcfiles
echo "copie /etc/profile dans /root/postinfo/" \
    >> /root/postinfo/summary

echo "... sauvegarde du fichier /etc/profile.local"
cp /etc/profile.local  /root/postinfo/etcfiles
echo "copie /etc/profile.local dans /root/postinfo/" >> /root/postinfo/summary

echo "... sauvegarde des fichiers /etc/*conf"
cp /etc/*conf /root/postinfo/etcfiles

echo "... sauvegarde des fichiers /etc/*config"
cp /etc/*config /root/postinfo/etcfiles

cat << EOF >> /root/postinfo/summary
Les fichiers suivants ont été copiés de /etc vers /root/postinfo/etcfiles
EOF

echo "/etc/*conf" >> /root/postinfo/summary
echo "/etc/*config" >> /root/postinfo/summary

# Faisons le point à la fin de cette étape

echo
echo "Contenu de /root/postinfo à la fin de l'ÉTAPE 3"

ls -AlR /root/postinfo

echo "Fin de l'"### ÉTAPE 3 ###"
echo
#
#

cat << EOF

### ÉTAPE 4 ### Maintenant nous sauvegardons d'autres fichiers importants

Cette section à besoin d'être personnalisée selon
l'installation que vous avez faite, la distribution utilisée
et les options choisies durant l'installation
Cette partie du script a été personnalisée pour SuSe 7.1
EOF

cat << EOF >> /root/postinfo/summary

### ÉTAPE 4 ### Maintenant nous copions quelques autres
                fichiers importants
                
dans /root/postinfo/otherfiles
Vous pouvez ajouter d'autres fichiers à copier à cette étape
EOF

test ! -d /root/postinfo/otherfiles \
    && mkdir /root/postinfo/otherfiles

ls -l /root/postinfo/

echo "... sauvegarde de /etc/init.d/boot.local --"
cp /etc/init.d/boot.local /root/postinfo/otherfiles
echo "copie de /etc/init.d/boot.local dans \
/root/postinfo/otherfiles" >> /root/postinfo/summary

echo "... sauvegarde de /etc/init.d/halt.local --"
cp /etc/init.d/halt.local /root/postinfo/otherfiles
echo "copie de /etc/init.d/halt.local vers \
/root/postinfo/otherfiles" >> /root/postinfo/summary

# faisons le point à la fin de cette étape

echo
echo "Contenu de /root/postinfo à la fin de l'ÉTAPE 4"

ls -AlR /root/postinfo

echo "Fin de l'"### ÉTAPE 4 ###"
echo

echo
echo "### ÉTAPE 999 ### Emballage, nettoyage"

cat << EOF >> /root/postinfo/summary

### ÉTAPE 999 ### Emballage, nettoyage, bilan
EOF

echo "résumé, nettoyage"

# Pour des raisons de sécurité nous rendons /root/postinfo
# inaccessible et invisible aux non-root

chmod 700 /root/postinfo
chmod 700 /root/postinfo/etcfiles
chmod 700 /root/postinfo/otherfiles
chmod 700 /root/postinfo/*
chmod 700 /root/postinfo/etcfiles/*
chmod 700 /root/postinfo/otherfiles/*

echo "Ceci est le contenu de /root/postinfo" >> /root/postinfo/summary
ls -AlR /root/postinfo >> /root/postinfo/summary
echo "###### FIN #####" >> /root/postinfo/summary

# faisons le point à la fin de cette étape

echo
echo "Contenu de of /root/postinfo à la fin de l'ÉTAPE 999"
ls -AlR /root/postinfo

cat << EOF
Fin de l\'### ÉTAPE 999 ###

###### THE END #####

IMPORTANT : Vous devez maintenant copier tous les fichiers
de /root/postinfo dans un endroit sûr, de préférence sur un disque
différent ou sur un support de sauvegarde extractible.

Vous trouverez un rapport de synthèse de cette procédure dans
/root/postinfo/summary

Vous trouverez la précedente version de ce rapport (s'il y en a une)
dans /root/postinfo/oldpostinfo.tar.gz
EOF

#---------------------------------------------------------
#        AVERTISSEMENT AVERTISSEMENT AVERTISSEMENT 
#                shivalik (ver. 1.0)
#
# Ce script est mis à votre disposition sans aucune
# garantie ou assurance de performance ou de sa capacité
# à remplir une tâche quelconque.
#
# Sachez que vous utilisez ce script de par votre propre volonté et 
# votre propre initiative et à vos risques et perils.
#
# Vous trouverez la dernière version de ce script, et des informations
# liées à ce script sur : http://algolog.tripod.com/postlnx.htm
#
# Le copyright et tous autres droits sont réservés par
# le Dr. S. Parthasarathy (algolog CHEZ hd1 POINT vsnl POINT net POINT in)
#--------------------------------------------------------

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:23