灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:1895回复:0

crontab提示command not found的解决方法

楼主#
更多 发布于:2012-08-27 14:54


近期要用crontab执行一些命令:定期让系统时间和硬件时间同步。因为我总是发现我的linux服务器时间会变慢,最后想到同步这个办法。

    一开始,我将命令:*/1 * * * * root hwclock --hctosys 写到 /root/spool/cron/root文件(直接敲入命令crontab -u root -e 可对其进行编辑),但是总是在执行后root用户收到一封邮件关于cron的,提示错误信息:
From root@localhost.localdomain  Wed Sep 22 10:10:01 2010
Return-Path: <root@localhost.localdomain>
Received: from localhost.localdomain (localhost.localdomain [127.0.0.1])
by localhost.localdomain (8.13.8/8.13.8) with ESMTP id o8M2A1bL024533
for <root@localhost.localdomain>; Wed, 22 Sep 2010 10:10:01 +0800
Received: (from root@localhost)
by localhost.localdomain (8.13.8/8.13.8/Submit) id o8M2A1hh024532;
Wed, 22 Sep 2010 10:10:01 +0800
Date: Wed, 22 Sep 2010 10:10:01 +0800
Message-Id: <201009220210.o8M2A1hh024532@localhost.localdomain>
From: root@localhost.localdomain (Cron Daemon)
To: root@localhost.localdomain
Subject: Cron <root@localhost> root hwclock --hctosys
Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>

/bin/sh: root: command not found

/bin/sh: root: command not found 表明crontab默认使用的shell是/bin/sh
并且在上面列出了crontab的默认环境变量:
X-Cron-Env: <SHELL=/bin/sh>                //默认使用的shell
X-Cron-Env: <HOME=/root>                        //用户目录
X-Cron-Env: <PATH=/usr/bin:/bin>              //命令搜索路径
X-Cron-Env: <LOGNAME=root>                   //登陆用户名
X-Cron-Env: <USER=root>                         //用户

解决方法1:
root的crontab文件中加入:
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin

解决方法2(这是我选择的):
写到 /etc/crontab文件,在最后一行假如以下代码:
*/1 * * * * root hwclock --hctosys
代表每隔1分钟执行。





喜欢0 评分0
游客

返回顶部