web-dev-qa-db-ja.com

sshpass:コマンドが見つからないエラー

1つのサーバーから別のサーバーへのファイル転送または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 [email protected] <<_EOF_

cd /upload/

put $FILE

_EOF_

# Exit
exit $?

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

 -bash: sshpass: command not found

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

親切に助けて

9
sreekem bose

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

ubuntuにいる場合は、このコマンドを使用してください

apt-get install sshpass

centOS/redhatでは、このインストール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

sshpassをインストールする

yum --enablerepo = epel -y install sshpass

ありがとう

15
Hani

NO !!!! sshpassをインストールしません。それはあなたの仕事にとって間違った道具です。

それはあなたのユースケースのために書かれていなかったので、それを使用すると、スクリプトの安全性はかなり低くなります。私は何について話しているのか知っているべきです。私はそれを書きました。

代わりに、デバッグ情報を使用してサーバーを実行し、鍵ベースの認証のセットアップに失敗した理由を解明してください。可能な限りあらゆる方法でsshpassを使用することをお勧めします。

3
Shachar Shemesh

CentOS 7のソリューションの1つ:

  1. リンクをクリックしてください

そしてrpmがダウンロードされます。

  1. このrpmをLinuxシステムに転送します(filezillaなどを使用できます)。
  2. 次を使用してRpmをインストールします:yum install <rpm file name>

[〜#〜]完了[〜#〜]

0
Abhishek gaur

この投稿を見てください sshpassコマンドをbashスクリプト内に配置する方法?

スクリプトを作成する場合はsshpass's ssh

export SSHPASS=password
sshpass -e ssh -oBatchMode=no user@Host
0
Alastair