Ich versuche, die Dateiübertragung oder FTP von einem Server zum anderen zu automatisieren.sshpass: Befehl nicht gefunden Fehler
#!/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 $?
Wenn ich diesen Shell-Skript bin Ausführung Ich erhalte die folgenden Fehler in Kitt:
-bash: sshpass: command not found
Ich versuchte, die ssh passwordless Methode von ssh-keygen -t dsa
und anderen Schritten, aber ich kann nicht auf Kitt der zweiten Server, aufgrund dessen ich die nächsten Schritte nicht ausführen kann.
Bitte helfen
"Kann Kitt des zweiten Servers nicht zugreifen"? Pardon? Sie können passwortloses SSH über mehrere Hops verwenden, indem Sie Ihren Schlüssel in einen Agenten laden (nebenbei werden RSA-Schlüssel gegenüber DSA bevorzugt) und das Weiterleiten von Agenten aktivieren. Sie müssen keinen privaten Schlüssel auf Ihren Bounce-Hosts haben. –
Nebenbei, 'exit $?' Ist völlig redundant: 'exit' durchläuft standardmäßig den Exit-Status des unmittelbar vorherigen Befehls. Außerdem fehlt hier ein bisschen Quoting - was http://shellcheck.net/ identifizieren wird. –