Bon,
ça avance, c'est laborieux mais on va finir par y arriver. Un pas en avant deux en arrière.
Dans une version plus simple de ce même script ci-dessous, la partie SFTP et expect fonctionnait. Mais toute la partie d'analyse avant, non. Maintenant c'est le contraire. La partie d'analyse et praparatoire fonctionne mais plus la partie SFTP/expect.
Je ne sais pas le biais que j'ai introduit dans la partie préparatoire qui fait que ça ne fonctionne plus a partir de la ligne 48.
Je me prends un message d'erreur :
Pouvez vous me filer de nouveau un coup de main messieurs ? Voici mon code./test5.ksh[38]: syntax error at line 49 : `<' unmatched
Moi je dis pas, mais pour vous ça vous paraitra simple comme script mais pour un mec qui n'a presque jamais touché à du shell avant, je trouve ca pas mal. Suis pas peu fier.
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80 #!/bin/ksh echo "\n" echo "\n" echo "*************************************************************************" echo "* Bienvenu dans le script de lancement des cubes *" echo "*************************************************************************" echo "\n" echo "Sélectionnez le ou les cube(s) que vous souhaitez lancer séparé(s) par des ESPACES" echo "Pour AAAAF tapez F," echo "Pour AAAAE tapez E," echo "Pour AAAAM tapez M," echo "Pour AAAAQ tapez Q," echo "Tous les cubes tapez *," echo "Une selection de cubes tapez les lettres correspondant de chaque cube" echo "C'est à vous :" read RESP set -A cube $RESP #toute valeur assignée à la variable i est mise en majuscule typeset -u i #Si la personne veut alimenter tous les cubes en une fois #changement de l'assignation de l'utilisateur par les #suffixes des cubes pour pouvoir boucler dessus if [ ${cube[0]} == * ]; then echo "Vous voulez lancer tous les cubes ?" echo "Confirmez y/n ? :" read RESP_CONF if [ "$RESP_CONF" = "y" ]||[ "$RESP_CONF" = "Y" ]; then set -A cube F E M Q #echo "${cube[*]}" else echo "Veuillez relancer le script" exit; fi fi ##Test si rien n'est renseigné par l'utilisateur RET_cube=${#cube[*]} if [ $RET_cube == 0 ]; then echo "!!!!!! Veuillez selectionner au moins un cube !!!!!!!\n" exit; else for i in ${cube[@]} do case "$i" in "F"|"E"|"M"|"Q") cd /home/ess_tms/temp/AAAA$i #Début du script SFTP sous expect /usr/bin/expect <<'EOF' set timeout 5 set USER user set PASS datastage set HOST mon_host #positionnement dans le répertoire source du serveur Informatica où les fichiers sont présents set INF_PATH_OUT /sldbfil2/data/mutualise/out/tms/TgtFiles spawn sftp $USER@$HOST expect password: send "$PASS\r" expect sftp> #Positionnement dans le dossier où le fichiers doivent être déposés par le STFP et à partir duquel le .ksh doit être exéxuté send "cd $INF_PATH_OUT/AAAA$i\r" expect sftp> send "get *.txt\r" expect sftp> send "exit\r" EOF rm -f /home/ess_tms/temp/AAAA$i/*.gz mv /home/ess_tms/temp/AAAA$i/TMSMDAI.txt /home/ess_tms/temp/AAAA$i/DB_IND.txt ;; #etc... avec plein d'autres fichiers #touch creation_ok_$i.txt ;; *) echo "VA CHIER" ;; esac done fi exit;![]()
J'ai bien le doirt de m'envoyer des fleurs, non ?![]()
Partager