自动化 SFTP 传输

自动化 SFTP 传输

我是新手 – 对 UNIX 非常陌生,已经陷入困境。

我尝试自动将文件从远程 SFTP 服务器传输回我们的 SFTP 服务器,我需要使用 SSH 私有登录。

我已经设法通过完全亲自动手的方法来解决这个问题,但是当我尝试通过 cron 作业来执行此操作时,我立即收到以下错误:

/bin/sh: 1: /home/administrator/from_cepsa_to_SFTP.sh: Permission denied

我不确定这是从哪里来的,因为它不在我的脚本中,如下所示:

sftp -i /home/administrator/key/key.txt [email protected]
sftp> cd /out
sftp> lcd /home/administrator/key
sftp> get key2.txt
sftp> cd /out/processed
sftp> put key2.txt
sftp> cd /out
sftp> rm key2.txt
Removing /out/key2.txt
sftp> exit

现在我可能希望我可以将手动输入的内容转换为脚本,但我真的很感激任何指点/建议和支持,好吗?

我从以前的脚本中注意到做类似的事情它调用:

sshpass -e sftp -oBatchMode=no  -oport=61140 -oHostKeyAlgorithms=+ssh-dss -b - [email protected] << !

我知道我没有使用“sshpass”,但我想我错过了调用 SSH SFTP 传输的东西

谢谢 :)

答案1

你的 crontab 条目看起来应该像这样:

0 1 * * * /bin/bash /home/administrator/from_cepsa_to_SFTP.sh

或者,您可以chmod +x /home/administrator/from_cepsa_to_SFTP.sh

我不确定你的脚本是什么样的,但它应该是这样的:

#!/bin/bash
sftp  -i /home/administrator/key/key.txt [email protected] <<EOF
cd /out
lcd /home/administrator/key
get key2.txt
cd /out/processed
put key2.txt
cd /out
rm key2.txt
exit
EOF

相关内容