CRM系统|加入收藏|小博客
18560384436
>> 返回 您当前所在位置:首页 >> 支持中心 >> 详细内容

CRON:Debian定時執行命令

更新时间:2014-08-03 06:30:31点击次数:2766次字号:T|T
crontab 循環執行例行性命令 想要讓Debian定時執行命令就得靠crontab了! 它的功能類似微軟工作排程,可以在您設定的時間執行命令, 透過編寫設定檔可以組合出複雜的執行時段,讓命令的執行更有效率。 cron設定檔在Debian系統下的位置 /etc/crontab 1 /etc/crontab 大致內容如下 # /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the `cro

crontab 循環執行例行性命令

想要讓Debian定時執行命令就得靠crontab了!
它的功能類似微軟工作排程,可以在您設定的時間執行命令,
透過編寫設定檔可以組合出複雜的執行時段,讓命令的執行更有效率。

cron設定檔在Debian系統下的位置


大致內容如下

需要設定的是 # m h dom mon dow user command 下面的部份
由左至右代表的意義為

分 0-59
時 0-23
日 1-31
月 1-12
週 0-7
執行命令的使用者
命令

其中比較有意思的是週,0與7都代表星期日

而可以使用的特殊符號有

* (星號) 代表所有時間都接受
, (逗點) 代表同一個分類可以有多個值
– (減號) 代表在這個時段內執行
/n 代表每n個時間就執行一次

範例
30 12 * * * command:每天12:30執行command
0 6,12 15 * * command:每月15日的6:00與12:00執行command
10 8 1-15 6 * command:每年6月1至15日的8:10執行command
*/5 * * * 7 command:星期日每隔五分鐘執行一次command

定时器语法
就是上面计划任务的第一部分。它决定了何时执行计划任务。
它包含5部分:
1.分钟(0-59)
2.小时(0-23)
3.一个月的哪一天(1-31)
4.一年中的哪个月(1-12)
5.星期几(0是星期天)

星号
如果某个部分出现的是星号而不是数字,就是说明这个部分表示的时间全部会执行。
不太容易说清楚,看例子吧。

示例:
下面的计划任务会一直运行
* * * * * [command]

下面的计划任务会在每个小时的0分时运行(就是每小时执行一次)
0 * * * * [command]

下面依旧是一个每小时运行一次的计划任务。不过是在每个小时的一刻钟时运行的(1:15,2:15.。。)
15 * * * * [command]

下面的计划任务每天执行一次,在2:30分
30 2 * * * [command]

下面的计划任务是在每个月2号的午夜执行(比如:2010年2月2日00:00)
0 0 2 * * [command]

下面的计划任务会在每周一的每个小时0分钟时执行一次
0 * * * 1 [command]

下面的会每小时运行3次,在0分,10分,和20分时
0,10,20 * * * * [command]

下面是用除号“/”表示每多少运行一次。本例是每5分钟运行一次
*/5 * * * * [command]

还可以用“-”表示一个范围,如下表示5到10点的每个整点运行一次
0 5-10 * * * [command]

另外还有一个特殊的时间关键字“@reboot”,就是每次重启服务器时运行计划任务
@reboot [command]

设定和管理计划任务
编辑Crontab,来设定计划任务。使用下面的命令,会在vi里打开crontab的内容以供编辑:
crontab -e

如果你只想看看,不需要编辑,可以使用以下的命令
crontab -l

要删除crontab的内容,就是删除所有的计划任务,可以这样:
crontab -r

cron是个linux下的定时执行工具,能在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但他不自动起来,能用以下的方法启动、关闭这个服务:

编辑/etc/crontab 文件配置cron

  cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也
能运用cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是:

  大家注意”run-parts”这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。

Linux