Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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. hmm

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. big_smile

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