免费注册 查看新帖 |

Chinaunix

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

[其他] crontab不执行,提示not found? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-04-30 08:42 |只看该作者 |倒序浏览
本帖最后由 abcfy2 于 2013-05-19 14:09 编辑

事情是这样的,我直接把我的定期计划任务写入了/etc/crontab(之前直接用普通账户crontab -e不起作用)
但是诡异的事情发生了,/etc/crontab具体如下:
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
#SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

#每天4:00执行mysql备份并拷贝
0 4    * * *    ok988   /home/ok988/mysql_backup/mysql_backup.sh

#每6小时执行磁盘空间监测,超过预警给管理员发邮件
0 */6   * * *   ok988   /home/ok988/monitor_disk.sh


我会收到错误的邮件报警,内容如下:
From ok988@iotdemo  Tue Apr 30 04:00:01 2013
Return-Path: <ok988@iotdemo>
X-Original-To: ok988
Delivered-To: ok988@iotdemo
Received: by iotdemo (Postfix, from userid 1000)
        id C30592B034F6; Tue, 30 Apr 2013 04:00:01 +0800 (CST)
From: root@iotdemo (Cron Daemon)
To: ok988@iotdemo
Subject: Cron <ok988@iotdemo> /home/ok988/mysql_backup/mysql_backup.sh
Content-Type: text/plain; charset=ANSI_X3.4-1968
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin>
X-Cron-Env: <HOME=/home/ok988>
X-Cron-Env: <LOGNAME=ok988>
Message-Id: <20130429200001.C30592B034F6@iotdemo>
Date: Tue, 30 Apr 2013 04:00:01 +0800 (CST)

/bin/sh: 1: /home/ok988/mysql_backup/mysql_backup.sh: not found

From ok988@iotdemo  Tue Apr 30 06:00:02 2013
Return-Path: <ok988@iotdemo>
X-Original-To: ok988
Delivered-To: ok988@iotdemo
Received: by iotdemo (Postfix, from userid 1000)
        id 0E0122B034F6; Tue, 30 Apr 2013 06:00:01 +0800 (CST)
From: root@iotdemo (Cron Daemon)
To: ok988@iotdemo
Subject: Cron <ok988@iotdemo> /home/ok988/monitor_disk.sh
Content-Type: text/plain; charset=ANSI_X3.4-1968
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin>
X-Cron-Env: <HOME=/home/ok988>
X-Cron-Env: <LOGNAME=ok988>
Message-Id: <20130429220002.0E0122B034F6@iotdemo>
Date: Tue, 30 Apr 2013 06:00:01 +0800 (CST)

/bin/sh: 1: /home/ok988/monitor_disk.sh: not found


问题解决了,当时安装系统的时候勾选了加密用户主目录,导致crontab认不出来/home/ok988里面的内容了,crontab执行find命令就会发现/home/ok988下的文件都是乱码,所以提示not found。解决方案暂时用的是在家目录之外放置脚本。

论坛徽章:
0
2 [报告]
发表于 2013-04-30 08:43 |只看该作者
最后提示的都是not found,问题是这个脚本确实是真实存在的,手工执行一点问题都没有,把crontab的时间改为* * * * *就可以执行,也没有not found的错误,这是怎么一回事?

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每月发帖之星
日期:2015-09-11 19:30:52IT运维版块每周发帖之星
日期:2015-09-11 19:20:31IT运维版块每日发帖之星
日期:2015-08-26 06:20:00每日论坛发贴之星
日期:2015-08-20 06:20:00IT运维版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15金牛座
日期:2014-05-04 16:58:09双子座
日期:2013-12-17 16:44:37辰龙
日期:2013-11-22 15:20:59狮子座
日期:2013-11-18 22:55:08射手座
日期:2013-11-12 10:54:26
3 [报告]
发表于 2013-05-01 19:47 |只看该作者
感觉不太正常,是连续几天都有问题?
还有
看/var/spool/cron*/cron*/*

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每月发帖之星
日期:2015-09-11 19:30:52IT运维版块每周发帖之星
日期:2015-09-11 19:20:31IT运维版块每日发帖之星
日期:2015-08-26 06:20:00每日论坛发贴之星
日期:2015-08-20 06:20:00IT运维版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15金牛座
日期:2014-05-04 16:58:09双子座
日期:2013-12-17 16:44:37辰龙
日期:2013-11-22 15:20:59狮子座
日期:2013-11-18 22:55:08射手座
日期:2013-11-12 10:54:26
4 [报告]
发表于 2013-05-01 19:49 |只看该作者
你的2个脚本都没有

建议看下/etc/cron* 输出

论坛徽章:
0
5 [报告]
发表于 2013-05-01 20:26 |只看该作者
回复 4# wenhq


    日志我看了,有CMD这行,下面也没有报错,说明这条语句是执行了,但是mail中就有报错,提示not found,连续一个月都是这样,每天收工执行一下备份脚本才行

论坛徽章:
0
6 [报告]
发表于 2013-05-01 20:32 |只看该作者
回复 4# wenhq


    另外,还有一个更有意思的问题,一直提示not found,我就想看看脚本的输出,最后一行改成了0 */6   * * *   ok988   /home/ok988/monitor_disk.sh>>/home/ok988/monitor_disk.log

From ok988@iotdemo  Wed May  1 12:00:01 2013
Return-Path: <ok988@iotdemo>
X-Original-To: ok988
Delivered-To: ok988@iotdemo
Received: by iotdemo (Postfix, from userid 1000)
        id CF4392B03314; Wed,  1 May 2013 12:00:01 +0800 (CST)
From: root@iotdemo (Cron Daemon)
To: ok988@iotdemo
Subject: Cron <ok988@iotdemo> ~/monitor_disk.sh >> monitor_disk.log
Content-Type: text/plain; charset=ANSI_X3.4-1968
X-Cron-Env: <SHELL=/bin/bash>
X-Cron-Env: <PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin>
X-Cron-Env: <HOME=/home/ok988>
X-Cron-Env: <LOGNAME=ok988>
Message-Id: <20130501040001.CF4392B03314@iotdemo>
Date: Wed,  1 May 2013 12:00:01 +0800 (CST)

/bin/bash: monitor_disk.log: Permission denied


可以看到执行的用户就是ok988,但是写入log就提示permission denied,这是怎么回事?难道cron不是以当前用户身份执行的命令么?为什么会遭到权限的拒绝?

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每月发帖之星
日期:2015-09-11 19:30:52IT运维版块每周发帖之星
日期:2015-09-11 19:20:31IT运维版块每日发帖之星
日期:2015-08-26 06:20:00每日论坛发贴之星
日期:2015-08-20 06:20:00IT运维版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15金牛座
日期:2014-05-04 16:58:09双子座
日期:2013-12-17 16:44:37辰龙
日期:2013-11-22 15:20:59狮子座
日期:2013-11-18 22:55:08射手座
日期:2013-11-12 10:54:26
7 [报告]
发表于 2013-05-02 09:09 |只看该作者
permission denied? 你检查下/home/ok988/monitor_disk.log的权限.

论坛徽章:
0
8 [报告]
发表于 2013-05-02 09:23 |只看该作者
回复 7# wenhq


    权限644,属主ok988.ok988。
我在想是不是因为cron执行的时候并不是以当前用户身份去执行了,而是用别的用户(比如daemon这样的低权限执行),这样的话对于/home/ok988来说,根本就没有rx权限,家目录是700权限,别的用户都进不了家目录,所以提示not found??所以会提示permission denied??

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每月发帖之星
日期:2015-09-11 19:30:52IT运维版块每周发帖之星
日期:2015-09-11 19:20:31IT运维版块每日发帖之星
日期:2015-08-26 06:20:00每日论坛发贴之星
日期:2015-08-20 06:20:00IT运维版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15金牛座
日期:2014-05-04 16:58:09双子座
日期:2013-12-17 16:44:37辰龙
日期:2013-11-22 15:20:59狮子座
日期:2013-11-18 22:55:08射手座
日期:2013-11-12 10:54:26
9 [报告]
发表于 2013-05-02 09:34 |只看该作者
more /var/spool/cron/*

论坛徽章:
0
10 [报告]
发表于 2013-05-02 09:42 |只看该作者
回复 9# wenhq
  1. ok988@iotdemo:/home$ more /var/spool/cron/*

  2. *** /var/spool/cron/atjobs: directory ***


  3. *** /var/spool/cron/atspool: directory ***


  4. *** /var/spool/cron/crontabs: directory ***
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP