这个脚本有什么问题?

这个脚本有什么问题?
find /abc/companies/ -name 'ABC141*.csv' | while read fname
do
   sftp ABC141@servername <<EOF
   cd ../ABC141_01/
   put $fname
   quit
   EOF
   mv $fname ./archive/$(basename $fname)-$(date +%Y%m%d-%T)
done

我尝试使用 scp 命令,但它不起作用。我正在使用无密码登录 ssh 密钥。

答案1

如果问题中显示的缩进与实际脚本文件中的缩进相同,那么这可能是您的问题。您EOF需要位于行首,或者您可以使用<<-EOFand,这将允许您缩进结束EOF 但仅使用标签- 没有空格。

答案2

ABC141 是否使用公钥/私钥连接?如果没有,则sftp当您尝试向其传递命令时,它会等待密码。只需将公钥安装到 中servername:~ABC141/.ssh/authorized_keys,将私钥安装到 中~/.ssh/id_dsa,然后~/.ssh/id_rsasftp可以干净地连接,而无需等待输入密码。

相关内容