在linux中定时执行任务

上一篇 / 下一篇  2014-07-01 14:04:27 / 个人分类:工具备忘录

cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。
由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置

下面介绍利用crontab怎么来定时执行任务

第一:编写shell脚本
利用vi来创建一个.sh的可执行文件,再利用chmod(700)来设置权限,让它可以执行,创建完后测试下可以行的同。

第二:利用crontab -e 来创建定时脚
看看crontab的命令
cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除某个用户的cron服务
crontab -e //编辑某个用户的cron服务

比如说root查看自己的cron设置:crontab -u root -l
再例如,root想删除toor的cron设置:crontab -u toor -r
在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e

在命令行下输入:  crotab -e
然后回车后,会出现一个vi编辑器界面,在这个里面编写你的计划任务。计划任务的格式为:
分 时 天 月 周 命令
下面给你举个例子:
50 7 * * * /sbin/service sshd start 每天早上7:50开启SSH服务
50 22 * * * /sbin/service sshd stop 每天晚上22:50关闭ssh服务
下面是分 时 天 月 周的取值范围:
分钟 取值为从0到59之间的任意整数
小时 取值为从0到23之间的任意整数
日期 取值为从1到31之间的任意整数
月份 取值为从1到12之间的任意整数
星期 取值为从0到7之间的任意整数,0或7代表星期日
时间数值的特殊表示方法
* 表示该范围内的任意时间
, 表示间隔的多个不连续时间点
- 表示一个连续的时间范围
/ 指定间隔的时间频率
应用示例
0 17 * * 1-5 周一到周五每天17:00
30 8 * * 1,3,5 每周一、三、五的8点30分
0 8-18/2 * * * 8点到18点之间每隔2小时
0 * */3 * * 每隔3天
cron有两个配置文件,一个/etc/crontab,是一个全局配置文件,一个是crontab命令生成生成的配置文件,是属于用户级的。 
一般对管理员来说,只要使用全局配置的/etc/crontab就配置文件就可以了,我们去打开配置文件看看: 
SHELL=/bin/bash 
PATH=/sbin:/bin:/usr/sbin:/usr/bin 
MAILTO=root 
HOME=/ 
# run-parts 
01 * * * * root run-parts /etc/cron.hourly 
02 4 * * * root run-parts /etc/cron.daily 
22 4 * * 0 root run-parts /etc/cron.weekly 
42 4 1 * * root run-parts /etc/cron.monthly 
分析一下这个文件: 
/* 设置基于什么shell来运行,我们这里是基于bash shell */ 
SHELL=/bin/bash 
/* 指定目录中有次文件的命令时,不需要完整目录路经 */ 
PATH=/sbin:/bin:/usr/sbin:/usr/bin 
/* 使用cron实际工作时,见通过邮件来同志root用户 */ 
MAILTO=root 
/* 与/etc/crontab配置文件相关的主目录为根目录 */ 
HOME=/ 
/* 好了,这里是关键是,下面的是要指定什么时间运行什么目录下的任务,run-parts命令是运行指定目录下的每个脚本 */ 
# run-parts 
/* 这一句是在每天每小时过后一分钟运行/etc/cron.hourly目录中的每个脚本文件 */ 
01 * * * * root run-parts /etc/cron.hourly 
/* 在每天凌晨4点2分运行/etc/cron.daily目录中的每个脚本文件 */ 
02 4 * * * root run-parts /etc/cron.daily 
/* 在每个星期天凌晨4点22分运行/etc/cron.weekly目录中的每个脚本文件 */ 
22 4 * * 0 root run-parts /etc/cron.weekly 
/* 在每个月的第一天凌晨4点42分运行/etc/cron.monthly目录中的每个脚本文件 */ 
42 4 1 * * root run-parts /etc/cron.monthly
任何字段中的星号是通配符,例如,如果第一个字段包括星号,则特定若无其事在可能的每一分钟运行。如果要指定时间范围,比如上午8点到下午4点,则可以见第二个字段设置为8~16。如果要隔一天运行任务,则可以将第三个字段设置为*/2。

TAG: Linux

 

评分:0

我来说两句

我的栏目

日历

« 2024-04-29  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 16980
  • 日志数: 17
  • 建立时间: 2014-07-01
  • 更新时间: 2014-12-15

RSS订阅

Open Toolbar