CentOS7 crontab 不执行,报错 /bin/sh: root: command not found

使用CentOS7 执行定时脚本,结果提示报错:

/bin/sh: root: command not found

问题在于文件 /var/spool/cron/root ,中无需再写root。

修改之后的脚本:

[[email protected] cron]# crontab -l
*/10 * * * * perl /home/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.zbphp.com >> /sbin/null 2>&1

文件 /etc/crontab 全部内容:

[[email protected] ~]# nano /etc/crontab

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

查看crontab 状态:

[[email protected] logs]# service crond status
Redirecting to /bin/systemctl status  crond.service
crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled)
   Active: active (running) since Sat 2014-10-18 19:13:38 HKT; 31min ago
 Main PID: 17467 (crond)
   CGroup: /system.slice/crond.service
           └─17467 /usr/sbin/crond -n

Oct 18 19:13:38 localhost.localdomain crond[17467]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 56% if used.)
Oct 18 19:13:38 localhost.localdomain crond[17467]: (CRON) INFO (running with inotify support)
Oct 18 19:13:38 localhost.localdomain crond[17467]: (CRON) INFO (@reboot jobs will be run at computer's startup.)
Oct 18 19:24:01 localhost.localdomain crond[17467]: (*system*) RELOAD (/etc/crontab)
Oct 18 19:27:01 localhost.localdomain crond[17467]: (root) RELOAD (/var/spool/cron/root)
Oct 18 19:32:01 localhost.localdomain crond[17467]: (root) RELOAD (/var/spool/cron/root)
Oct 18 19:33:01 localhost.localdomain crond[17467]: (root) RELOAD (/var/spool/cron/root)
Oct 18 19:34:01 localhost.localdomain crond[17467]: (root) RELOAD (/var/spool/cron/root)
Oct 18 19:38:01 localhost.localdomain crond[17467]: (root) RELOAD (/var/spool/cron/root)
Oct 18 19:40:01 localhost.localdomain crond[17467]: (root) RELOAD (/var/spool/cron/root)

by default7#zbphp.com

时间: 2024-10-03 22:37:21

CentOS7 crontab 不执行,报错 /bin/sh: root: command not found的相关文章

ansible执行shell模块和command模块报错| FAILED | rc=127 >> /bin/sh: lsof: command not found和| rc=2 >> [Errno 2] No such file or directory

命令: ansible -i hosts_20 st  -m shell -a 'service zabbix_agentd star'  -K --become ansible -i hosts_20 st  -m shell -a 'lsof -i:10050'  -K --become 在shell模块报错:| FAILED | rc=127 >>/bin/sh: lsof: command not found 在command模块报错:| rc=2 >>[Errno 2]

Ubuntu下sh *.sh使用==操作符执行报错

----<鸟哥的Linux私房菜--基础篇>学习笔记 ubuntu默认的sh是连接到dash,而我们写shell脚本时使用的时bash.bash和dash在一些方面是不兼容的.因此执行同一个脚本,两者结果不一样,可能用./*sh可以执行,而sh *.sh报错. 为了正确实行使用./*.h 或者  bash *.sh  或者把==换成=(不兼容部分) 也可以直接让系统不使用dash....Ubuntu之所以使用dash是因为其体积小,兼容性高,但是悲催的时,一些bash可执行的脚步在dash下不

解决 linux下编译make文件报错&ldquo;/bin/bash^M: 坏的解释器:没有那个文件或目录&rdquo; 问题

PS背景:我在公司做sdk 的pc端开发,所以经常会在win下编译通过之后跑到linux下再运行一次已确保能支持多平台. 今儿在win下跑完一程序,然后放到linux下跑的时候,我用指令: [plain] view plain copy sudo ./build.sh 但是却没有任何反应.于是我换了指令,用 [plain] view plain copy chmod u+x build.sh ./build.sh 报错 "build.sh  /bin/bash^M: 坏的解释器:没有那个文件或目

linux下编译make文件报错“/bin/bash^M: 坏的解释器,使用grep快速定位代码位置

一.linux下编译make文件报错"/bin/bash^M: 坏的解释器 参考文章:http://blog.csdn.net/liuqiyao_01/article/details/41542101#comments 自己测试的结果: [1]使用windows 下的编辑工具 新建文件doc2unix.sh #!/usr/bin/env bash # test PID=$(ps -aef | grep nginx | grep -v grep | grep master |awk '{print

解决 linux下编译make文件报错“/bin/bash^M: 坏的解释器:没有那个文件或目录” 问题

PS背景:我在公司做sdk 的pc端开发,所以经常会在win下编译通过之后跑到linux下再运行一次已确保能支持多平台. 今儿在win下跑完一程序,然后放到linux下跑的时候,我用指令: sudo ./build.sh 但是却没有任何反应.于是我换了指令,用 chmod u+x build.sh ./build.sh 报错 "build.sh  /bin/bash^M: 坏的解释器:没有那个文件或目录". 以前遇到这个问题,换了几种编译方法就解决了,单这次还是不行,于是又换:bash

shell脚本执行报错[: 0: unary operator expected

在执行shell脚本,if判断语句报错 #!/bin/bash if [ 0 == $testNum ] then echo "Check Result:0" fi testNum使用时没有定义,无赋值是空(原本是有定义的,只是笔误写错类似tsetNum了),执行转换后实际为 if [ 0 == ] 不相等,且少[符号错误:规避如下 #!/bin/bash if [[ 0 == $testNum ]] then echo "Check Result:0" fi 使用

linux:执行脚本出现/bin/sh^M: bad interpreter: No such file or directory

问题出在^M,原因是脚本文件的编码格式是dos,有可能是我在window下编辑完了直接传到linux的结果,可以在vim中输入以下命令确认编码格式 :set ff //可以看到dos或unix的字样. 如果的确是dos格式的, 那么你可以用set ff=unix把它强制为unix格式的, 然后存盘退出. 再运行一遍看. 也可以在命令行中用dos2unix指令转换编码 #dos2unix filename linux:执行脚本出现/bin/sh^M: bad interpreter: No suc

sql执行报错--This version of MySQL doesn&#39;t yet support &#39;LIMIT &amp; IN/ALL/ANY/SOME subquery&#39;

问题: 不支持使用 LIMIT 子句的 IN/ALL/ANY/SOME 子查询,即是支持非 IN/ALL/ANY/SOME 子查询的 LIMIT 子查询. 解决: 将语句:select * from table where id in (select id from table limit 0,10) 变更为:select * from table where id in (select t.id from (select * from table limit 0,10)as t) sql执行报

执行shell脚本报错 &#39;\357\273\277&#39;: command not found 解决办法

1,删除BOM,在vi下面执行下面的命令即可 :set nobomb 2,原因: 所谓BOM,全称是Byte Order Mark,它是一个Unicode字符,通常出现在文本的开头,用来标识字节序(Big/Little Endian),除此以外还可以标识编码(UTF-8/16/32) 对于UTF-8/16/32而言,它们名字中的8/16/32指的是编码单位是多少位的,也就是说,它们的编码单位分别是8/16/32位,换算成字节就是1/2/4字节,如果是多字节,就要牵扯到字节序,UTF-8以单字节为