crontab提示command not found的解决方法
2889 点击·0 回帖
![]() | ![]() | |
![]() | 近期要用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分钟执行。 | |
![]() | ![]() |