把备份脚本放到 /etc/cron.daily 这个目录下面就可以每日备份了。
但是我放进去后失败了,他没有运行。
我的备份脚本是 /etc/cron.daily/backup.sh
,居然没有运行。
我第一次碰见,Google 找了下没找到解决方法。
下面参照 Google 后的资料,慢慢排查出来。
1、/etc/cron.daily 啥时候执行的
# cat /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
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 )
#
看了这个信息后,/etc/cron.daily
是在每天 06:25 的时候执行。
# ls /usr/sbin/anacron
ls: cannot access '/usr/sbin/anacron': No such file or directory
anacron
不存在,说明是使用 run-parts --report /etc/cron.daily
来执行的。
我们看一下 run-parts
的文档
# run-parts --help
Usage: run-parts [OPTION]... DIRECTORY
--test print script names which would run, but don't run them.
--list print names of all valid files (can not be used with
--test)
-v, --verbose print script names before running them.
--report print script names if they produce output.
--reverse reverse execution order of scripts.
--exit-on-error exit as soon as a script returns with a non-zero exit
code.
--lsbsysinit validate filenames based on LSB sysinit specs.
--new-session run each script in a separate process session
--regex=PATTERN validate filenames based on POSIX ERE pattern PATTERN.
-u, --umask=UMASK sets umask to UMASK (octal), default is 022.
-a, --arg=ARGUMENT pass ARGUMENT to scripts, use once for each argument.
-V, --version output version information and exit.
-h, --help display this help and exit.
可以通过 run-parts --test
或者 run-parts --list
发现 这两个命令,都没能出现脚本的名字。
于是我把 .sh
去掉, 然后就显示出来了。
第二天,他真的运行了。
网友评论