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

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

/bin/sh: root: command not found


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

修改之后的脚本:

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



文件 /etc/crontab 全部内容:

[root@localhost ~]# 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 状态:

[root@localhost 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


当你在 Linux 或者 Docker 容器中运行命令时,如果遇到错误提示 `/bin/sh: bc: command not found`,这意味着你在尝试调用 `bc` 命令(一个支持任意精度数学计算的工具),但是当前环境中并没有安装该工具。 下面是一些解决此问题的方法及背景知识: --- ### 解决方案 #### 1. **确认是否已安装 `bc`** 在大多数轻量级容器或者最小化系统环境下,`bc` 工具通常会预装。你可以通过以下命令检查是否存在: ```bash which bc ``` 如果返回为空,则表示未安装。 #### 2. **手动安装 `bc`** 根据使用的操作系统,可以按照以下方式安装: - 对于基于 Debian/Ubuntu 的系统: ```bash apt-get update && apt-get install -y bc ``` - 对于基于 CentOS/RHEL 的系统: ```bash yum install -y bc ``` - 对于 Alpine Linux: ```bash apk add --no-cache bc ``` 上述命令会从系统的软件仓库中获取并安装 `bc` 包。 #### 3. **Dockerfile 自动安装** 如果是在 Docker 环境下使用,可以在构建镜像时添加安装步骤。例如,在 Dockerfile 中加入以下内容: ```dockerfile RUN apt-get update && \ apt-get install -y bc && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* ``` (如果是其他发行版,请替换相应的包管理命令) #### 4. **验证安装成功** 成功安装后,可以通过以下命令验证: ```bash echo "scale=2; 5*6" | bc # 输出应为:30 ``` --- ### 错误原因分析 - **缺少必要组件**:`bc` 并非所有系统的基本组成部分,尤其是在精简化的容器或服务器环境中。 - **路径问题**:如果你确信已经安装了 `bc`,但仍报错,可能是 PATH 环境变量未包含其所在目录。此时可通过完整路径调用,比如 `/usr/bin/bc`。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值