Linux计划任务

指令:


at:在指定的时间执行命令 crontab -e :创建计划
ctrl+d:执行任务 crontab -l :查看计划
atq(at -l):列出用户的等待执行的作业 crontab -r :删除计划

atrm (at -d、-r): 删除作业。
systemctl(系统CTL) start(开始):启动
systemctl status
(地位,状态):查看
systemctl stop(停止,中断) :停止
Bash : 是一个与 sh 兼容的命令解释程序,可以执行从标准输入或者文件中读取的命令。
date(日期) :打印或设置系统日期和时间 -s -set(设置):根据 STRING(字符串) 设置时间
watch(观看) :定期执行程序,显示输出全屏 -n - interval(间隔)seconds(秒):指定更新间隔。该命令将不允许超过0.1秒间隔,在
其中较小的值被转换。
*********************************************************************************************************************************************************************************************
简介:作用: 计划任务主要是做一些周期性的任务,目前最主要的用途是定期备份数据
Schedule recurring system jobs.
所有计划任务执行中的输出都会以邮件的方式发送给指定用户, 除非重定向

一次性调度执行


安装程序:
在系统光盘中。
rpm -ivh at.x86_64 //安装
systemctl start atd //启动
systemctl status atd //查看
Active: active (running) //运行。inactive是不活跃就是没有运行。
语法格式:
at <TIMESPEC> 时间部分
now +5min 5分钟后
teatime tomorrow (teatime is 16:00) 下午茶时间
noon +4 days 第四天中午
5pm august 3 2018 2018年8月3日下午5点
at命令格式:
at HH:MM YYYY-MM-DD //HH(小时):MM(分钟) YYYY(年)-MM(月份)-DD(日)
例:at 4:00 2017-11-27
HH[am pm]+D(天) days //HH(小时)[am(上午)pm(下午)]+days(天)
例:4pm + 3days :3天以后下午4:00执行at命令设定的计划任务。
通过重定向,一次性导入多个任务
[root@localhost ~]# vim at.jobs
useradd u99
useradd u00
touch /`date +%F`.txt
[root@localhost ~]# at now +1min < at.jobs

注: sudo执行需要考虑tty问题

*********************************************************************************************************************************************************************************************

crond的概念和crontab是不可分割的。crontab是一个命令,常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语chronos(χρόνος),原意是时间。而crond正是它的守护进程。

循环调度执行 cron


计划任务存储位置:
[root@localhost ~]# ls /var/spool/cron/
管理方式:
创建计划:crontab -e Edit jobs for the current user.
查询计划crontab -l List the jobs for the current user.
管理员可以使用 -u username, 去管理其他用户的计划任务
删除计划crontab -r Remove all jobs for the current users.
语法格式 Job format:
格式:
# .---------------- 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
示例1
*/5 * * * * /mysql_back.sh
0 2 1,4,6 * * /mysql_back.sh
0 2 5-9 * * /mysql_back.sh

* * * * * /mysql_back.sh
0 * * * * /mysql_back.sh
* * 2 * * /mysql_back.sh

0 2 * * * /mysql_back.sh
0 2 14 * * /mysql_back.sh
0 2 14 2 * /mysql_back.sh
0 2 * * 5 /mysql_back.sh //不写月日,仅周生效
0 2 * 6 5 /mysql_back.sh
0 2 2 * 5 /mysql_back.sh
0 2 2 6 5 /mysql_back.sh //书写月和日,月或日,月日周均生效
示例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:00整,这两个时间都执行

00 02 * * * ls //每天2:00整
* 02 * * * ls //每天2:00中的每一分钟
* * * * * ls //每分钟执行ls
* * 14 2 * ls //2月14号的每分钟 1440分钟

*/5 * * * * ls //每隔5分钟
00 02 1,5,8 * * ls //每月1,5,8号的2:00整
00 02 1-8 * * ls //每月1到8号的2:00整
示例3
测试crontab的时间格式案例

1 编写执行脚本.
vim /crontab.sh
touch /root/`date +%F-%X`.txt

2 编排任务计划
[root@localhost ~]# crontab -e
* * 1 1 * bash /crontab.sh


3 修改日期时间为1月2日3点4分
date 01020304
修改时间为1点2分3秒
date -s 01:02:03



4 监控当前目录
watch -n 0.5 'ls /root/*.txt'


5 测试目标

* * * * 1 每周1 每分钟会执行
* * * 1 * 1月每日 每分钟会执行
* * * 1 1 1月的周1 每分钟会执行
* * 1 * * 每月1日 每分钟会执行
* * 1 * 1 每月1日和每月周1 每分钟会执行
* * 1 1 * 1月1日 每分钟会执行
* * 1 1 1 1月1日和1月的周1 每分钟都会执行

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值