Guide Bash du débutant - Index général des HOWTOs et mini ...
Guide Bash du débutant - Index général des HOWTOs et mini ...
Guide Bash du débutant - Index général des HOWTOs et mini ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
# Avant supprimer l'ancien fichier bzip2. Redirige les erreurs parce que ceci en génère quand l'archive<br />
# n'existe pas. Puis crée un nouveau fichier compressé.<br />
rm /var/tmp/home_franky.tar.bz2 2> /dev/null<br />
bzip2 /var/tmp/home_franky.tar<br />
# Copie le fichier vers un autre hôte - nous avons une clé ssh pour effectuer ce travail sans intervention.<br />
scp /var/tmp/home_franky.tar.bz2 bordeaux:/opt/backup/franky > /dev/null 2>&1<br />
# Crée un marqueur temporel dans un fichier journal..<br />
date > /home/franky/log/home_backup.log<br />
echo backup succeeded > /home/franky/log/home_backup.log<br />
Avant tout, vous avez plus tendance à faire <strong>des</strong> erreurs si vous saisissez au clavier les noms de fichiers<br />
<strong>et</strong> de répertoires chaque fois que nécessaire. De plus supposez que franky veuille donner ce script à<br />
carol, alors carol aura à faire <strong>des</strong> modifications par l'éditeur avant de pouvoir sauvegarder son<br />
répertoire. De même si franky veut se servir <strong>du</strong> script pour sauvegarder d'autres répertoires. Pour une<br />
réutilisation aisée, transformer tous les fichiers, répertoires, nom d'utilisateur, nom d'hôte, <strong>et</strong>c. en<br />
variables. Ainsi, vous n'avez besoin que de modifier la variable une fois, <strong>et</strong> non pas de modifier<br />
chaque occurrence de la chaîne correspondante tout au long <strong>du</strong> script. Voici un exemple :<br />
#!/bin/bash<br />
# Ce script fait une sauvegarde de mon répertoire racine.<br />
# Modifier les valeurs <strong>des</strong> variables pour que le script tourne pour vous :<br />
BACKUPDIR=/home<br />
BACKUPFILES=franky<br />
TARFILE=/var/tmp/home_franky.tar<br />
BZIPFILE=/var/tmp/home_franky.tar.bz2<br />
SERVER=bordeaux<br />
REMOTEDIR=/opt/backup/franky<br />
LOGFILE=/home/franky/log/home_backup.log<br />
cd $BACKUPDIR<br />
# Ceci crée le fichier d'archive<br />
tar cf $TARFILE $BACKUPFILES > /dev/null 2>&1<br />
# D'abord supprimer l'ancien fichier bzip2. Redirige les erreurs parce que ceci en génère quand l'archive<br />
# n'existe pas. Puis crée un nouveau fichier compressé.<br />
rm $BZIPFILE 2> /dev/null<br />
bzip2 $TARFILE<br />
# Copie le fichier vers un autre hôte - nous avons une clé ssh pour effectuer ce travail sans intervention.<br />
scp $BZIPFILE $SERVER:$REMOTEDIR > /dev/null 2>&1<br />
# Crée un marqueur temporel dans un fichier journal..<br />
date > $LOGFILE<br />
echo backup succeeded > $LOGFILE<br />
Répertoires volumineux <strong>et</strong> faible bande passante<br />
Tout le monde peut comprendre l'exemple ci-<strong>des</strong>sus, en utilisant un<br />
répertoire ré<strong>du</strong>it <strong>et</strong> un hôte de son sous-réseau. En fonction de votre<br />
bande passante, de la taille <strong>du</strong> répertoire <strong>et</strong> de l'endroit <strong>du</strong> serveur<br />
distant, cela peut prendre un temps terriblement long de faire la<br />
sauvegarde. Pour les répertoires les plus volumineux <strong>et</strong> une bande<br />
passante faible, employez rsync pour garder les répertoires<br />
synchronisés entre les 2 machines.<br />
3. Echappement <strong>et</strong> protection de caractères<br />
3.1. Pourquoi protéger ou 'échapper' un caractère ?<br />
Certaines touches(NdT : séquence de caractères) ont un sens spécial dans un certain contexte. La<br />
protection - ou encore citation - est utilisée pour s'échapper <strong>du</strong> sens spécial de ces caractères ou mots :<br />
en d'autres termes l'échappement peut désactiver le comportement spécial de ces caractères, il peut<br />
empêcher les mots réservés d'être reconnus comme tel <strong>et</strong> il peut désactiver l'expansion de<br />
paramètres.