Crontab定时器

13-Crontab定时器

1 概述

安装部署centos,默认就开启了

1.1 概念

crontab命令 被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务,提交和管理用户的需要周期性执行的任务。

1.2 命令

crontab 选项 参数
1.2.1 选项
-e:编辑该用户的计时器设置; 使用较多
-l:列出该用户的计时器设置; 
-r:删除该用户的计时器设置;
-u<用户名称>:指定要设定计时器的用户名称。
1.2.2 参数

crontab的参数一般是用来指定执行那个crontab的,类似于我们常说的配置文件

1)系统任务调度

系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。

[root@attack ~]vi /etc/crontab

# 前面几行属于环境变量
SHELL=/bin/bash  告知shell环境
PATH=/sbin:/bin:/usr/sbin:/usr/bin 系统环境变量
MAILTO=root 邮件发给那个用户

# For details see man 4 crontabs
# 这里是crontab的定时任务模版 我们参照该模版设置
# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed    



定时器举例:

# 定时器举例
10 * * * *  # 每个小时的第10分钟执行一次
1,5,9,26 * * * * #每小时的地1分钟 第5分钟 第9分钟 第26分钟执行一次
3-59 * * * * #第3分钟到59分钟之间每分钟执行一次
* * */10 * * #每10天执行一次

2)用户任务调度

用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab文件都被保存在/var/spool/cron目录中。其文件名与用户名一致。

crontab -e 用户级别的定时器 那个用户正在登陆那个用户执行
/etc/cron.deny     该文件中所列用户不允许使用crontab命令
/etc/cron.allow    该文件中所列用户允许使用crontab命令
/var/spool/cron/   所有用户crontab文件存放的目录,以用户名命名

2 服务

2.1 服务的启动停止

# 语法
systemctl start | restart | stop | status  | reload crond
          启动    重启      停止    查看状态   重新加载

# 每次修改配置文件必须重载配置文件才可以生效
systemctl reload crond 

2.2 输出显示

默认状态下系统级别的内容会直接输出到邮件:

/var/spool/mail/用户名(系统级别则为root)

2.3 控制台输出

如果想要前台输出(屏幕输出),查看当前使用的终端

[root@attack ~]# tty
/dev/pts/0

crontab配置终端输出 就可以使用重定向的方式处理:

 */2 * * * * echo `date` > /dev/pts/0

3 案例

在线crontab表达式执行时间计算 - 码工具 (matools.com)

[root@attack ~]crontab -e
 */1 * * * * echo `date` > /dev/pts/0  每分钟向屏幕输出日期与时间一次

案例2:

添加定时任务
crontab -e
每1分钟查看一下输出/etc/passwd的内容
*/1  *  *  *  *   cat  /etc/passwd
每周一的晚上的23点,查看一下/etc/passwd的内容
*    23    *    *    1    cat     /etc/passwd
每周的1,3,5晚上23点执行查看/etc/passwd的内容
*    23    *    *    1,3,5  cat  /etc/passwd
每小时的前半小时执行查看/etc/passwd的命令
1-30    *    *    *    *  cat  /etc/passwd
每分钟向abc.txt文件写入aaa
*/1  *  *  *  *   echo "aaa" >> /home/abc.txt
工作日的9点半执行某个命令
30 9 * * 1-5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值