sftp在cron或crontab中不起作用,但ftp可以正常工作

问题描述 投票:0回答:1

我已经创建了一个脚本文件transfer.sh,该脚本文件ftp是一个test.txt文件到服务器,现在我已经在crontab中输入了脚本文件,如果我使用ftp来传输文件,则可以正常工作在crontab中,当我使用sftp而不是ftp时,它在cron选项卡中不起作用,但是当我手动运行transfer.sh脚本时,它可以正常工作,并使用sftp将文件传输到服务器。我在日志中没有看到任何错误。

我的脚本transfer.sh脚本是

sftp user/[email protected] <<END_SCRIPT
cd /mydir
put test.txt
bye
END_SCRIPT
unix ftp cron crontab sftp
1个回答
1
投票

crontab在UNIX服务器上找不到sftp实用程序,有两种方法可以解决此问题。

  1. PATH环境变量附加到sftp路径

  2. 在脚本中使用带有绝对路径的sftp命令

    示例。

    / usr / localcw / opt / ssh / bin / sftp用户/[email protected]

如何找到sftp绝对路径,下面是示例

$which sftp
/usr/localcw/bin/sftp

转到/usr/localcw/bin位置

$cd /usr/localcw/bin

命中ls -lrt sftp

/usr/localcw/bin $ls -lsrt sftp
0 lrwxrwxrwx   1 root     root          19 Apr 11  2012 sftp -> ../opt/ssh/bin/sftp

这里再次是到../opt/ssh/bin/sftp的软链接,现在是cd../opt/sh/bin

/usr/localcw/bin $ cd ../opt/ssh/bin

现在密码是您的sftp绝对路径

/usr/localcw/opt/ssh/bin $ pwd
/usr/localcw/opt/ssh/bin

将此路径与sftp命令一起使用

© www.soinside.com 2019 - 2024. All rights reserved.