首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用从crontab获得结果执行Sftp?

如何使用从crontab获得结果执行Sftp?
EN

Stack Overflow用户
提问于 2015-02-19 11:47:27
回答 1查看 896关注 0票数 0

当我从终端执行脚本时,它会打印结果sftp。

如果php脚本是从cron执行的--它没有打印任何内容,那么$result是空的。

Crontab:

代码语言:javascript
复制
23 12 * * *  php script.php >> /tmp/logs.log

剧本:

代码语言:javascript
复制
<?php
$command = 'lftp -u user,Password sftp://domain.com -e "set ftp:passive-mode off; set ftp:auto-passive-mode on; put -O /path/tests toTransfer/file.zip; bye;"';
$result = shell_exec($command);
echo $result;
if ($result) echo "uploaded";
else echo "Not uploaded";
?>
EN

回答 1

Stack Overflow用户

发布于 2015-02-19 14:09:12

我假设cron运行在与您在shell中使用的帐户不同的帐户下。

您的脚本可能依赖于您的帐户环境(就像一个具有已知主机密钥的文件)。cron帐户没有这一点,所以lftp失败了。

很可能lftp会在错误输出上打印一些错误。但您只收集标准输出。

尝试从一个普通的shell脚本开始,并将stdout和stderr重定向到日志文件:

代码语言:javascript
复制
lftp -u user,Password sftp://domain.com 2>&1 > /tmp/log.log

请注意,您正在使用SFTP。因此,设置lftp特定于FTP的选项(如ftp:passive-mode (在SFTP中没有被动模式)是没有意义的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28605569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档