I am trying to automate the file transfer or FTP from one server to the other.
#!/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 $?
When I am executing this shell script I am getting the following error in putty :
-bash: sshpass: command not found
I tried using the ssh passwordless method by ssh-keygen -t dsa
and other steps but I cannot access putty of the second server due to which I am not being able to execute the next steps.
Kindly help
you will need to install sshpass on the client server you are running your code in which is a tool that is not installed by default on most Linux distro
if you are in Ubuntu use this command
apt-get install sshpass
on centOS/redhat use this install 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
install sshpass
yum --enablerepo=epel -y install sshpass
Thanks