1. ホーム
  2. linux

[解決済み] sshpass: コマンドが見つからないエラー

2022-02-08 08:25:46

質問

あるサーバーから他のサーバーへのファイル転送、または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パスワードレス方式を試してみました。 ssh-keygen -t dsa などの手順がありますが、セカンドサーバーのputtyにアクセスできず、次の手順が実行できない状態です。

ご協力をお願いします。

解決方法を教えてください。

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

Ubuntuの場合、次のコマンドを使用します。

<ブロッククオート

apt-get インストール sshpass

centOS/redhatの場合、次のようにします。 epel をインストール

<ブロッククオート

ウィジェット 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

ありがとうございます