我在以下 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 su
root 权限下运行?
你能告诉我它不起作用的原因吗?
谢谢!
答案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 中删除该行,因为该脚本现在无论如何都会每天运行。