免费注册 查看新帖 |

Chinaunix

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

[服务应用] linux的cron不能自动执行的原因是什么? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-09-02 16:11 |只看该作者 |倒序浏览
OS : Ubuntu 12.04
  1. 0 22 * * * /bin/bash -l -c 'backup perform -t my_backup'
复制代码
这个任务并不会在22:00自动执行。

确认一下配置文件:

cat /etc/crontab

是这样的写法:

  1. SHELL=/bin/sh
  2. PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
复制代码
/bin/bash 和 /bin/sh 好像不相符,如何处理呢?

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
2 [报告]
发表于 2012-09-02 20:16 |只看该作者
你的cron里的命令在命令行能执行不?

论坛徽章:
0
3 [报告]
发表于 2012-09-03 08:38 |只看该作者
同意,排查的第一步就是看是否可以在命令行执行了。
chenyx 发表于 2012-09-02 20:16
你的cron里的命令在命令行能执行不?

论坛徽章:
0
4 [报告]
发表于 2012-09-03 09:56 |只看该作者
本帖最后由 zhangjingqiang 于 2012-09-03 09:57 编辑

直接运行
  1. backup perform -t my_backup
复制代码
是可以被执行的。
就是命令不能被自动执行,一定是命令的调用方式不对或路径不对,可不知怎么调整。

chenyx 发表于 2012-09-02 20:16
你的cron里的命令在命令行能执行不?

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
5 [报告]
发表于 2012-09-03 09:59 |只看该作者
cron任务里面的命令用绝对路径,去掉bash -l -c测试下

论坛徽章:
0
6 [报告]
发表于 2012-09-03 10:16 |只看该作者
测试了这样两种方式:
  1. 10 11 * * * 'backup perform -t my_backup'
复制代码
  1. 11 11 * * * /bin 'backup perform -t my_backup'
复制代码
没有效果

查看cron的log(/var/log/cron.log),有这样几条信息:

  1. Sep  3 02:10:26 domain-name cron[3529]: (CRON) INFO (pidfile fd = 3)
  2. Sep  3 02:10:26 domain-name cron[3530]: (CRON) STARTUP (fork ok)
  3. Sep  3 02:10:26 domain-name cron[3530]: (CRON) INFO (Skipping @reboot jobs -- not system startup)
复制代码
这能看出什么问题吗?

chenyx 发表于 2012-09-03 09:59
cron任务里面的命令用绝对路径,去掉bash -l -c测试下

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
7 [报告]
发表于 2012-09-03 10:27 |只看该作者
你把''去掉,另外,backup那个程序写成绝对路径的方式

论坛徽章:
0
8 [报告]
发表于 2012-09-03 10:48 |只看该作者
backup那个写法是ruby的backup gem的形式,用 which backup 找到它的路径,换成绝对路径如下:
  1. 43 11 * * * /usr/local/bin/backup perform -t my_backup
复制代码
还是不行。

权限的问题?但我以普通用户登录ssh,并运行 backup perform -t my_backup 为什么可以执行?

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
9 [报告]
发表于 2012-09-03 10:54 |只看该作者
很可能是环境变量的原因.你把命令写成一个脚本,赋予脚本x权限,然后在cron里面调用.
在脚本里面echo一下时间到一个文件,看看能否正确执行

论坛徽章:
0
10 [报告]
发表于 2012-09-03 11:05 |只看该作者
好,我试试。
谢谢回答:wink:
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP