it-swarm-eu.dev

sshpass: comando non trovato errore

Sto cercando di automatizzare il trasferimento di file o FTP da un server all'altro.

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

Quando eseguo questo script della shell, ricevo il seguente errore in PuTTY:

 -bash: sshpass: command not found

Ho provato a utilizzare il metodo ssh senza password di ssh-keygen -t dsa e altri passaggi ma non riesco ad accedere a PuTTY del secondo server a causa del quale non riesco a eseguire i passaggi successivi.

Gentilmente aiuto

4
sreekem bose

sarà necessario installare sshpass sul server client su cui si sta eseguendo il codice, in cui è uno strumento che non è installato di default sulla maggior parte delle distribuzioni Linux

se sei in Ubuntu usa questo comando

apt-get install sshpass

su centOS/redhat usa questo installa 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

installa sshpass

yum --enablerepo = epel -y installa sshpass

Grazie

15
Hani

NO!!!! Non installare sshpass. È lo strumento sbagliato per il tuo lavoro.

Non è stato scritto per il tuo caso d'uso, e se lo usi, il tuo script sarà notevolmente meno sicuro di quanto possa essere. Dovrei sapere di cosa sto parlando. L'ho scritto io.

Invece, esegui il tuo server con informazioni di debug e scopri perché non hai configurato l'autenticazione basata su chiave. È preferibile usare sshpass in ogni modo possibile.

3
Shachar Shemesh

Dai un'occhiata a questo post Come inserire il comando sshpass all'interno di uno script bash?

Se vuoi scrivere script sshpass's ssh

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