En plus, après ca, je vais devoir intégrer l'option de la récurcivité dans une question, avec un pipe je pense.
Version imprimable
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 :Citation:
Envoyé par paco69
histoire de suivre se qui devrait se passer ;)Code:echo $rsync $OPTIONS $dest
Normal que ca ne marche pas, j'ai pas mis de source
Dansil ne va pas chercher les chemin sources.Code:echo $rsync $OPTIONS $dest
Dans le man:Code: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:
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 ...Citation:
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 :Citation:
Envoyé par paco69
Il 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:
1
2
3 for i in $(cat ~/rsync/backup_src); do $rsync $OPTIONS $i $dest done
Le fichier "backup_src" remplit toutes tes conditions:Encore un message d'erreur:Citation:
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
La 'line 8' concerneCode:
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:$rsync $OPTIONS $i $dest
Certainement ;) L'option -r est même probablement celle qui t'intéresse.Citation:
Envoyé par paco69
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 ... :roll:Citation:
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 plus ;)Citation:
Envoyé 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:echo $rsync $OPTIONS $i $dest
Voilà le résultat:Dans mon fichier de conf, j'ai comme options:Code:
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:
1
2 # options de rsync export OPTIONS="-v --archive --compress --force --backup --backup-dir=$dest/'hostname'-$INCREMENTDIR"
Code:
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:echo rsync=[$rsync] OPTIONS=[$OPTIONS] i=[$i] dest=[$dest]
Bien joué, voilà ce que ca me retourne:T'avais vu juste, seul la variable du chemin est pris en compte.Code:
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 ?Citation:
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:. mon_fichier_de_conf
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'à faireCitation:
Envoyé par paco69
pour que ses variables soient prises en compte dans le script.Code:. mon_fichier_de_conf
Merci bien, y'a deja du mieux:Mais mon dossier 'archive' ne contient rien.Code:
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écommenterCode:echo rsync=[$rsync] OPTIONS=[$OPTIONS] i=[$i] dest=[$dest]
et là, ca marche très bien.Code:$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.