将 Cron 与 Bash 脚本一起使用时导致多封邮件的原因
What causes multiple Mails when using Cron with Bash Script
我制作了一个小 bash 脚本来备份我的 nextcloud 文件,包括来自 ubuntu 18.04 服务器的数据库。我希望每天都执行备份。工作完成后,如果工作完成,我想重新收到 一封邮件 (无论成功与否,都需要附加邮件)。使用当前脚本,我收到了 将近 20 封邮件,但我不明白为什么。有什么想法吗?
我的 cronjob 看起来像这样:
* 17 * * * "/root/backup/"backup.sh >/dev/null 2>&1
我的bash脚本
#!/usr/bin/env bash
LOG="/user/backup/backup.log"
exec > >(tee -i ${LOG})
exec 2>&1
cd /var/www/nextcloud
sudo -u www-data php occ maintenance:mode --on
mysqldump --single-transaction -h localhost -u db_user --password='PASSWORD' nextcloud_db > /BACKUP/DB/NextcloudDB_`date +"%Y%m%d"`.sql
cd /BACKUP/DB
ls -t | tail -n +4 | xargs -r rm --
rsync -avx --delete /var/www/nextcloud/ /BACKUP/nextcloud_install/
rsync -avx --delete --exclude 'backup' /var/nextcloud_data/ /BACKUP/nextcloud_data/
cd /var/www/nextcloud
sudo -u www-data php occ maintenance:mode --off
echo "###### Finished backup on $(date) ######"
mail -s "BACKUP" name@domain.com < ${LOG}
您确定 CRON 字符串吗?对我来说,这意味着“在 17 点后的每一分钟”。
应该更像0 17 * * *
吧?
我制作了一个小 bash 脚本来备份我的 nextcloud 文件,包括来自 ubuntu 18.04 服务器的数据库。我希望每天都执行备份。工作完成后,如果工作完成,我想重新收到 一封邮件 (无论成功与否,都需要附加邮件)。使用当前脚本,我收到了 将近 20 封邮件,但我不明白为什么。有什么想法吗?
我的 cronjob 看起来像这样:
* 17 * * * "/root/backup/"backup.sh >/dev/null 2>&1
我的bash脚本
#!/usr/bin/env bash
LOG="/user/backup/backup.log"
exec > >(tee -i ${LOG})
exec 2>&1
cd /var/www/nextcloud
sudo -u www-data php occ maintenance:mode --on
mysqldump --single-transaction -h localhost -u db_user --password='PASSWORD' nextcloud_db > /BACKUP/DB/NextcloudDB_`date +"%Y%m%d"`.sql
cd /BACKUP/DB
ls -t | tail -n +4 | xargs -r rm --
rsync -avx --delete /var/www/nextcloud/ /BACKUP/nextcloud_install/
rsync -avx --delete --exclude 'backup' /var/nextcloud_data/ /BACKUP/nextcloud_data/
cd /var/www/nextcloud
sudo -u www-data php occ maintenance:mode --off
echo "###### Finished backup on $(date) ######"
mail -s "BACKUP" name@domain.com < ${LOG}
您确定 CRON 字符串吗?对我来说,这意味着“在 17 点后的每一分钟”。
应该更像0 17 * * *
吧?