为什么 cron 不执行脚本?

为什么 cron 不执行脚本?

我创建了一个简单的脚本/root/测试.sh文件:

#!/bin/bash
echo "hello"
mkdir newdir

下一个:

chmod +x /root/test.sh

我们可以确信,test.sh 属于root 所有:

root@ubuntu-s-1vcpu-1gb-ams3-01:~# find /root -user root /root
/root/test.sh

因此,我的 crontab:

root@ubuntu-s-1vcpu-1gb-ams3-01:~# crontab -l
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin

* * * * * /root/test.sh

(我也尝试过运行部件:

* * * * * root run-parts /root/test.sh

没有任何方法可以运行我的脚本,不会输出“hello”并且不会创建newdir目录。

服务 cron 状态:

root@ubuntu-s-1vcpu-1gb-ams3-01:~# service cron status
● cron.service - Regular background program processing daemon
   Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-08-18 15:46:42 UTC; 23h ago
     Docs: man:cron(8)
 Main PID: 1340 (cron)
    Tasks: 1
   Memory: 26.8M
      CPU: 7.982s
   CGroup: /system.slice/cron.service
           └─1340 /usr/sbin/cron -f

Aug 19 15:16:01 ubuntu-s-1vcpu-1gb-ams3-01 CRON[439]: (root) CMD (root run-parts /root/test.sh)
Aug 19 15:16:01 ubuntu-s-1vcpu-1gb-ams3-01 CRON[438]: (CRON) info (No MTA installed, discarding output)
Aug 19 15:16:01 ubuntu-s-1vcpu-1gb-ams3-01 CRON[438]: pam_unix(cron:session): session closed for user root
Aug 19 15:17:01 ubuntu-s-1vcpu-1gb-ams3-01 CRON[1032]: pam_unix(cron:session): session opened for user root by (uid=0)
Aug 19 15:17:01 ubuntu-s-1vcpu-1gb-ams3-01 CRON[1031]: pam_unix(cron:session): session opened for user root by (uid=0)
Aug 19 15:17:01 ubuntu-s-1vcpu-1gb-ams3-01 CRON[1033]: (root) CMD (root run-parts /root/test.sh)
Aug 19 15:17:01 ubuntu-s-1vcpu-1gb-ams3-01 CRON[1032]: (CRON) info (No MTA installed, discarding output)
Aug 19 15:17:01 ubuntu-s-1vcpu-1gb-ams3-01 CRON[1032]: pam_unix(cron:session): session closed for user root
Aug 19 15:17:01 ubuntu-s-1vcpu-1gb-ams3-01 CRON[1034]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Aug 19 15:17:01 ubuntu-s-1vcpu-1gb-ams3-01 CRON[1031]: pam_unix(cron:session): session closed for user root

cron 每隔几分钟就会尝试执行某项操作,但是,我看到了消息

root 用户的会话已关闭

沒有任何事发生。

我还必须做什么?

========================================================================

删除字符串后[电子邮件保护]脚本正确创建了 newdir 目录。但尚未打印字符串“hello”。因此它可以工作,但 #echo“hello”字符串中存在一些问题。

答案1

运行crontab -e并输入以下行:

*/1 * * * * /root/test.sh 1> /dev/null 2> /root/test.err

该命令每分钟运行一次。如果命令不成功,test.err 文件将向您输出错误。

相关内容