每日 Cron 作业未执行

每日 Cron 作业未执行

我在以下 cron 作业下创建了以下 cron 作业/etc/cron.daily/backup-vivashost

#!/bin/bash

DATE=`date +%Y%m%d`

mkdir /var/lib/html-backup/www-$DATE/
cp -R /var/www/html/* /var/lib/backups/html-backup/www-$DATE/
find /var/lib/bakcups/html-backup/* -type f -mtime +5 -delete

在我创建这个之后的一天,没有/var/www/html/副本/var/lib/backups/html-backup/

是不是因为 shell 没有在sudo suroot 权限下运行?

你能告诉我它不起作用的原因吗?

谢谢!

答案1

首先,更正脚本文件中的路径名/etc/cron.daily/backupvivashost并应用 AB 的建议:

#!/bin/bash

DATE=$(date +%Y%m%d)
mkdir /var/lib/backups/html-backup/www-$DATE/
cp -pR /var/www/html/* /var/lib/backups/html-backup/www-$DATE/ 
find /var/lib/backups/html-backup -mtime +5 -delete

然后,使该文件可执行:

sudo chmod +x /etc/cron.daily/backupvivashost

然后执行该文件看看是否有效:

sudo /etc/cron.daily/backupvivashost

如果有效,看看它在被 crontab 调用时是否也会运行。该脚本需要sudo特权,因此它应该由 root crontab 调用。

sudo crontab -e

会这样做。如果不起作用,则默认编辑器或文件有问题/var/spool/cron/crontabs/root。要指定nano为编辑器,请执行以下操作

export EDITOR=/usr/bin/nano

当您设法使用编辑器打开 crontab 时,请输入要执行脚本的日期和时间。如果您想在 17:00 运行它,请输入:

0 17 * * * /etc/cron.daily/backupvivashost > /home/user/logfile 2>&1

这样,您将看到文件中出了什么问题/home/user/logfile。 如果一切正常,请从 crontab 中删除该行,因为该脚本现在无论如何都会每天运行。

相关内容