Linux系统计划任务

一.简介

1.作用

  • 计划任务主要是做一些周期性的任务,目前最主要的用途是定期备份数据.

2.分类

  • 一次性调度at
    Schedule one-time tasks with at.
  • 循环调度执行cron
    Schedule recurring jobs with cron.

二.一次性调度执行at

1.语法格式

  • 语法格式
at <TIMESPEC>
  • 示例
#<TIMESPEC>示例
now +5min                            5分钟后
teatime tomorrow (teatime is 16:00)  下午茶时间
noon +4 days                         第四天中午
5pm august 3 2020                    2020年8月3日下午5点
4:00 2019-11-27                      某年某月某日某时

2.示例

  • 初识一次性任务计划
  • 1.设置一个定时创建用户的任务
[root@localhost ~]# at now +1min
at> useradd uuuu             #CTRL+D输入完毕,提交任务
at> <EOT>
job 1 at Wed Aug 5 16:34:00 2020
  • 2.查询任务
[root@localhost ~]# atq
1 Wed Aug 5 16:35:00 2020 a root
  • 3.验证结果
[root@localhost ~]# id uuuu    #查出用户信息即可

三.循环调度执行cron

1.简介

  • cron的概念和crontab是不可分割的。
  • crontab是一个命令,常见于Unix和Linux的操作系统之中。
  • 用于设置周期性被执行的指令。
  • 该命令从标准输入设备读取指令,并将其存放于“/etc/crontab”文件中,以供之后读取和执行。

2.查看进程状态

  • crond程序运行是计划任务执行的根本
[root@qianfeng ~]# systemctl status crond.service
[root@qianfeng ~]# ps aux |grep crond
root 550 0.0 0.0 126300 1648 ? Ss 10:05 0:00 /usr/sbin/crond -n
  • systemctl常用命令
#systemctl 命令 程序
systemctl disable crond     关闭开机启动
systemctl enable crond      开启开机启动
systemctl stop crond        关闭cron程序
systemctl start crond       开启cron程序

3.cron示例

3.1管理方式

  • 1.创建计划
    “crontab -e” Edit jobs for the current user
  • 2.查询计划
    “crontab -l” List the jobs for the current user
    管理员可以使用 -u username, 去管理其他用户的计划任务
  • 3.删除计划
    “crontab -r” Remove all jobs for the current users.

3.2计划任务存储位置

[root@localhost ~]# ls /var/spool/cron/

3.3语法格式Job format

  • 1.说明
# .---------------- 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
# | | | | |
# * * * * * command           #六个部分用空格隔开
  • 2.示例1
0 * * * * /mysql_back.sh       #每小时的0分执行
*/5 * * * * /mysql_back.sh     #每五分钟执行
0 2 1,4,6 * * /mysql_back.sh   #每月的1,4,6日的2点整执行
0 2 5-9 * * /mysql_back.sh     #每月5日到9日的两点整执行
 * * * * * /mysql_back.sh       #每分钟执行
0 2 * * * /mysql_back.sh       #每天两点整执行
0 2 14 * * /mysql_back.sh      #每月14号的2点整执行
0 2 14 2 * /mysql_back.sh      #2月14日2点整执行
0 2 * * 5 /mysql_back.sh       #不写月日,仅周生效,每月的周五,两点执行
0 2 2 6 5 /mysql_back.sh       #书写月和日,月或日,月日周均生效,6月2日的两点整执行,6月的周五两点整执行
  • 3.示例2
00 02 * * * ls         #每天2:00整
00 02 1 * * ls         #每月1号2:00整
00 02 14 2 * ls        #每年2月14号2:00整
00 02 * * 7 ls         #每周日2:00整
00 02 * 6 5 ls         #每年6月的周五2:00整  (特殊)
00 02 14 * 7 ls        #每月14号2:00整,每周日2:00整,这两个时间都执行
00 02 14 2 7 ls        #每年2月14号2:00整,2月每周日2:00整,这两个时间都执行

3.4示例

  • 1.目的
    每隔一分钟执行创建文件的计划任务
  • 2.示例
#1.准备创建脚本文件

[root@localhost ~]# vim /root/1.sh
/usr/bin/touch   /root/`date +%F-%H-%M-%S`.txt    #输入该行内容
[root@localhost ~]# chmod +x /root/1.sh

#2.编写任务计划
[root@localhost ~]# crontab -e
*  *  *   *   *    /root/1.sh            #输入该行内容

#3.查看创建结果

[root@localhost ~]# ls -l /root
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值