J'ai un script OpenSSH sftp
qui transfère les fichiers d'un serveur SFTP (Solaris) au serveur d'applications (Linux). Ici, le scénario est le transfert qui se passe à partir d'un emplacement différent et les mêmes fichiers sont transférés sauvegarde à l'emplacement différent du serveur SFTP. Mais si l'un des transferts échoue en raison d'un fichier n'est pas disponible, il ne poursuit pas les commandes sftp
restantes. Au lieu de cela, il sort juste du code. Voici le script.Le script sftp échoue lorsque l'une des instructions sftp échoue sous Linux
export SSHPASS=*******
/usr/local/bin/sshpass -e sftp -oPort=22 -oBatchMode=no -b - [email protected] << !
cd /home/rkwlahtt/Inbound
mget *.*
rm *.*
cd /home/rkwlahtt/Inbound/Adhoc
mget *.*
rm *.*
cd /home/rkwlahtt/Archive/Inbound
mput *.TXT
mput *.txt
cd /home/rkwlahtt/Archive/Adhoc
mput *.xlsx
bye
!
Ici, dans le script ci-dessus quand je suis en train de mget
du /home/rkwlahtt/Inbound
dossier et si le fichier n'existe pas, il vient juste de sortir du code sftp
au lieu d'aller à commande suivante qui est cd /home/rkwlahtt/Inbound/Adhoc
et mget
. C'est la même situation pendant que mput
aussi.
C'est la première fois que nous transférons à partir d'un emplacement différent dans le même code. Et cela crée un problème dans notre transfert.
Veuillez me faire savoir ce qui peut être fait pour résoudre ce problème.
Cool. Ça a marché. Alors, que signifie exactement le -b? Je pensais que -b était pour le fichier batch. Et cette instruction ligne /usr/local/bin/sshpass -e sftp -oPort = 22 -oBatchMode = non -b - [email protected] < user3441224
Le '-b' fait deux choses. D'abord, il active un mode de traitement par lots (= abandon de toute erreur), ensuite il définit un fichier de script. Sauf lorsque vous utilisez '-' au lieu d'un nom de fichier script, auquel cas les commandes sont lues à partir de l'entrée standard, quelle est la valeur par défaut. Vous n'avez pas besoin du second effet (puisque vous utilisez '-' de toute façon) et vous ne voulez pas le premier. Voir la page de manuel 'sftp': https://www.freebsd.org/cgi/man.cgi?query=sftp&sektion=1 –
bien .. Merci beaucoup Martin. – user3441224