28.02.2013 Views

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 ...

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!