我创建了一个简单的脚本/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 文件将向您输出错误。