crontab

维护用户的crontab文件


语法格式

crontab [-u user] file
crontab [-u user] [-l|-r|-e] [-i] [-s]

命令简介

crontab命令用于创建、显示或删除crontab文件,而crontab文件用于设置后台作业,交由cron守护进程自动调度运行。其中,file是一个crontab格式的后台作业定义文件,通过复制其中的内容,创建一个新的crontab文件。如果指定的文件名为“-”,表示利用键盘输入直接创建crontab文件。

利用第二种语法格式,可以显示或删除crontab文件,也可以利用VISUAL、EDITOR变量定义的编辑器或默认的编辑器(因系统而不同)直接编辑crontab文件。超级用户可以处理其他用户的crontab文件,普通用户只能处理自己的crontab文件。

除非特别限定,每个用户通常都可以拥有自己的crontab文件,但这些文件必须位于/var/spool/crontab/ cron目录中,且不能直接编辑。

用户级的crontab文件具有下列格式(系统crontab文件还需要在command字段前面插入一个用户名字段,表示以什么用户身份运行后台作业):

minute hour day month week command

每一行的前5个字段分别表示分(0~59)、小时(0~23)、日(1~31)、月(1~12)和周(0~7)。最后一个字段用于指定需要调度执行的命令或Shell脚本。

在crontab文件的每个时间字段中,还可以使用下列特殊字符,以增加时间定义的灵活性:

每一行的起始位置还可以采用注释符号“#”,增加一个注释行或空行。

从系统管理与安全的角度,可以利用/etc/cron.allow与/etc/cron.deny两个系统文件,限定用户是否能够提交cron作业。如果cron.allow文件存在,只有名列其中的用户才能使用crontab命令提交cron作业。如果cron.allow文件不存在,但cron.deny文件存在,只要不在cron.deny文件列举的用户名单之内,就可以使用crontab命令提交cron作业。如果这两个文件都不存在,只有超级用户才能使用crontab命令提交cron作业。

第二种方法是利用PAM认证机制,设置哪些用户能够(或不能)运行crontab命令,提交后台作业,哪些用户能够(或不能)维护/etc/cron.d目录中的系统cron作业。

命令选项

-e  用于调用环境变量VISUAL或EDITOR设定的编辑器,编辑当前用户的crontab文件。在退出编辑器时,修改后的crontab临时文件会自动安装到/var/spool/crontab/cron目录。超级用户可以编辑指定用户的crontab文件。

-i  用于限定“-r”选项,在实际删除crontab文件之前提请用户确认,直至输入y或Y之后,才真正开始删除crontab文件。

-l  显示当前用户的crontab文件。超级用户可以显示指定用户的crontab文件。

-r  删除当前用户的crontab文件。超级用户可以删除指定用户的crontab文件。

-u user  处理指定用户的crontab文件。如果未加此选项,crontab命令考察的是当前用户的crontab文件。注意,只有超级用户才能使用这个选项指定其他用户。

应用实例

1. 使用“-e”选项运行crontab命令,在/var/spool/cron目录中创建一个属于自己的crontab文件。然后利用编辑命令,按照crontab文件的语法格式输入作业定义。最后保存文件,退出编辑器,即可创建一个以当前用户名命名的crontab文件。

$ crontab -e

2. 使用“-l”选项运行crontab命令,显示当前用户自己的crontab文件内容(在每天的23:55,利用mysqldump命令自动备份数据库、数据库表及其业务数据)。

$ crontab -l
# Backup MySQL dadabase at 23:55 everyday.
55 23 * * * mysqldump --add-drop-table -u gqxing –phereiam books > /home/gqxing/backup/books.`date '+%m%d'` >> /home/gqxing/backup/backup.log 2>&1
$

索引:A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z