首页 > 编程知识 正文

cron定时器,定时任务时间设置

时间:2023-05-06 06:35:50 阅读:164868 作者:3800

一、定时任务(crond )1.什么crond crond是计划任务,像我们日常生活中的闹钟一样,定点执行。 2 .为什么要在crond:上计划任务,主要是进行:凌晨3点的定时备份数据等周期性任务。 或者11点打开网站抢购界面,12点关闭抢占界面。 调度任务主要分为以下两种使用情况。 1.系统级定时任务临时文件整理系统信息收集日志文件抢占2 .用户级定时任务定时同步时间定时备份系统配置文件定时备份数据库数量2、定时任务管理1 .定时任务配置文件

[ root @ we b01~] # vim/etc/crontab shell=/GD dwl/bash # bash解释器path=/SGD dwl 3360/GD dwl 3360/usr/SGD dwl 3360 exampleofjobdefinition 3360---------minute (0- 59 ) )。------ day of month (1- 31 ) #天)|--------month(1-12 ) OR jan、feb、mar、apr . #月#|| sat #天#|||| * * * user-namecommandtobeexecuted * * * root echo ' hello world ' # *表示任何(时分日月周)的运行时间(以小时为单位)

3.crontab命令选项

参数的含义

-编辑电子计划任务

-l显示计划任务

-r删除计划任务

-u指定其他用户

三.定时任务实践使用root用户q5分钟运行时间同步yum install -y ntpd #安装ntpdate命令

ntpdate ntp.aliyun.com #测试时间同步命令

查看包含which ntpdate #命令的目录

配置crontab -e #计划任务

每#5分钟执行一次时间同步

*/5 * * * * ntpdate ntp.aliyun.com

查看crontab -l #计划任务

四.备份案例1 .准备服务器

主机: FXS

内部网IP:192.168.12.210

2 .需求

预先准备备份文件目录,目录规则:/backup/we b01 _ 192.168.0.128 _ 2020-11-10

备份文件,名称2018-02-20_hostname_etc.tar.gz

验证文件是否完整

将验证结果发送到邮箱

在保存备份内容的目录中只能保留三天的数据

每天上午3:50点执行备份

3 .编写脚本

vim疯狂的桃子. sh #编辑脚本

#! /gddwl/bash

mkdir -p /backup

tarzcf/backup/2018-02-20 _ hostname _ etc.tar.gz/etc

find/backup/- typef-mtime3| xargs RM-RF

4 .将脚本写入计划任务

编辑crontab -e #计划任务

每#5分钟执行一次时间同步

*/5 * * * * ntpdate ntp.aliyun.com

#每天运行3:50备份文件脚本

50 3 * * * /gddwl/bash ~/疯狂的水蜜桃. sh

五.定时任务编制1 .构想

手动运行命令,并保留运行成功的结果。

编写脚本

脚本需要统一的路径/脚本

脚本内容的复制执行成功的命令(减少各阶段发生错误的概率) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )。

尽可能优化脚本内容,使用一些变量或使用简单的判断语句

通过脚本执行的输出信息可以重定向到其他位置以保留或写入/dev/null

执行脚本

使用bash命令运行,以防止向脚本添加执行权限(/usr/gddwl/bash )

脚本成功执行后,复制要执行的命令并写入cron

创建计划任务

添加必要的评论信息、人、时间、任务

设置调度任务执行的周期

粘贴执行脚本的命令。 请不要用手敲。

调试计划任务

增加任务频率测试


检查环境变量问题
检查crond服务日志 tail -f /var/log/cron

2.总结
定时任务规则配置一定要及注释
定时任务里面尽量使用脚本
运行脚本习惯性使用绝对路径
脚本执行结果或者命令执行结果尽量有用的定义到指定的日志,没用的定义到空
避免不必要的输出
打包命令尽量使用绝对路劲
系统的环境变量配置

一.计划任务基本概述

1.什么是计划任务

crond 就是计划任务类似于生活中的闹钟,定时执行
2.为什么要使用 crond主要用于做一些周期性的任务比如公司每天的数据都需要备份一次, 不可能凌晨三点爬起来手动备份所以就可以使用到 crond 定时每天凌晨三点备份数据
3.定时任务的应用系统级别的定时任务: 临时文件清理, 系统信息采集, 日志文件切割用户级别的定时任务: 定时同步网络时间, 定时备份系统配置文件, 定时备份数据库的数据 二.计划任务管理

1.crontab参数

2.crond 配置文件说明

vim /etc/crontab

对应说明 SHELL=/gddwl/bash #执行命令的解释器PATH=PATH=/sgddwl:/gddwl:/usr/sgddwl:/usr/gddwl #环境变量MAILTO=root #邮件发给谁"*" : 表示任意的(分, 时, 日, 月, 周)时间都执行"-" : 表示一个时间范围段, 如"5-7"点"," : 表示分隔时间段, 如"4,6,7"表示第四,第六,第7小时"/" : 表示每个多少时间, 如"/2"表示每个两小时/两天等等


3.crontab 编写规范示例

00 02 * * * ls #每天的凌晨2点整执行00 02 1 * * ls #每月的1日的凌晨2点整执行00 02 14 2 * ls #每年的2月14日凌晨2点执行00 02 * * 7 ls #每wydcs的凌晨2点整执行00 02 * 6 5 ls #每年的6月周五凌晨2点执行00 02 14 * 7 ls #每月14日或每周日的凌晨2点都执行00 02 14 2 7 ls #每年的2月14日或每年2月的wydcs的凌晨2点执行 */10 02 * * * ls #每天凌晨2点,每隔10分钟执行一次* * * * * ls #每分钟都执行00 00 14 2 * ls #每年2月14日的凌晨执行命令 */5 * * * * ls #每隔5分钟执行一次00 02 * 1,5,8 * ls #每年的1月5月8月凌晨2点执行00 02 1-8 * * ls #每月1号到8号凌晨2点执行0 21 * * * ls #每天晚上21:00执行45 4 1,10,22 * * ls #每月1、10、22日的4:45执行45 4 1-10 * * l #每月1到10日的4:45执行3,15 8-11 */2 * * ls #每隔两天的上午8点到11点的第3和第15分钟执行0 23-7/1 * * * ls #晚上11点到早上7点之间,每隔一小时执行15 21 * * 1-5 ls #周一到周五每天晚上21:15执行 三.计划任务实践演示

1.环境准备

⛅创建一个放置你自己做实验脚本的目录,并将其加入到"PATH"中[root@shawn ~]#mkdir /backup[root@shawn ~]#vim /etc/profile.d/aaa.sh写入这一行 : export PATH="$PATH:/backup/" ⛅加载配置文件[root@shawn ~]#source /etc/profile

1.定时将内存使用量写进文件, 一天后删除

⛅先写一个查看内存信息的脚本[root@shawn ~]#vim /backup/b.sh#内存使用情况Total=`free -m | awk 'NR == 2{print $2}'`Userd=`free -m | awk 'NR == 2{print $3}'`Free=`free -m | awk 'NR == 2{print $4}'`date=`date +%Y-%m-%d_%H:%M:%S`#创建文件mkdir /bak2 &> /dev/nulltouch /bak2/MEM_${date}.log &> /dev/null#写入文件echo "总大小:${Total}" > /bak2/MEM_${date}.logecho "已使用:${Userd}" >> /bak2/MEM_${date}.logecho "剩余量:${Free}" >> /bak2/MEM_${date}.log#删除超过一天的内存日志find /bak2 -type f -mtime +1 -name "*.log" -exec rm -rf {} ;⛅对脚本添加执行权限[root@shawn ~]#chmod o+x /backup/a.sh⛅将其加入到定时任务,并查看[root@shawn ~]#crontab -e[root@shawn ~]#crontab -l* * * * * bash /backup/b.sh &> /dev/null #每分钟⛅过几分钟看看,查看其中一个[root@shawn ~]#ls /bak2MEM_2020-11-10_22:01:01.log MEM_2020-11-10_22:02:01.log[root@shawn ~]#cat /bak2/MEM_2020-11-10_22:02:01.log 总大小:972已使用:143剩余量:710

2.定时进行目录备份, 要有主机名, IP, 以及时间

⛅写好脚本,打包"/home"目录[root@shawn ~]#vim /backup/a.sh #定义变量date=`date +%Y-%m-%d_%H:%M:%S`hostname=`hostname`hostname -I > /bak/ip.txtip=`/usr/gddwl/cat /bak/ip.txt`IP=`echo ${ip}`#创建文件目录mkdir /bak &> /dev/null#打包/home文件tar czf /bak/${hostname}_${IP}_${date}_home.tar.gz /home#删除三天前的文件find /bak -type f -name "*.tar.gz" -mtime +3 | xargs rm -rf rm -rf /bak/ip.txt⛅对脚本添加执行权限[root@shawn ~]#chmod o+x /backup/a.sh⛅将其加入到定时任务,并查看[root@shawn ~]#crontab -e[root@shawn ~]#crontab -l* * * * * bash /backup/a.sh &> /dev/null #每分钟⛅过几分钟看看[root@shawn ~]#ls /bakshawn_192.168.12.178_2020-11-10_22:01:01_home.tar.gzshawn_192.168.12.178_2020-11-10_22:02:01_home.tar.gzshawn_192.168.12.178_2020-11-10_22:03:01_home.tar.gzshawn_192.168.12.178_2020-11-10_22:04:01_home.tar.gz 四.定时任务编写思路

1.手动执行命令,然后保留执行成功的结果
2.编写脚本

脚本需要统一路径/scripts
脚本内容复制执行成功的命令(减少每个环节出错几率)
脚本内容尽可能的优化, 使用一些变量或使用简单的判断语句
脚本执行的输出信息可以重定向至其他位置保留或写入/dev/null
3.执行脚本
使用bash命令执行, 防止脚本没有增加执行权限(/usr/gddwl/bash)
执行脚本成功后,复制该执行的命令,以便写入cron
4.编写计划任务
加上必要的注释信息, 人、时间、任务
设定计划任务执行的周期
粘贴执行脚本的命令(不要手敲)
5.调试计划任务
增加任务频率测试
检查环境变量问题
检查crond服务日志 tail -f /var/log/cron

五.总结

1.定时任务规则配置一定要注释
2.定时任务里面尽量使用脚本
3.运行脚本习惯性使用绝对路径
4.脚本执行结果或者命令执行结果尽量有用的定义到指定的日志,没用的定义到空
5.避免不必要的输出
6.打包命令尽量使用绝对路劲
7.系统的环境变量配置

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。