linux pam模块 cron,linux 中的计划任务之crontab

linux中的计划任务crontab

crontab:可以从定时重复工作中解脱出来

工作中遇到的困难

每分钟需要执行一个程序检查系统运行状态

每天凌晨需要对过去一天的业务数据进行统计

每个星期需要把日志文件备份

每个月需要把数据库进行备份

crontab 简介

用于设置周期性被执行的任务工具。

被周期性执行的任务我们称为Cron job

周期性执行的任务列表称为Cron Table

crontab 实践内容简介

相关工具

安装并检查crontab服务

crontab的基本组成

crontab的配置文件格式

crontab工具的使用

crontab 的日志

crontab 常见的错误

检查cron服务

检查crontab工具是否安装:crontab -l

检查crontab服务是否启动:service crond status

安装cron

yum install -y vixie-cron

yum install crontabs

案例

[root@xuexi-001 ~]# crontab -e

*/1 * * * * date >> /tmp/log.txt

# 每分钟都打印当前时间到log.txt 文件中

[root@xuexi-001 ~]# tail -f /tmp/log.txt

2018年 10月 05日 星期五 00:00:01 CST

2018年 10月 05日 星期五 00:01:01 CST

2018年 10月 05日 星期五 00:02:01 CST

# tail -f 显示文件的最后几行 ,tail -2 显示文件的最后两行

crontab 基本组成

crond 服务 --系统服务

配置文件 --以文件方式设置定时任务

配置工具 -- 用于调整定时任务

crontab 配置文件格式

* * * * * COMMAND

第一个 * :分钟 0-59

第二个 * :小时 0-23

第三个 * :日期 1-31

第四个 * :月份 1-12

第五个 * :星期 0-7(0或者7代表星期天)

案例

每晚的21:30重启apache

30 21 * * * service httpd restart

每月的1、10、22日的4:45重启apache

45 4 1,10,22 * * service httpd restart

每月的1到10日的4:45重启apache

45 4 1-10 * * service httpd restart

每隔两分钟重启apache

*/2 * * * * service httpd restart # 偶数分钟

1-59/2 * * * * service httpd restart # 奇数分钟

晚上11点到早上7点之间,每隔一小时重启apache

0 23-7/1 * * * service httpd restart

每天18:00到23:00之间每隔30分钟重启apahce

0,30 18-23 * * * service httpd restart

0-59/30 18-23 * * * service httpd restart

小结

* 表示任何时候都匹配

可用“A,B,C” 表示A或者B或者C时执行命令

可用“A-B”表示A-B之间时执行命令

可用“*/A” 表示A分钟(小时等)执行一次命令

crontab工具的使用

crontab 选项:

-u: define user

-e: edit user's crontab

-l: list user's crontab

-r: delete user's crontab

案例

1、给root 用户添加计划任务:每隔两分钟(奇数分钟)打印 “JISHU**********”

[root@xuexi-001 ~]# crontab -e

1-59/2 * * * * echo "JISHU***********************"

2、添加普通用户 crontester 并且添加计划任务:每隔两分钟(偶数分钟)打印“EVEN**************”

[root@xuexi-001 ~]# useradd crontester

[root@xuexi-001 ~]# crontab -e -u crontester

[root@xuexi-001 ~]# crontab -l -u crontester

0-58/2 * * * * echo "EVEN ************"

查看日志

[root@xuexi-001 ~]# tail -f /var/log/cron

Oct 5 00:51:01 xuexi-001 CROND[1906]: (root) CMD (echo "JISHU***********************")

Oct 5 00:52:01 xuexi-001 CROND[1911]: (crontester) CMD (echo "EVEN ************")

crontab 配置文件

全局(系统)配置文件

/etc/crontab

注意格式

crontab 日志

/var/log/cron 文件保存着cron的任务执行记录

[root@xuexi-001 ~]# cd /var/log/

您在 /var/spool/mail/root 中有新邮件

[root@xuexi-001 log]# ls cron*

cron cron-20180611 cron-20180926 cron-20181001

[root@xuexi-001 log]# ls -l cron*

-rw------- 1 root root 23564 10月 5 01:10 cron

-rw-------. 1 root root 10917 6月 11 21:08 cron-20180611

-rw-------. 1 root root 11543 9月 26 20:13 cron-20180926

-rw------- 1 root root 4043 10月 1 13:22 cron-20181001

[root@xuexi-001 log]# tail -f cron

Oct 5 01:04:01 xuexi-001 CROND[2001]: (crontester) CMD (echo "EVEN ************")

Oct 5 01:04:49 xuexi-001 crontab[2005]: (root) LIST (root)

Oct 5 01:04:49 xuexi-001 crontab[2005]: PAM pam_end: NULL pam handle passed

Oct 5 01:05:01 xuexi-001 CROND[2007]: (root) CMD (echo "JISHU***********************")

Oct 5 01:06:01 xuexi-001 CROND[2014]: (crontester) CMD (echo "EVEN ************")

Oct 5 01:07:01 xuexi-001 CROND[2020]: (root) CMD (echo "JISHU***********************")

Oct 5 01:08:01 xuexi-001 CROND[2026]: (crontester) CMD (echo "EVEN ************")

Oct 5 01:09:01 xuexi-001 CROND[2032]: (root) CMD (echo "JISHU***********************")

crontab 常见错误

环境变量

命令行双引号中使用%时,未加反斜线\

第三和第五个域之间执行的是“或”操作

分钟设置误用

第三和第五个域之间执行的是“或”操作

案例

四月的第一个星期日早晨1时59分钟运行a.sh

59 1 1-7 4 * test`date + \%w` -eq 0 && /root/a.sh

分钟设置误用

案例

两小时运行一次

错误示例:

* 0,2,4,6,8,10,12,14,16,18,20,22 * * * date

正确示例:

0 */2 * * * date

说明

在使用分钟的时候如果使用的分钟时使用 * 那么就是每两个小时的每分钟都会执行。正确的应该设置为 0,还有就是在使用分钟设置时,要注意分钟的约束,比如1-10/2,先满足1-10之间的每两分钟也就是1,3,5,7,9的时候执行,在11分钟的时候就不执行了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值