J'essaie d'automatiser le transfert de fichier ou FTP d'un serveur à l'autre.
#!/bin/bash
### In this model, the same filename is processed on each run.
### A timestamp is added to the result file and data file is copied to the archive or error folder with a timestamp after processing.
# Set current directory
cd `dirname "$0"`
# Set the environment variables
. ./Environment.sh $0
#######################################################################################################
#
#######################################################################################################
FILE=/hcm/Inbound/file.csv
sshpass -p 'xyz' sftp -oBatchMode=no -b - -oStrictHostKeyChecking=no [email protected] <<_EOF_
cd /upload/
put $FILE
_EOF_
# Exit
exit $?
Lorsque j'exécute ce script shell, l'erreur suivante s'affiche dans PuTTY:
-bash: sshpass: command not found
J'ai essayé d'utiliser la méthode ssh passwordless par ssh-keygen -t dsa
et d'autres étapes, mais je ne peux pas accéder à PuTTY du deuxième serveur, ce qui m'empêche d'exécuter les étapes suivantes.
Aide aimablement
vous devrez installer sshpass sur le serveur client sur lequel vous exécutez votre code, outil qui n’est pas installé par défaut sur la plupart des distributions Linux.
si vous êtes dans Ubuntu utilisez cette commande
apt-get install sshpass
sur centOS/redhat, utilisez cette install epel
wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
installer sshpass
yum --enablerepo = epel -y installe sshpass
Merci
NON!!!! N'installez pas sshpass. Ce n'est pas le bon outil pour votre travail.
Il n'a pas été écrit pour votre cas d'utilisation, et si vous l'utilisez, votre script sera considérablement moins sécurisé qu'il ne peut l'être. Je devrais savoir de quoi je parle. Je l'ai écrit.
Au lieu de cela, exécutez votre serveur avec les informations de débogage et déterminez pourquoi vous n'avez pas réussi à configurer l'authentification par clé. Il est préférable d’utiliser sshpass
de toutes les manières possibles.
Jetez un oeil à ce post Comment mettre la commande sshpass dans un script bash?
Si vous souhaitez écrire le script sshpass's ssh
export SSHPASS=password
sshpass -e ssh -oBatchMode=no user@Host