Bonjour,

je suis pas un tueur en shell MAIS j'ai trouvé ce petit script qui me permet d'automatiser dans un ksh une connection sftp pour migrer des fichiers sur ma becane UNIX.

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
22
23
24
25
#!/usr/bin/expect
cd /home/ess_tms/temp/JTMSF/
set timeout -1    
 
set USER user
set PASS etl
set HOST mon_serveur
set INF_PATH_OUT /toto/data/mutualise/out/tms/temp_files/
 
spawn sftp $USER@$HOST
 
expect password:
send "$PASS\r"
 
expect sftp>
send "cd $INF_PATH_OUT/JTMSF\r" 
 
expect sftp>
send "get *.txt\r"
 
expect sftp>
send "exit\r"
 
rm -f /home/rep/temp/JTMSF/*.gz
mv /home/rep/temp/JTMSF/toto.txt /home/rep/temp/JTMSF/titi.txt
Jusqu'a la ligne 22 tout va bien, il me fait ma copie des fichiers, mais l'exécution des lignes 24 et 25 plante et me donne ce message d'erreur :
sftp> invalid command name "rm"
while executing
"rm -f /home/ess_tms/temp/JTMSF/*.gz"
(file "./test2.ksh" line 24)
Je pense que malgré le "exit\r" en ligne 22, je suis toujours sous une session sftp et refuse donc de me lancer mes commandes shell.

Est-ce que quelqu'un a une idée pour m'aider ?

Merci d'avance.