Linux——任务调度(crontab命令)

在实际工作中,系统的定时任务一般都是需要重复执行的,这就需要使用 crontab 命令来执行循环定时任务。而crontab 命令需要crond服务支持,crond是在Linux下用来周期性的执行某些任务的一个守护线程。和Windows中的计划任务类似。而这种系统在某个时间执行特定的命令或程序就是任务调度。
Linux下任务调度可分为两类:
系统任务工作调度:系统周期性所要执行的工作。如:写缓存数据到硬盘、清理日志等。
用户任务调度:用户定期要执行的工作。如:数据库的备份。

  • crontab [选项]
     		常用选项:
     				-e	: 编辑crontab定时任务
     				-l  : 查询crontab任务
     				-r  : 删除当前用户所有的crontab任务
              service crond restart -----重启任务调度
    

实例: 每分钟执行 详细遍历 etc 目录下的文件 并将遍历信息写入另外一个文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以上步骤详细解释:
1> 执行 crontab -e 命令,打开一个空文件,操作方式和 vi 类似。
2> 将任务( */1 * * * * ls -l /etc >> home/liang/Linux_Study/to.txt )输入到调度文件 。保存调度文件并退出。
3> 至此后,每一分钟都会自动的调用 ls -l /etc >> home/liang/Linux_Study/to.txt。
crontab -e 命令时每个用户都可以执行的命令,不同的用户可以执行自己的定时任务,这就是用户任务调度 。 这个定时任务实际就会写入 /var/spool/cron/ 目录中,每个用户的定时任务用自己的用户名进行区分。

5个“*”占位符的具体含义
项目含义范围
第一个“*”一小时当中的第几分钟0~59
第二个“*”一天当中的第几小时0~23
第三个“*”一个月当中的第几天1~31
第四个“*”一年当中的第几个月1~12
第五个“*”一周当中的星期几0~7(0和7都代表星期日)
时间特殊符号
特殊符号含义
*(星号)代表任何时间。比如第一个"*"就代表一小时种每分钟都执行一次的意思。
,(逗号)代表不连续的时间。比如"0 8,12,16***命令"就代表在每天的 8 点 0 分、12 点 0 分、16 点 0 分都执行一次命令。
-(中杠)代表连续的时间范围。比如"0 5 ** 1-6命令",代表在周一到周六的凌晨 5 点 0 分执行命令。
/(正斜线)代表每隔多久执行一次。比如"/10***命令",代表每隔 10 分钟就执行一次命令。
crontab举例
时间含义
45 22 ***命令在 22 点 45 分执行命令
0 17 ** 1命令在每周一的 17 点 0 分执行命令
0 5 1,15**命令在每月 1 日和 15 日的凌晨 5 点 0 分执行命令
40 4 ** 1-5命令在每周一到周五的凌晨 4 点 40 分执行命令
*/10 4 ***命令在每天的凌晨 4 点,每隔 10 分钟执行一次命令
0 0 1,15 * 1命令在每月 1 日和 15 日,每周一个 0 点 0 分都会执行命令,注意:星期几和几日最好不要同时出现,因为它们定义的都是天,非常容易让管理员混淆
系统crotab设置

需要系统来执行的任务,需要我们去编辑 /etc/crontab 配置文件,CentOS7的配置文件如下图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值