CRONTAB

时间:2019-04-29 03:17:38  来源:igfitidea点击:

在Linux上安排任务

Crontab

Crontab是一个程序,系统管理员和用户使用它来计划在指定的时间或重复的时间运行作业。Crontab创建cron守护程序使用调度的表。Crontab文件是在/ var / spool / cron / crontabs区域中创建的,但是,这些文件不能直接编辑。通过一些特殊命令进行编辑。

要使用cron功能,必须在/etc/cron.allow文件中包含用户ID。如果此文件不存在,但/etc/cron.deny文件存在,则您不能出现在/etc/cron.deny文件中才能使用此命令。如果这两个文件都存在,则允许文件将优先于拒绝文件。默认情况下,始终允许root用户创建crontab。

使用crontab时,可以使用四个基本命令。它们是:

crontab -e-为当前用户编辑crontab。退出编辑器时会生成crontab文件。

crontab -l-列出当前用户的crontab文件的内容。

crontab -r- 删除当前用户的crontab。

crontab -u用户标识 -您可以使用-u标志来指定指定用户。

crontab文件的基本结构

* * * * * Command to be Executed
- - - - -
| | | | |
| | | | +----- Day of Week (0 - 6) (Sunday=0)
| | | +------- Month (1 - 12)
| | +--------- Day of Month (1 - 31)
| +----------- Hour (0 - 23)
+------------- Minutes (0 - 59)

crontab的基本语法包括五个字段:分钟,小时,月份,月份,星期几和要执行的命令。

作为测试,我创建了一个crontab,它将在2月18日星期一21:15时运行命令ls -ld / tmp> /home/john/mycront.txt

john@john-desktop:~$ crontab -e
no crontab for john - using an empty one
crontab: installing new crontab
john@john-desktop:~$ crontab -l

15 21 18 2 1 ls -ld /tmp > /home/john/mycront.txt

验证, 在/var/log/syslog中检查条目的输出:

Feb 18 21:13:41 john-desktop crontab[3222]: (john) LIST (john)
Feb 18 21:15:01 john-desktop CRON[3231]: (john) CMD (ls -ld /tmp > /home/john/mycront.txt)

同时可以看到生成了新文件mycront.txt

john@john-desktop:~$ ls -l myc*
-rw-rw-r-- 1 john john 48 Feb 18 21:15 mycront.txt
john@john-desktop:~$ cat mycront.txt
drwxrwxrwt 14 root root 20480 Feb 18 21:15 /tmp
15,30 21 18,19,20 2 * ls -ld /tmp > /home/john/mycront.txt

在上面的示例中,我们将在2月18日,19日和20日的21:15hrs和21:30hrs执行相同的命令。

Anacron

Anacron是与cron类似的调度程序。cron和anacron之间的主要区别是anacron不会假设您的计算机将一天24小时运行。Anacron提供了系统范围的目录,该目录可以每小时,每天,每周或每月运行脚本。您可以将需要执行的脚本放在以下目录中:

drwxr-xr-x 2 root root 4096 Feb 12 19:59 cron.daily
drwxr-xr-x 2 root root 4096 Jul 4 2012 cron.hourly
drwxr-xr-x 2 root root 4096 Jul 4 2012 cron.monthly
drwxr-xr-x 2 root root 4096 Jan 9 21:33 cron.weekly

这些目录中的所有脚本都以root身份运行。您可以在文件名前添加一个数字,以标识脚本应以的顺序运行。