La commande ifexist

cortx

Expert
Voila je viens de creer un petit script de sauvegarde de mes fichiers de conf et j'aimerai un peu plus le developper afin de ne pas avoir de message d'erreur meme si le script marche bien.

voila mon script:

--------------------------

#! /bin/sh

# Mise en place des variables.
variable1=/mnt/win-d/Linux/sauvegarde/sav/etc/samba
variable2=/mnt/win-d/Linux/sauvegarde/sav/etc/httpd/conf
variable3=/mnt/win-d/Linux/sauvegarde/sav/etc/
echo "Variables [OK]"

#Creation Backup
mkdir /mnt/win-d/Linux/sauvegarde/sav-old
rm -r /mnt/win-d/Linux/sauvegarde/sav-old
mkdir /mnt/win-d/Linux/sauvegarde/sav
mkdir /mnt/win-d/Linux/sauvegarde/sav-old
cp -bR /mnt/win-d/Linux/sauvegarde/sav/* /mnt/win-d/Linux/sauvegarde/sav-old
echo "Backup [OK]"

#Suppression des anciens fichiers
rm -r /mnt/win-d/Linux/sauvegarde/sav
echo "Ancien Backup [OK]"

#Creation de l'arborescence.
mkdir /mnt/win-d/Linux/sauvegarde/sav
mkdir /mnt/win-d/Linux/sauvegarde/sav/etc
mkdir /mnt/win-d/Linux/sauvegarde/sav/etc/samba
mkdir /mnt/win-d/Linux/sauvegarde/sav/etc/httpd
mkdir /mnt/win-d/Linux/sauvegarde/sav/etc/httpd/conf
echo "Dossiers crees"

#Copie des fichiers de configuration
cp /etc/samba/smb.conf $variable1
cp /etc/httpd/conf/httpd.conf $variable2
cp /etc/proftpd.conf $variable3
echo "Fichiers sauvegardes"

--------------------------

J'aimerai utiliser une commande dans le genre de ifexist afin que les dossier creer lors du "#Creation Backup" soit: (sav et sav-old)
ne m'indique pas une erreur lorsque je lance le script alors que les dossier sont deja creer.
Et donc par la meme alleger le script.

Je penssai a un truc du genre ifexist nomdudossier alors ne pas le creer et passez a l'etape suivante.
Il me faudrai donc alors creer des systeme d'etape genre goto sous dos masi je ne sait pas si c'ets le meme genre sous linux.

Je suis novice cepandant en script et donc j'utilise des commandes simples et comprehensible par moi.
SVP: evitez de me sortir des comamndes de script du fin fond de l'espace auquel je ne comprend pas grand chose ou bien expliquez les moi en meme temps, histoire de faire une pierre deux coups :p

Je vous remercie pour toutes l'aide que vous pourriez m'apportez.
 

cortx

Expert
justement je l'ai lu ce tuto masi je n'ai absolument rien compit.
il me parle then etc, je debute et rien que ca ca me pete le cervo.

la solution etait mkdir -p et comem cela ca ne prend pas en compte l'erreur.
 

Deather2

Grand Maître
Code:
if [ ! -d /le/repertoire ] ; then mkdir /le/repertoire ; fi

-d test si le répertoire existe, ensuite on inverse le résultat obtenu, et on fais notre mkdir si le dossier n'existe pas.
 

Deather2

Grand Maître
Pour ta culture perso, mkdir -p permet de créer plusieurs dossier d'un coup, par exemple:
mkdir /prout/haha
si /prout n'existe pas, il fera une erreur
mkdir -p /prout/haha
si /prout n'existe pas, il le créera, puis créera haha dedans ;)
 

cortx

Expert
oki ouai donc avec -p on peut creer toute une arborescence d'un seul coup.

Je peux donc remplacer:
#Creation de l'arborescence.
mkdir /mnt/win-d/Linux/sauvegarde/sav
mkdir /mnt/win-d/Linux/sauvegarde/sav/etc
mkdir /mnt/win-d/Linux/sauvegarde/sav/etc/samba
mkdir /mnt/win-d/Linux/sauvegarde/sav/etc/httpd
mkdir /mnt/win-d/Linux/sauvegarde/sav/etc/httpd/conf
par:
mkdir -p /mnt/win-d/Linux/sauvegarde/sav/etc/httpd/conf
mkdir -p /mnt/win-d/Linux/sauvegarde/sav/etc/samba

Ok merci a vous je vais continuer a bosser cela.
 

Deather2

Grand Maître
Tout à fais :)
En ce qui concerne le test avec -d, sache que tu peux tester si un fichier est executable avec -x, si un fichier existe avec -f je crois, et sûrement d'autres.
Consulte le man page de bash [:grut] (bon courage et bonne migraine :D)
 

cortx

Expert
ouai j'ai commencer, rien qu'au nb de ligne je vais passer am journee de demain a essayer d'assimiler une partie.

merci pour le coup de pouce.
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 128
Messages
6 717 829
Membres
1 586 367
Dernier membre
ramkin
Partager cette page
Haut