18

あるサーバーから別のサーバーへのファイル転送または FTP を自動化しようとしています。

#!/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 zys@192.abc.taleo.net <<_EOF_

cd /upload/

put $FILE

_EOF_

# Exit
exit $?

このシェル スクリプトを実行すると、 putty で次のエラーが発生します。

 -bash: sshpass: command not found

および他の手順で ssh パスワードなしの方法を使用してみました ssh-keygen -t dsaが、次の手順を実行できないため、2 番目のサーバーのパテにアクセスできません。

親切に助けて

4

3 に答える 3

44

コードを実行しているクライアント サーバーに sshpass をインストールする必要があります。このツールは、ほとんどの Linux ディストリビューションではデフォルトでインストールされません。

Ubuntu を使用している場合は、このコマンドを使用します

apt-get インストール sshpass

centOS/redhat では、このインストール epel を使用します

wget https://archives.fedoraproject.org/pub/archive/epel/6/x86_64/epel-release-6-8.noarch.rpm

rpm -ivh epel-release-6-8.noarch.rpm

sshpass をインストールする

yum --enablerepo=epel -y install sshpass

ありがとう

于 2016-06-30T17:37:44.283 に答える
7

いいえ!!!!sshpass をインストールしないでください。それはあなたの仕事には不適切なツールです。

これはユース ケース用に作成されたものではありません。使用すると、スクリプトの安全性が大幅に低下します。私は自分が何について話しているかを知っているはずです。私はそれを書きました。

代わりに、デバッグ情報を使用してサーバーを実行し、キーベースの認証の設定に失敗した理由を突き止めてください。sshpassあらゆる方法で使用することをお勧めします。

于 2016-06-30T18:11:52.980 に答える