免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3256 | 回复: 8
打印 上一主题 下一主题

[系统管理] lftp 在cronjob里运行是无法得到任何输出(stdout,stderr) [复制链接]

论坛徽章:
1
白羊座
日期:2013-12-29 17:58:28
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-03-09 04:02 |只看该作者 |倒序浏览
Linux 系统,因为sftp不支持自动输入密码,就考虑用lftp
  1. /usr/bin/lftp -e 'put abc;bye;' -u username,pass sftp://url > /var/tmp/lftp.log 2>&1
复制代码
上面的命令直接运行,很正常。 但是放在cronjob里,lftp.log 永远是空的。 文件证实已经上传了。

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
2 [报告]
发表于 2014-03-09 09:10 |只看该作者
回复 1# newoz


    你是说在cron job 后,可以上传文件,却.log却是空的?

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
3 [报告]
发表于 2014-03-09 09:11 |只看该作者
再说,这样用 lftp 不安全吧。

论坛徽章:
1
白羊座
日期:2013-12-29 17:58:28
4 [报告]
发表于 2014-03-09 16:12 |只看该作者
回复 2# blackold

对,在cronjob里可以正常上传,但是就是无法得到任何日志 (包括stdout,stderr)。但是如果不用put命令,而是ls之类的命令,可以记录到。至于安全性,这个先不考虑,先把这事给解决了,以后再考虑。

我提这个问题的目的是,程序运行时,似乎除了stderr,stdout,还有其他的输出,我只是不知道该如何去设置来得到它。

http://en.wikipedia.org/wiki/File_descriptor

Integer value        Name
0        Standard input (stdin)
1        Standard output (stdout)
2        Standard error (stderr)

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
5 [报告]
发表于 2014-03-09 20:01 |只看该作者
本帖最后由 blackold 于 2014-03-09 20:29 编辑

回复 4# newoz


    检查手动命令是否和 cron 命令一样
    cron shell(默认为 sh) 重定向语法。
     log file 写权限

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
6 [报告]
发表于 2014-03-09 21:31 |只看该作者
本帖最后由 blackold 于 2014-03-09 21:45 编辑

回复 4# newoz


   仔细看了你的贴子,应该与上楼我说的无关。

看起来是 ls 与 put 的输出不同,一个输出到 stdout, 另一个输出到 stderr。

论坛徽章:
1
白羊座
日期:2013-12-29 17:58:28
7 [报告]
发表于 2014-03-10 09:17 |只看该作者
blackold 发表于 2014-03-09 21:31
回复 4# newoz


网上查到个针对lftp的回复
  1. lftp might be using file descriptors other than STDOUT and STDERR. Check by running the command in strace

  2. strace lftp ...
  3. and look for lines starting with "write":

  4. write(3, ...
  5. The number is the descriptor that the program writes to. Redirect that descriptor as well.

  6. ... >> /var/log/ftp-getter.log 2>&1 3>&1
复制代码
输出的通道似乎可以控制,除了0,1,2 还可以是其他数字。

大家有碰到过类似的情况吗?

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
8 [报告]
发表于 2014-03-10 11:02 |只看该作者
回复 7# newoz


    FD 可以是其它数字啊,只有你知道写到哪了,当然可以控制。

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
9 [报告]
发表于 2014-03-12 09:46 |只看该作者
回复 7# newoz


    就用strace命令跟踪一下吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP