OVH Cloud OVH Cloud

Pbl de script

6 réponses
Avatar
Cédric LE BRIS
Je cherche =E0 cr=E9er un script qui fait sauvegarde mon repertoire /etc

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

#! /bin/sh


tar cfz /tmp/bck/bck_etc_mx.tgz /etc/
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D


Par contre j'aimerais qu'il cr=E9e un r=E9pertoire dans /tmp
un repertoire nomm=E9 bck, mais qu'il ne le cr=E9e QUE si il n'existe =
pas...pour =E9viter les plantage
Qq =E0 une solution pour ce genre de petit test??

Je suis un peu perdu avec les scripts Shell...


merci

6 réponses

Avatar
Xavier Oswald
On 15:15 Wed 17 May , Cédric LE BRIS wrote:
Je cherche à créer un script qui fait sauvegarde mon repertoire /etc

============================================ >
#! /bin/sh


tar cfz /tmp/bck/bck_etc_mx.tgz /etc/
============================================== >

Par contre j'aimerais qu'il crée un répertoire dans /tmp



Ben tu fais une copie avec cp :)

un repertoire nommé bck, mais qu'il ne le crée QUE si il n'existe pas...pour éviter les plantage
Qq à une solution pour ce genre de petit test??



Pour tester si un fichier existe :

if [ -f monfichier ]

fi

-r file Check if file is readable.
-w file Check if file is writable.
-x file Check if we have execute access to file.
-f file Check if file is an ordinary file (as opposed to a directory, a
device special file, etc.)
-s file Check if file has size greater than 0.
-d file Check if file is a directory.
-e file Check if file exists. Is true even if file is a directory.



Amicalement,
--
========================================================== ,''`. Xavier Oswald
: :' : GNU/LINUX Debian & Debian-Edu Contributor
`. `' GnuPG Key ID 0x88BBB51E
`- 938D D715 6915 8860 9679 4A0C A430 C6AA 88BB B51E
==========================================================

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Jacques L'helgoualc'h
Cédric LE BRIS a écrit, mercredi 17 mai 2006, à 15:15 :
Je cherche à créer un script qui fait sauvegarde mon repertoire /etc

============================================ >
#! /bin/sh


tar cfz /tmp/bck/bck_etc_mx.tgz /etc/
============================================== >

Par contre j'aimerais qu'il crée un répertoire dans /tmp un repertoire
nommé bck, mais qu'il ne le crée QUE si il n'existe pas...pour éviter
les plantage Qq à une solution pour ce genre de petit test??



TMPDIR=/tmp/bck

if [ ! -d "$TMPDIR" ]
mkdir "$TMPDIR"
fi

Bon, il faudrait aussi tester si ça existe sans être un répertoire.

Je suis un peu perdu avec les scripts Shell...



Ben, ce ne sont pas les howtos qui manquent ? Il y a aussi l'advanced
bash scripting guide (traduit sur http://abs.traduc.org/), etc.

Voir aussi des exemples dans /etc :)

merci



de rien,
--
Jacques L'helgoualc'h


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Jacques L'helgoualc'h
Jacques L'helgoualc'h a écrit, mercredi 17 mai 2006, à 21:37 :
[...]
TMPDIR=/tmp/bck

if [ ! -d "$TMPDIR" ]
mkdir "$TMPDIR"
fi



Aaargh,

if [ ! -d "$TMPDIR" ]; then
mkdir "$TMPDIR"
fi

--
Jacques L'helgoualc'h


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Cyril Mougel
Cédric LE BRIS wrote:
Je cherche à créer un script qui fait sauvegarde mon repertoire /etc

============================================ >
#! /bin/sh


tar cfz /tmp/bck/bck_etc_mx.tgz /etc/
============================================== >

Par contre j'aimerais qu'il crée un répertoire dans /tmp
un repertoire nommé bck, mais qu'il ne le crée QUE si il n'existe pas...pour éviter les plantage
Qq à une solution pour ce genre de petit test??

Je suis un peu perdu avec les scripts Shell...



Voici un exemple qui marche :

#! /bin/bash

if [ -e "/tmp/test" ]
then
echo 'oui'
fi
echo 'non'

Ainsi pour tester :
Sextans-22:43:14:/tmp$ ls tes*
test.sh
Sextans-22:43:19:/tmp$ ./test.sh
nonSextans-22:43:36:/tmp$ mkdir test
Sextans-22:43:48:/tmp$ ./test.sh
oui
non

Sinon, cf :
man [
man if

Bonne chance

--
Cyril Mougel


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Christophe Diaz
Cédric LE BRIS a écrit :
Je cherche à créer un script qui fait sauvegarde mon repertoire /et c

======================== =====================

#! /bin/sh


tar cfz /tmp/bck/bck_etc_mx.tgz /etc/
======================== =======================


Par contre j'aimerais qu'il crée un répertoire dans /tmp
un repertoire nommé bck, mais qu'il ne le crée QUE si il n'existe pas...pour éviter les plantage
Qq à une solution pour ce genre de petit test??

Je suis un peu perdu avec les scripts Shell...


merci





Bonjour,

A priori ceci devrait marcher:

if [ ! -d /chemin/vers/mon/repertoire/ ] ;
then
mkdir /chemin/vers/mon/repertoire/

fi



Bon amusement
Christophe
Avatar
Frédéric Bothamy
* Cédric LE BRIS [2006-05-17 15:15] :

[...]

Par contre j'aimerais qu'il crée un répertoire dans /tmp
un repertoire nommé bck, mais qu'il ne le crée QUE si il n'existe pas...pour éviter les plantage
Qq à une solution pour ce genre de petit test??



Plus simple qu'un test :

mkdir -p /tmp/bck


Fred

--
Comment poser les questions intelligemment
http://www.gnurou.org/Writing/SmartQuestionsFr
Comment signaler efficacement un bogue
http://www.chiark.greenend.org.uk/~sgtatham/bugs-fr.html


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact