En plus, après ca, je vais devoir intégrer l'option de la récurcivité dans une question, avec un pipe je pense.
En plus, après ca, je vais devoir intégrer l'option de la récurcivité dans une question, avec un pipe je pense.
Dans la boucle, rajoute un petit :Envoyé par paco69histoire de suivre se qui devrait se passer
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo $rsync $OPTIONS $dest
La FAQ Perl est par ici
: La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !
Normal que ca ne marche pas, j'ai pas mis de source
Dansil ne va pas chercher les chemin sources.
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo $rsync $OPTIONS $dest
Dans le man:
Code : Sélectionner tout - Visualiser dans une fenêtre à part rsync [OPTION]... SRC [SRC]... DEST
J'ai séparé les chemins, pour les mettres dans un fichier seul et non plus à la fin du fichier de conf.
Est-ce que je dois rajouter des options ou autres à awk, ou est-ce la bonne syntaxe?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 for i in $(awk ~/rsync/backup_src); do $rsync $OPTIONS $i $dest done
Pourtant ca ne devrai pas etre difficil de traiter chaque ligne pour le meme programme (en l'occurence, ici rsync).
Merci pour toutes vos aides.
Soit ...Envoyé par paco69
Ce n'est pas difficile. Si ton fichier est à présent séparé, s'il ne contient que des chemins, s'il n'y en a qu'un par ligne, un simple traitement comme ceci suffit :Envoyé par paco69Il vaut mieux réserver awk, dont la syntaxe n'est pas forcément naturelle, pour des traitements plus complexes où il peut donner toute la mesure de sa puissance .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 for i in $(cat ~/rsync/backup_src); do $rsync $OPTIONS $i $dest done
La FAQ Perl est par ici
: La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !
Le fichier "backup_src" remplit toutes tes conditions:Encore un message d'erreur:Si ton fichier est à présent séparé, s'il ne contient que des chemins, s'il n'y en a qu'un par ligneLa 'line 8' concerne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Starting RSYNC... /root/rsync/start: line 8: /home/paco/backup/: is a directory /root/rsync/start: line 8: /home/paco/rsync/: is a directory /root/rsync/start: line 8: /home/paco/centos/: is a directory /root/rsync/start: line 8: /home/paco/test/: is a directory /root/rsync/start: line 8: /home/paco/test1/: is a directory RSYNC finished.Je pense qu'il faut regarder ds les options, enfin, je pense.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $rsync $OPTIONS $i $dest
Certainement L'option -r est même probablement celle qui t'intéresse.Envoyé par paco69
La FAQ Perl est par ici
: La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !
On m'a demandé de mettre cette option dans une question, genre dans un pipe.
Mais je viens d'essayer avec l'option, et idem, meme message d'erreur.
Je ne vois pas ce qu'un pipe peut apporter, notamment vis à vis d'une éventuelle question ...Envoyé par paco69
Passons, on réglera ça plus tard.
Si l'on veut arrêter de jouer aux devinettes, il va falloir nous en dire un peu plusEnvoyé par paco69
Peux tu nous mettre unjuste après ta ligne 8, et nous en copier le résultat, que l'on voie ce qui est effectivement lancé et avec quelles options ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo $rsync $OPTIONS $i $dest
La FAQ Perl est par ici
: La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !
Voilà le résultat:Dans mon fichier de conf, j'ai comme options:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Starting RSYNC... /root/rsync/start: line 8: /home/paco/test: is a directory /home/paco/test /root/rsync/start: line 8: /home/paco/test1: is a directory /home/paco/test1 RSYNC finished.Si, dans mon fichier 'backup_src', je rajoute *, par ex: /home/paco/test/* à la place de /home/paco/test, voila ce que cela me donne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 # options de rsync export OPTIONS="-v --archive --compress --force --backup --backup-dir=$dest/'hostname'-$INCREMENTDIR"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Starting RSYNC... /root/rsync/start: line 8: /home/paco/test/rhel-rg-en.pdf: Permission non accordée /home/paco/test/rhel-rg-en.pdf /root/rsync/start: line 8: /home/paco/test/rhel-sag-en.pdf: Permission non accordée /home/paco/test/rhel-sag-en.pdf /root/rsync/start: line 8: /home/paco/test1/bash-3.1: is a directory /home/paco/test1/bash-3.1 RSYNC finished.
A l'évidence, tes variables d'environnement $rsync et tout le toutim ne sont pas correctement renseignées.
Les valeurs issues de ton fichier de conf ne sont pas prises en compte, soit parceque celui-ci n'a pas été "sourcé" (exécuté depuis le script), soit car ta méthode de récupération des valeurs n'est pas bonne.
Il semble qu'une seule variable soit correctement récupérée : celle qui vient de ta liste de chemins. Ce n'est pas suffisant comme commande et l'interpréteur se plaint que c'est un répertoire, pas une commande.
Pour en être sûr, tu peux transformer ton echo ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo rsync=[$rsync] OPTIONS=[$OPTIONS] i=[$i] dest=[$dest]
La FAQ Perl est par ici
: La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !
Bien joué, voilà ce que ca me retourne:T'avais vu juste, seul la variable du chemin est pris en compte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Starting RSYNC... rsync=[] OPTIONS=[] i=[/home/paco/test/rhel-rg-en.pdf] dest=[] rsync=[] OPTIONS=[] i=[/home/paco/test/rhel-sag-en.pdf] dest=[] rsync=[] OPTIONS=[] i=[/home/paco/test1/bash-3.1] dest=[] RSYNC finished.
Comment est fait le chargement de la conf ?Envoyé par paco69
Le mieux, si ton fichier de conf est un shell tout ce qu'il y a de plus classique (instructions shell et commentaires, commençant par un shebang), c'est de faire undans ton script principal pour le charger.
Code : Sélectionner tout - Visualiser dans une fenêtre à part . mon_fichier_de_conf
La FAQ Perl est par ici
: La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !
En gros, y'a un soucis soit dans le fichier de conf avec 'export' soit dans le fichier...ah bah tiens, une question: dans quel fichier je dois mettre 'export PATH=$PATH:~/rsync'? dans .bashrc ou .bash_profile?
Ce n'est pas un script, c'est juste un fichier nommé 'backup.conf'. Il se trouve au début du topic.
Je voulais juste mettre les variables du fichier de conf en variables globales, avec l'export.
Justement, fais en sorte que ton fichier de conf soit comme un script (shebang, droits d'exécution) et dans ton script principal, tu n'as qu'à faireEnvoyé par paco69pour que ses variables soient prises en compte dans le script.
Code : Sélectionner tout - Visualiser dans une fenêtre à part . mon_fichier_de_conf
La FAQ Perl est par ici
: La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !
Merci bien, y'a deja du mieux:Mais mon dossier 'archive' ne contient rien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Starting RSYNC... rsync=[/usr/bin/rsync] OPTIONS=[-r -v --archive --compress --force --backup-dir=/home/paco/archive/'hostname'-2006-mar-11-jui] i=[/home/paco/test/rhel-rg-en.pdf] dest=[/home/paco/archive] rsync=[/usr/bin/rsync] OPTIONS=[-r -v --archive --compress --force --backup-dir=/home/paco/archive/'hostname'-2006-mar-11-jui] i=[/home/paco/test/rhel-sag-en.pdf] dest=[/home/paco/archive] rsync=[/usr/bin/rsync] OPTIONS=[-r -v --archive --compress --force --backup-dir=/home/paco/archive/'hostname'-2006-mar-11-jui] i=[/home/paco/test1/bash-3.1] dest=[/home/paco/archive] RSYNC finished.
Il faut bien évidemment mettre en commentaireet décommenter
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo rsync=[$rsync] OPTIONS=[$OPTIONS] i=[$i] dest=[$dest]et là, ca marche très bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $rsync $OPTIONS $i $dest
Merci beaucoup.
Je dois faire la gestion d'erreurs dans ce meme script 'start' et le montage/démontage avec smbfs.
Dois-je créer un nouveau topic?
Pour la récurcivité, je ne vois pas bien l'interet d'en faire une question. Je verrai si c'est vraiment utile.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager