LINUX crontab 文件怎么写?

作者&投稿:崔怪 (若有异议请与网页底部的电邮联系)
linux crontab新手不明白一句写法~

1、每5分钟执行一次
*/5 * * * * /usr/sbin/ntpdate cn.pool.ntp.org;/sbin/hwclock -w;
另外小时位的*/1和*没有区别,都是每小时一次。
2、每月的1、11、21、31日的6:30执行一次ls命令
30 6 */10 * * ls
3、6-12点每三个小时
0 6-12/3 * 12 * /usr/bin/backup
4、23点-7点每个小时
0 23-7/1 * * * /usr/bin/bak
5、在某些unix,中,每20分钟执行一次,表示为:
0,20,40 * * * * 而不能采用*/n方式,否则出现语法错误

1、 crontab命令概念

crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。


cron 系统调度进程。 可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行。cron是系统主要的调度进程,可以在无需人工干预的情况下运行作业。
crontab命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个crontab文件来保存调度信息。系统管理员可以通过cron.deny 和 cron.allow 这两个文件来禁止或允许
用户拥有自己的crontab文件。



2、检查是否安装了crontab,如果提示未安装请自行安装,crontab安装包在系统光盘里面的pacekage文件夹 相对应的crontab安装包。






3、 crontab服务启动与关闭。






4、 全局配置文件:

crontab在/etc目录下面存在cron.hourly,cron.daily,cron.weekly,cron.monthly,cron.d五个目录和crontab,cron.deny二个文件。



cron.daily是每天执行一次的job
cron.weekly是每个星期执行一次的job
cron.monthly是每月执行一次的job
cron.hourly是每个小时执行一次的job
cron.d是系统自动定期需要做的任务
crontab是设定定时任务执行文件
cron.deny文件就是用于控制不让哪些用户使用Crontab的功能




5、 用户配置文件:

每个用户都有自己的cron配置文件,通过crontab -e 就可以编辑,一般情况下我们编辑好用户的cron配置文件保存退出后,系统会自动就存放于/var/spool/cron/目录中,文件以用户名命名.linux的cron服务是每隔一分钟去读取一次/var/spool/cron,/etc/crontab,/etc/cron.d下面所有的内容.






6、 crontab文件格式:

* * * * * command
minute hour day month week command
分 时 天 月 星期 命令



minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。




7、 特殊字符:

星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。

逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”。

中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”。

正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。




8、在home目录下编写一个test.sh脚本,脚本功能是把/home下ifcfg-eth0这个文本复制到/mnt目录下。






9、运行crontab –e 编写一条定时任务 */5 * * * * /home/test.sh 在每5分钟执行一次test.sh脚本。






10、查询当前用户定时任务或删除当前用户定时任务。






11、设置crond开机自动启动。






12、实例:


cron 配置计划任务的书写格式

分钟 小时 日 月 周 〔用户名〕 命令
说明:

第一段应该定义的是:分钟,表示每个小时的第几分钟来执行。范围是从0-59第二段应该定义的是:小时,表示从第几个小时来执行,范围是从0-23第三段应该定义的是:日期,表示从每个月的第几天执行,范围从1-31第四段应该定义的是:月,表示每年的第几个月来执行,范围从1-12第五段应该定义的是:周,表示每周的第几天执行,范围从0-6,其中 0表示星期日。每六段应该定义的是:用户名,也就是执行程序要通过哪个用户来执行,这个一般可以省略;第七段应该定义的是:执行的命令和参数。注:其中用户名可是省略,用户名定义的是程序用哪个用户来执行,比如mysql服务器,我们可以定义成以mysql用户来启动、停止、重新 启动,这时要写上用户名;不过对于cron来说意义不是太大,因为每个用户都有自己的cron配置文件。有些程序的启动必须用到root用户,这时我们就 可以修改root用户的cron配置文件就行了。在每个用户的配置文件中,不必指定用户名。

我们可以把计划任务写在全局性配置文件中,如果您想把一个计划放入全局性配置文件中,就得改发行版所对应的cron全局配置文件,比如Fedora 5的全局性配置文件是/etc/crontab文件;

每个用户也能定义自己的cron配置文件,用crontab -e 命令来定义;

举一例:让机器在每天8点30分重新启动;

关于时间格式中有7个字段。我们可以直接更改或者添加,当然这是系统任务调用。举个例子,比如我在每天的早上8点30分重新启动机器,就可以在
/etc/crontab中加入下面的两句,第一句就是注释了。以#号开始,后面写一个自己能知道这是什么任务的备注;

# reboot OS 30 8 * * * root /sbin/reboot
第一段应该定义的是:分钟,表示每个小时的第几分钟来执行。范围是从0-59
第二段应该定义的是:小时,表示从第几个小时来执行,范围是从0-23
第三段应该定义的是:日期,表示从每个月的第几天执行,范围从1-31
第四段应该定义的是:月,表示每年的第几个月来执行,范围从1-12
第五段应该定义的是:周,表示每周的第几天执行,范围从0-6,其中 0表示星期日。
每六段应该定义的是:用户名,也就是执行程序要通过哪个用户来执行,这个一般可以省略;
第七段应该定义的是:执行的命令和参数。

对比上面的例子就知道,30是不是分钟??8是不是小时?如果有*代表的地方,表示全部,也就是说,每个月,每天,每星期都要执行。root 表示用root用户执行,命令是/sbin/reboot ,也就是说,系统在每天 8点30分重新启动;

我们可以把每天8点30分重新启动的计划任务写入cron全局性配置文件中,也可以定义在root用户自己的cron配置文件中。如果定义在 root自己的配置文件,请用root身份来执行 crontab -e 来修改配置文件;crontab -e 进入修改配置文件的过程,其实和vi的用法一样。
让配置文件生效:如果让配置文件生效,还得重新启动cron,切记,既然每个用户下的cron配置文件修改后。也要重新启动cron服务器。

分钟 小时 日期 月份 周 命令

举例:
每天8点30分运行命令/tmp/run.sh
30 8 * * * /tmp/run.sh
每两小时运行命令/tmp/run.sh
0 */2 * * * /tmp/run.sh

设置的时候用crontab -e来设置
设置好后可以用crontab -l来查看
设置好后不用重启crontab服务,马上生效
但至少间隔一分钟,也就是说9:50分设置9:51分运行的命令,很可能是不会生效的,至少要设置9:52分运行。

你用哪个用户运行crontab -e,那么执行的时候就是以哪个用户身份执行。


大石桥市13914709181: linux 中的crontab使用方法 -
紫黄益心: 噢,你把这个文件保存下来嘛. 然后你运行 crontab -e 然后在vi编辑器里输入 */5 * * * * root ./temp.sh 然后保存就可以了. crontab的具体用法我复一个文档给你.噢,下午已有一个高手回答了,答得很简略也很实用.你可以听他的.***********...

大石桥市13914709181: LINUX crontab 文件怎么写?
紫黄益心: cron 配置计划任务的书写格式 分钟 小时 日 月 周 〔用户名〕 命令 说明: 第一段应该定义的是:分钟,表示每个小时的第几分钟来执行.范围是从0-59第二段应该定义的是:小时,表示从第几个小时来执行,范围是从0-23第三段应该定义的是...

大石桥市13914709181: linux 怎么定crontab -
紫黄益心: 1.作用 使用crontab命令可以修改crontab配置文件,然后该配置由cron公用程序在适当的时间执行,该命令使用权限是所有用户.2.格式 crontab [-u user] {-l | -r | -e}3.主要参数-e:执行文字编辑器来设定时程表,内空的文字编辑器是vi-r:删除目前...

大石桥市13914709181: linux crontab在哪 -
紫黄益心: crontab位于/usr/bin/crontab,是cron用来设定具体任务的命令程序.下面是这个命令的一些参数与说明: 查看当前用户的crontab,输入 crontab -l;编辑crontab,输入 crontab -e;删除crontab,输入 crontab -r-------------------------------------------------...

大石桥市13914709181: Linux系统利用Crontab命令实现定时重启怎么做?
紫黄益心: Crontab是一个很方便的在unix/linux系统上定时(循环)执行某个任务的程序 使用cron服务,用 service crond status 查看 cron服务状态,如果没有启动则 service crond ...

大石桥市13914709181: linux下备份文件
紫黄益心: (1)第一种方法: 用户应使用crontab –e 命令创建crontab文件.格式如下: 0 0 * * sun cp –r /user/backup /tmp (2)第二种方法: 用户先在自己目录下新建文件file,文件内容如下: 0 * * sun cp –r /user/backup /tmp 然后执行 crontab file 使生效.

大石桥市13914709181: Linux里用户的crontab在哪里? -
紫黄益心: /var/spool/cron/下以用户名命名的文件 今天希赛的公开课上听老师说了

大石桥市13914709181: linux crontab怎么注释 -
紫黄益心: 注释直接在行首加#就可以了

大石桥市13914709181: linux中怎么开启crontab -
紫黄益心: 的语法:分 时 日 月 周 命令.例子:00 08 * * * mkdir /home/root/newfolder 这个例子的意思是在每天的早上八点钟的时候创建一个文件夹newfolder.*是什么意思?碰上*系统就是一直执行.如果*在分的地方那就危险了,意思就是每分钟都执行...

大石桥市13914709181: 如何使用Linux的Crontab执行PHP脚本 -
紫黄益心: Linux中crontab是实现定时执行的指令,利用这个指令我们就可以定时执行某一个php文件,从而实现用PHP做Linux自动执行脚本.如何用PHP作Linux自动执行脚本?在安装PHP的时候,会产生一个可执行文件,文件名为php.将它 copy 到 /...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网