Crontab 无法在 CentOS 7 上运行

thi*_*405 4 cron centos7

我使用的是 CentOS 7,并安装了“cronie”

yum install cronie
Run Code Online (Sandbox Code Playgroud)

我有一个shell来备份我的主文件夹,shell的内容(当然,backup.sh是775)

#!/bin/bash
#START
TIME=`date +%Y-%m-%d_%Hh%M`          
FILENAME=backupHome_123.30.150.29_$TIME.tar.gz 
SRCDIR=/home                    
DESDIR=/backup            
tar -cpvzf $DESDIR/$FILENAME $SRCDIR
#END
Run Code Online (Sandbox Code Playgroud)

并添加到 crontab -e

00 2 * * * /bin/bash /backup/backup.sh
Run Code Online (Sandbox Code Playgroud)

但 crontab 不执行任何操作。当我仅检查 /var/log/cron 处的日志时,出现类似的情况,并且没有更多错误或处理日志

May  1 00:26:08 app crontab[12041]: (root) END EDIT (root)
May  1 00:33:21 app crontab[12086]: (root) BEGIN EDIT (root)
May  1 00:34:25 app crontab[12086]: (root) END EDIT (root)
Run Code Online (Sandbox Code Playgroud)

任何人都可以给我一些让 crontab 工作的建议吗?谢谢。

Nag*_*gev 6

我发现最有用的信息实际上是由

systemctl status crond
Run Code Online (Sandbox Code Playgroud)

结果表明,由于“未经授权的 SELinux 上下文”错误,它无法正确加载。


sak*_*tto 5

您希望确保 cron 已启动并且在服务器重新启动时也启动,因此您需要在 CentOS 7 上执行两个命令来确保这一点:

systemctl enable crond && systemctl restart crond
Run Code Online (Sandbox Code Playgroud)

如果你习惯使用sudo,可以在上面的命令前面加上sudo。像这样:

sudo systemctl enable crond && systemctl restart crond
Run Code Online (Sandbox Code Playgroud)

您将从系统获得确认,例如:

创建从 /etc/systemd/system/multi-user.target.wants/crond.service 到 /usr/lib/systemd/system/crond.service 的符号链接。

最后检查 cron 是否正在运行 pgrep cron