我是新手 – 对 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