#1 Le 21/11/2024, à 14:21
- PoiroOnLinux
[RESOLU] script et sftp : reécupérer les retours consoles
Bonjour a tous
J'essaie depuis quelques jours de faire un petit script pour automatiser le téléchargement des bdd et fichier sur des serveurs mutualisés.
Ces serveurs ne permette pas d'accès SSH donc pas de rediff ou de rsync possible mais uniquement des commandes SFTP.
le souci que j'ai est le suivant : j'arrive logger les differentes actions de mon script ( crea et controles des droits sur les repertoires, purge des anciennnes backup récupérée....) mais je bute sur les retours de la commande SFTP :
J'arrive a récupérer dans un log les premieres valeurs renvoyées par la commande sftp ( les termes ne doivent pas etre les bons désolé)
du style :
- Fetching /lamp0/tmp/mysql_backup/2024-11-20_db.sql.gz to /var/www/backup/xxx/2024-11-20/2024-11-20_db_xxx.sql.gz
mais je ne parviens pas a récupérer le pourcentage : le fameux 100% confirmant que le téléchargement s'est bien déroulé.
ma commande est du style :
sftp -r user@host:lamp0/tmp/mysql_backup/"$MY_DATE"_db_xxx.sql.gz "$DIR_LOCAL_ROOT"/"$DIR_AURA_ROOT"/"$MY_DATE"/"$MY_DATE"_db_xxx.sql.gz)
cat > "$DIR_LOCAL_ROOT"/"$DIR_XXX_ROOT"/"$MY_DATE"/sftp.log
Est ce possible d'obtenir l'ensemble du contenu des chaques lignes retournées par la commande sftp lors de son exécution :
En log , j'aimerais avoir :
- Fetching /lamp0/tmp/mysql_backup/2024-11-20_db.sql.gz to /var/www/backup/xxx/2024-11-20/2024-11-20_db_xxx.sql.gz 100%
Merci pour vos lumières
Dernière modification par PoiroOnLinux (Le 22/11/2024, à 16:25)
Hors ligne
#2 Le 21/11/2024, à 14:39
- Watael
Re : [RESOLU] script et sftp : reécupérer les retours consoles
sftp, c'est du ftp over ssh :
$ man sftp | sed -n '/NAME/{N;p;q}'
NAME
sftp — OpenSSH secure file transfer
j'ai fait quelques essais infructueux pour récupérer le pourcentage.
PS: quand tu télécharges UN fichier l'option -r est inutile, et ce n'est pas la peine d'indiquer le nom du fichier de destination si ça doit être le même que celui de la source.
PS2: utilise les balises CODE (le bouton [<>]) pour poster... du code.
Dernière modification par Watael (Le 21/11/2024, à 14:50)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 21/11/2024, à 15:44
- PoiroOnLinux
Re : [RESOLU] script et sftp : reécupérer les retours consoles
Désolé pour l'oubli concernant le code.
Oui l'option -r ne sert à rien ici je suis d'accord
(oui, je suis pas un pro du bash et ca se voit ;-)
Hors ligne
#4 Le 21/11/2024, à 16:23
- credenhill
Re : [RESOLU] script et sftp : reécupérer les retours consoles
hello
essayer de tout enregistrer avec script
script '<commande>' fichier.log
$ man -ks 1 typescript
script (1) - make typescript of terminal session
Dernière modification par credenhill (Le 21/11/2024, à 16:34)
Hors ligne
#5 Le 21/11/2024, à 16:40
- Watael
Re : [RESOLU] script et sftp : reécupérer les retours consoles
bonne idée, et ça fonctionne
comme ça :
script -O script.log -c 'sftp user@host:source destination'
puis
grep 'source.*%' script.log
pour retrouver la ligne voulue "brute".
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#6 Le 22/11/2024, à 16:24
- PoiroOnLinux
Re : [RESOLU] script et sftp : reécupérer les retours consoles
Super Messieurs
Merci beaucoup pour votre aide !
Hors ligne
#7 Le 22/11/2024, à 20:20
- RaphaelG
Re : [RESOLU] script et sftp : reécupérer les retours consoles
Est ce que ce n'aurait pas été plus simple de tester le code retour de sftp ?
Un truc dans ce style :
sftp blabla blabla
rc=$?
if [ $rc == 0 ]
then echo OK
else
echo "What's the f...!"
exit $rc
fi
blabla
Hors ligne