Linux系统计划任务

计划任务

简介

计划任务主要是做一些周期性的任务,
目前最主要的用途是定期备份数据。
计划任务相当于闹钟
什么时候需要使用定时任务
企业工作中经常需要将某些命令或脚本放入计划任务中自动执行;企业中需要定期执行服务器之间的数据同步操作;
Linux中怎样使用计划任务
在Linux中有两种使用方法:
一次性at计划任务 :Schedule one-time tasks with at.
周期性执行cron计划任务(常用) :Schedule recurring jobs with cron.

一次性调度执行at

语法:at < TIMESPEC>

< TIMESPEC >示例 :

[root@localhost~]# at now +5min   
五分钟后
[root@localhost~]# teatime tomorrow (teatime is 16:00)  
下午茶
[root@localhost~]# noon +4 days
第四天中午
[root@localhost~]# 5pm august 3 2020
2020年8月3日下午5点
[root@localhost~]# 4:00 2019-11-27
某年某月某日某时
  • 示例
    设置一个定时创建用户的任务
[root@localhost ~]# at   now +1min
at> useradd  www
at> <EOT>   CTRL +D  输入完毕,提交任务
job 3 at Wed Aug  5 20:34:00 2020

查询任务

[root@localhost ~]# atq  查询  -q
3	Wed Aug  5 20:34:00 2020 a root

验证

root@localhost ~]# id www
uid=1008(www) gid=1008(www) 组=1008(www)

循环调度执行cron

  • 简介
    cron的概念和crontab是不可分割的。
    crontab是一个命令,常见于Unix和Linux的操作系统之中
    用于设置周期性被执行的指令。
    该命令从标准输入设备读取指令,并将其存放于“/etc/crontab”文件中,以供之后读取和执行。
  • 查看进程的状态
[root@locahost ~]# systemctl status crond.service
[root@localhost ~]# ps aux |grep crond
root 550 0.0 0.0 126300 1648 ? Ss 10:05 0:00 /usr/sbin/crond -n

crond程序运行是计划任务执行的根本

  • cron的示例
    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.
    2.计划任务存储位置
[root@localhost ~]# ls /var/spool/cron/

3.语法格式 Job format
在这里插入图片描述

分 时 日 月 周 命令活脚本程序
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月的周五两点整执行

示例

分 时 日 月 周 命令或脚本程序
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整,这两个时间都执行

示例
每个一分钟执行创建文件的计划任务
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/

猜你喜欢

转载自blog.csdn.net/m0_48654420/article/details/107824481