为什么我设置crontab每天运行一次,但是却运行两次?

为什么我设置crontab每天运行一次,但是却运行两次?

我使用 CentOS 作为 Wordpress 网络服务器。我希望每天备份一次媒体和 SQL,因此我编辑 crontab 如下:

[john@cent ~]$ crontab -e
TZ=Asia/Ho_Chi_Minh
15 3 * * * /bin/sh /home/john/deploy/job/backup-mysql.sh 2>&1 >> /home/john/deploy/job/log/backup-mysql.log
30 3 * * * /bin/sh /home/john/deploy/job/backup-media.sh 2>&1 >> /home/john/deploy/job/log/backup-media.log

我的意思是每天运行这些作业一次,但实际上它运行两次:

[john@cent ~]$ cd deploy/mediadump/
[john@cent mediadump]$ ls
07-08-2015_03.30.01.uploads.tar.gz
07-08-2015_14.38.01.uploads.tar.gz
08-08-2015_03.30.01.uploads.tar.gz
08-08-2015_14.38.01.uploads.tar.gz
09-08-2015_03.30.01.uploads.tar.gz
09-08-2015_14.38.01.uploads.tar.gz

我做错什么了?

更新 sqldump 作业的运行方式与 mediadump 相同。我按照 @lain 和 @Paul 的建议列出了文件,再次检查日志文件,我发现 root 用户在 14:38 为 media 运行作业,在 14:36 为 sql 运行作业:

[root@cent datadump]# ls -l
-rw-r--r-- 1 john john 2391638 Th08  7 03:15 07-08-2015_03.15.01.sql
-rw-r--r-- 1 root  root  2437070 Th08  7 14:36 07-08-2015_14.36.01.sql
-rw-r--r-- 1 john john 2560015 Th08  8 03:15 08-08-2015_03.15.01.sql
-rw-r--r-- 1 root  root  2667435 Th08  8 14:36 08-08-2015_14.36.01.sql
-rw-r--r-- 1 john john 2618756 Th08  9 03:15 09-08-2015_03.15.01.sql
-rw-r--r-- 1 root  root  2928775 Th08  9 14:36 09-08-2015_14.36.01.sql

之前,我通过编辑 /etc/crontab 以 root 用户身份测试了 crontab。在切换到 John 运行所需作业之前,我忘记清除该文件了。我修复了它。非常感谢 @lain、@Paul Haldane。

答案1

看起来您以两个不同的用户身份运行同一项作业。日志文件应该能够帮助您追踪到这一点。转储文件上的时间戳证实了有多个用户。

相关内容