it-swarm.com.de

sshpass: Befehl nicht gefunden

Ich versuche, die Dateiübertragung oder FTP von einem Server zum anderen zu automatisieren.

#!/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 $?

Beim Ausführen dieses Shell-Skripts erhalte ich in PuTTY die folgende Fehlermeldung:

 -bash: sshpass: command not found

Ich habe versucht, die ssh-Methode ohne Kennwort mit ssh-keygen -t dsa und anderen Schritten zu verwenden, aber ich kann nicht auf PuTTY des zweiten Servers zugreifen, wodurch ich die nächsten Schritte nicht ausführen kann.

Freundlich helfen

4
sreekem bose

sie müssen sshpass auf dem Client-Server installieren, auf dem Sie Ihren Code ausführen. Dabei handelt es sich um ein Tool, das in der meisten Linux-Distribution nicht standardmäßig installiert ist

wenn Sie sich in Ubuntu befinden, verwenden Sie diesen Befehl

apt-get install sshpass

verwenden Sie auf centOS/redhat diese 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

installiere sshpass

yum --enablerepo = epel -y install sshpass

Vielen Dank

15
Hani

NEIN!!!! sshpass nicht installieren. Es ist das falsche Werkzeug für Ihren Job.

Es wurde nicht für Ihren Anwendungsfall geschrieben, und wenn Sie es verwenden, ist Ihr Skript wesentlich weniger sicher als es sein kann. Ich sollte wissen, wovon ich rede. Ich schrieb es.

Führen Sie stattdessen Ihren Server mit Debugging-Informationen aus und ermitteln Sie, warum Sie keine schlüsselbasierte Authentifizierung eingerichtet haben. Es ist vorzuziehen, sshpass auf jede mögliche Weise zu verwenden.

3
Shachar Shemesh

Werfen Sie einen Blick auf diesen Beitrag Wie kann ich den Befehl sshpass in ein Bash-Skript einfügen?

Wenn Sie sshpass's ssh schreiben möchten

export SSHPASS=password
sshpass -e ssh -oBatchMode=no [email protected]
0
Alastair