我正在尝试自动化从一个服务器到另一个服务器的文件传输或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 $?
当我执行这个shell脚本时,在putty中会得到以下错误信息:
-bash: sshpass: command not found
我尝试使用ssh无密码方法,通过 ssh-keygen -t dsa
和其他步骤,但是由于无法访问第二台服务器的putty,我无法执行下一步操作。
请帮忙解决。
exit $?
是完全多余的:exit
默认情况下会传递立即前一个命令的退出状态。此外,你在这里缺少了相当多的引用—— http://shellcheck.net/ 会识别出来。 - Charles Duffy