我有一个 Digital Ocean Ubuntu (18.04) LAMP 服务器。
我有一个简单的 bash 脚本来创建备份目录并转储站点 SQL 文件和所有文件的 tar.gz。
Crontab 入口
# Backup files and database at midnight every night
0 0 * * * . /var/www/mysite.com/daily-backup.sh
只有一个cron守护进程在此服务器上运行。
es@rental-link-production:/var/backups/rentallink$ ps aux | grep cron
es 606 0.0 0.0 14856 1100 pts/0 S+ 10:32 0:00 grep --color=auto cron
root 959 0.0 0.0 31852 3160 ? Ss Mar25 0:02 /usr/sbin/cron -f
但在一夜之间,它几乎每分钟都在运行,直到凌晨 12:20。此服务器上没有其他 cron 脚本。
es@mysite-production:/var/backups/mysite$ ls -lah
total 52K
drwxr-xr-x 13 es es 4.0K Apr 9 12:20 .
drwxr-xr-x 3 root root 4.0K Apr 10 06:25 ..
drwxrwxr-x 4 es es 4.0K Apr 9 12:02 2019-04-09-1202
drwxrwxr-x 4 es es 4.0K Apr 9 12:03 2019-04-09-1203
drwxrwxr-x 4 es es 4.0K Apr 9 12:07 2019-04-09-1207
drwxrwxr-x 4 es es 4.0K Apr 9 12:08 2019-04-09-1208
drwxrwxr-x 4 es es 4.0K Apr 9 12:11 2019-04-09-1211
drwxrwxr-x 4 es es 4.0K Apr 9 12:13 2019-04-09-1213
drwxrwxr-x 4 es es 4.0K Apr 9 12:14 2019-04-09-1214
drwxrwxr-x 4 es es 4.0K Apr 9 12:15 2019-04-09-1215
drwxrwxr-x 4 es es 4.0K Apr 9 12:16 2019-04-09-1216
drwxrwxr-x 4 es es 4.0K Apr 9 12:18 2019-04-09-1218
drwxrwxr-x 4 es es 4.0K Apr 9 12:20 2019-04-09-1220
奇怪的是,在具有相同设置的登台服务器上,它在午夜运行了两次,而不是只运行了一次——这仍然比我预期的多了一次。
es@mysite-staging:/var/backups/mysite$ ls -lah
total 16K
drwxr-xr-x 4 es es 4.0K Apr 9 12:20 .
drwxr-xr-x 3 root root 4.0K Apr 10 06:25 ..
drwxrwxr-x 4 es es 4.0K Apr 9 12:01 2019-04-09-1201
drwxrwxr-x 4 es es 4.0K Apr 9 12:20 2019-04-09-1220
如果作业失败并且 Linux 试图重新启动它,我几乎可以期望看到这个...但这是几个 mkdirs、一个 mysqldump 调用和一个 tar 调用。 CPU 在过去 24 小时内未超过 10%。它并没有耗尽资源。
有什么想法吗?
最佳答案
检查这些情况: 1-其他用户调用它吗? 2-它会调用自己吗? 3-它是否为重复设置了运动条件?
为了测试,在名称末尾添加 whoami
。
对于另一个测试,使用 ps -A
来检查 crond 是否运行了多次。
关于计划在午夜执行的 BASH 脚本 cron - 每分钟运行一次,直到 12 :20am,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55602278/