Cron 没有备份我的 Mongo DB

Cron 没有备份我的 Mongo DB

我在 Ubuntu 16.04 上使用 Cron 时遇到问题。我检查了 cron 服务是否已启动并正在运行,但创建 Mongo DB 备份的脚本可能未运行。

这是我的 /etc/crontab 文件内容:

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
*/10 * * * * root   test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.hourly )
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

这是我的 db_backup.sh 文件内容:

#!/bin/sh
DIR=`date +%m%d%y`
DEST=/db_backups/$DIR
mkdir $DEST
mongodump -h localhost:27017 -d dbname -u xxxx -p xxx -o $DEST

当我在终端中运行时:sh /etc/cron.hourly/db_backup.sh

它在 /db_backups/somedate 中创建具有目录日期名称的 Mongo DB 备份

为什么我的脚本不是每 10 分钟和 1 小时运行一次?
如您所见,我将脚本放在 cron.hourly 文件夹中,但 10 分钟或 1 小时都没有发生任何事情。

答案1

来自以下DEBIAN SPECIFIC部分man cron

   如上所述,这些目录下的文件必须通过
   一些健全性检查包括以下内容:可执行、由...所有
   root,不能由组或其他用户写入,并且如果是符号链接,则指向
   root 所拥有的文件。此外,文件名必须符合
   运行部分的文件名要求:它们必须完全由
   字母、数字,只能包含特殊符号下划线
   ('_')和连字符('-')。任何不符合这些要求的文件
   要求将不会由运行部件执行。例如,任何文件
   包含点的将被忽略。  这样做是为了防止 cron
   运行 Debian 包管理留下的任何文件
   系统在将 /etc/cron.d/ 中的文件作为配置文件处理时(即
   以 .dpkg-dist、.dpkg-orig 和 .dpkg-new 结尾的文件)。

答案2

我确实在这里更新了一些文件,并成功创建了 cron 来每天更新我的 Mongo DB,更多详细信息请见此处: https://stackoverflow.com/questions/44296616/cron-job-doesnt-work-ubuntu-16-04/44296690?noredirect=1#comment75599631_44296690

相关内容