Centos

為什麼我每天設置一次 crontab 執行兩次?

  • August 14, 2015

我將 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 為媒體執行作業,在 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。

您似乎正在與兩個不同的使用者執行相同的作業。日誌文件應該能夠幫助您追踪它。轉儲文件上的時間戳確認多個使用者。

引用自:https://serverfault.com/questions/712919