Bonjour à tous avant de poster ce problème j'ai cherché la réponse à mon problème par tout sur le forum et ailleurs sur internet sans succès.
Voilà mon problème.
Je voudrait savoir s'il est possible de faire marcher un script shell avec des commandes sftp et la fonction while IFS:read .... done <$1
Le but est de se servir d'un fichier script qui lance les commandes grâce a des variables contenues dans un fichier de configuration.
=> Exemple du fichier script "dump_database.sh":
=> Fichier de configuration "db_list.txt":
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 # !/bin/bash DAY=$(date +"%Y-%m-%d") touch --date "$DAY" /root/file while IFS=: read NOM_CLIENT PATH_LOCAL RACINE_FICHIER_LOCAL SERVEUR_DEPOT PATH_DISTANT do # Accès par SFTP et purge ancien fichier de sauvegarde sur serveur sftp $NOM_CLIENT@$SERVEUR_DEPOT <<EOF pwd "cd /$PATH_DISTANT && rm $RACINE_FICHIER_LOCAL*" # Sélection fichier le plus récent de sauvegarde et envoi sur serveur NOM_LAST_FICH=`find $PATH_LOCAL$RACINE_FICHIER_LOCAL* -type f -newer /root/file` put $NOM_LAST_FICH quit EOF done < $1
=> Commande à lancer pour faire marcher le tout: sh dump_database.sh db_list.txt.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 dupont:/home/postgres/:dupont_dump-:serveur-dump.societe.com:database laurent:/home/postgres/:laurent_dump-:serveur-dump.societe.com:database
De cette façon le script va se répéter autan de fois que lignes il y a dans mon fichier de configuration. De mon coté j'ai essayé de le faire marcher mais dès que j'invoque les commandes SFTP le shell me retourne une erreur:
Petite précision, lorsque j'utilise le même script et fichier de configuration avec une commande SCP (et partage des clés RSA) à la place des commandes SFTP ça marche sans problème. Si je m'entête à vouloir le faire passer par SFTP c'est parce qu'il m'a été demandé obligatoirement pour mesure de sécurité.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 dump_database.sh: 11: dump_database.sh: cd /database && rm dupont_dump-*: not found
Partager