linux系统cron定时任务

一、cron

cron是一个linux下的定时执行工具(相当于windows下的scheduled task),可以在无需人工干预的情况下定时地运行任务task。由于cron 是Linux的service(deamon),可以用以下的方法启动、关闭这个服务: 

/sbin/service crond start //启动服务 

/sbin/service crond stop //关闭服务 

/sbin/service crond restart //重启服务 

/sbin/service crond reload //重新载入配置 

 

你也可以将这个服务在系统启动的时候自动启动: 

在/etc/rc.d/rc.local这个脚本的末尾加上: 

/sbin/service crond start 

现在cron这个服务已经在进程里面了,我们就可以用这个服务了。

 

二、crontab

crontab位于/usr/bin/crontab。

 

cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明: 

crontab -u    //设定某个用户的任务计划,一般root用户在执行这个命令的时候需要此参数,不加-u选项则为当前用户;

crontab -l     //列出、查看某个用户任务计划的详细内容 

crontab -r    //删除某个用户的任务计划

crontab -e   //编辑某个用户的任务计划

crontab -e

查看执行结果:cat 执行结果文件(这里需要替换为你自己的执行结果文件的地址),从截图中可看出打印结果为ok,见下图

cat /home/autotest/cron.log

使用crontab -e 来制定计划任务,上面的例子表示在每月每日每分都执行’ echo "ok" >/home/autotest/cron.log’这样的任务。 

Cron的格式是这样的,每一行代表一个任务计划,总共分成两部分,前面部分为时间,后面部分要执行的命令。后面的命令不用多讲,至于前面的时间是有讲究的,这个时间共分为5段,用空格隔开(可以是多个空格),第一段表示分钟(0-59),第二段表示小时(0-23),第三段表示日(1-31),第四段表示月(1-12),第五段表示周(0-7,0或者7都可以表示为周日)。从左至右依次是:分,时,日,月,周(一定要牢记)!

 

crontab -e 实际上是打开了/var/spool/cron/username (如果是root则打开的是/var/spool/cron/root)这个文件。使用的是vim编辑器,所以要保存的话则在命令模式下输入:wq即可。但是,你千万不要直接去编辑那个文件,因为可能会出错,所以一定要使用crontab -e来编辑

查看已经设定的任务计划使用crontab -l,见下图

crontab -l

删除任务计划要用crontab -r,见下图

crontab -r

下面给出一些练习题,帮助你熟悉这个cron的应用。

1. 每天凌晨1点20分清除/var/log/slow.log这个文件;

2. 每周日3点执行’/bin/sh /usr/local/sbin/backup.sh’;

3. 每月14号4点10分执行’/bin/sh /usr/local/sbin/backup_month.sh’;

4. 每隔8小时执行’ntpdate time.windows.com’;

5. 每天的1点,12点,18点执行’/bin/sh /usr/local/sbin/test.sh’;

6. 每天的9点到18点执行’/bin/sh /usr/local/sbin/test2.sh’;

答案:

1. 20 1 * * * echo “”>/var/log/slow.log

2. 0 30 * * 0 /bin/sh /usr/local/sbin/backup.sh

3. 10 04 14 * * /bin/sh /usr/local/sbin/backup_month.sh

4. 0 */8 * * * ntpdate time.windows.com

5. 0 1,12,18 * * /bin/sh /usr/local/sbin/test.sh

6. 0 9-18 * * * /bin/sh /usr/local/sbin/test2.sh

Cron的这部分内容并不难,你只要会了这6道练习题,你就算掌握它了。这里要简单说一下,每隔8小时,就是用全部小时(0-23)去除以8,你仔细想一下结果,其实算出来应该是0,8,16三个数。当遇到多个数(分钟、小时、月、周)例如第5题,则需要用逗号隔开。而时间段是可以用’-‘的方式表示的。等设置好了所有的计划任务后需要查看一下crond服务是否启动,如果没有启动,需要启动它。

查看crond服务是否启动:

service crond status

running表示已启动,任务可正常执行。任务写完后最好自己测试一下。如服务未启动,文章第一部分已经提供了相关命令。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值