1.9 KiB
1.9 KiB
简介
管理crontab文件。每个用户都可以创建自己的crontab文件,在/var/spool/cron/crontabs
下有crontab文件的备份,但不应直接编辑/var/spool/cron/crontabs
下的文件。
如果存在/etc/cron.allow
,则所有需要运行crontab的用户必须加入/etc/cron.allow
。如果存在/etc/cron.deny
,则所有需要运行crontab的用户都不得加入/etc/cron.deny
。
用法
crontab [-u user] file
crontab [-u user] [选项]
选项
-u user # 指定用户。如不使用此选项,则默认为当前用户。
-l # 将crontab文件的内容显示到标准输出上。
-r # 删除当前crontab。
-e # 编辑当前crontab文件,退出编辑器后crontab文件会自动生效。
-i # 与-r连用,弹出提示要求用户确认是否删除。
crontab文件
# min hour day mounth week command
# min代表分钟,取值范围0~59
# hour代表小时,取值范围0~23
# day代表上期,取值范围1~31
# month取值范围1~12
# week取值范围0~7,这里0和7都代表星期日
# command是要执行的命令
# 星号(*)代表所有可能的值
# 逗号(,)用来隔开值,或隔开取值范围。如"1,2,5"或"1-3,7-9"。
# 横杠(-)表示两个值之间的取值范围。如"8-10"代表"8,9,10"。
# 斜杠(/)指定时间的频率。如"0-23/2"代表"0,2,4,6,8,10,12,14,16,18,20,22",也相当于"*/2"。
# 举例:每周一早上5点备份home目录
0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
问题解决
-
脚本可以手动执行而crontab没有执行。
依次排除了脚本的环境变量的问题,crontab格式的问题,cron守护进程的问题。发现最终的原因是脚本里第一行#后面少了!,此时脚本可手动执行,但在crontab不能执行。猜测原因是我的环境里有bash,而crontab的环境里没有bash,所以第一行的错误导致后面的命令均不能执行。