• 定时任务cronie


    1.定时任务的作用

    1. 类似生活中的手机闹钟
    2. 可以自动完成操作命令(自动清理磁盘,自动同步时间)
    3. 定时备份系统数据信息(有些公司重要数据文件需要每天人流少的时间进行数据备份)
      案例:
      /var/log/secure是记录用户登录系统情况的数据文件,万一有黑客恶意破解登录你的服务器,会产生大量登录失败的数据保存这个文件中。当文件数据量大的时候,再查看文件内容会出现刷屏的现象。
      解决方法:日志文件需要定期进行数据分割出来

    Linux定时软件

    1. cronie 实现定时任务功能(重点)
    2. atd 实现定时任务功能 只能一次设置定时功能
    3. anacron 实现定时任务功能 应用非7*24小时的家用电脑

    安装定时任务:yum install -y cronie

    查询cronie服务需要关注配置文件

    [root @zouxuan ~ ]# rpm -ql cronie
    /etc/cron.d
    /etc/cron.d/0hourly
    /etc/cron.deny			# 关注文件
    /etc/pam.d/crond
    /etc/sysconfig/crond
    /usr/bin/crontab		# 用户设置定时任务查看命令
    /usr/lib/systemd/system/crond.service
    /usr/sbin/crond
    

    2.系统定时任务目录

    系统定时任务周期:每小时 控制定时任务目录:/etc/cron.hourly 按照每小时
    系统定时任务周期:每一天 控制定时任务目录:/etc/cron.daily 按照一天的00:00-23:59
    系统定时任务周期:每一周 控制定时任务目录:/etc/cron.weekly 按照一周7天
    系统定时任务周期:每个月 控制定时任务目录:/etc/cron.monthly 按照每月的天数30 28 31

    如何利用系统定时任务目录进行定时操作?

    第一步:编写定时任务脚本
    [root @zouxuan /share ]# vim hour_echo.sh  
    #每小时向/date/oldboy.txt追加信息
    echo "oldboy" >> /date/oldboy.txt
    
    第二步:由于是系统自带定时目录,需要给脚本赋予执行权限
    [root @zouxuan /share ]# chmod u+x hour_echo.sh 
    [root @zouxuan /share ]# ll hour_echo.sh
    -rwxr--r--. 1 root root 76 7月  29 17:25 hour_echo.sh
    
    第三步:移动到对应执行周期目录
    [root @zouxuan /share ]# mv hour_echo.sh  /etc/cron.hourly/
    说明:每一小时,系统自动执行脚本
    

    3.crontab命令说明

    1.查看用户定时任务 crontab -l (list) 列表查看用户的设置的定时任务 相当于查看/var/spool/cron目录

    [root @zouxuan /etc/cron.daily ]# crontab -l
    no crontab for root
    # 说明:此时没有设置定时任务
    

    2.用户编写定时任务 crontab -e (edit)
    说明:crontab -e 编写定时任务配置信息
    visuod 对普通用户授权 相当于编辑 vim /etc/sudoers
    crontab -e 编写定时任务 相当于编写 vim /var/spool/cron目录下的用户定时任务文件
    root用户设置定时任务配置文件 /var/spool/cron/root
    xuan用户设置定时任务配置文件 /var/spool/cron/xuan

    4.定时任务实际编写

    1.编写前环境检查

    a. 确定定时任务服务是否运行
    [root @zouxuan ~ ]# ps -ef | grep crond
    root        936      1  0 09:25 ?        00:00:00 /usr/sbin/crond -n
    root       2150   2006  0 16:15 pts/0    00:00:00 grep --color=auto crond
    
    
    b. 确定定时任务服务是否开机启动
    [root @zouxuan ~ ]# systemctl status crond
    ● crond.service - Command Scheduler
       Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
       Active: active (running) since 二 2020-07-28 09:25:51 CST; 6h ago
     Main PID: 936 (crond)
       CGroup: /system.slice/crond.service
    ​           └─936 /usr/sbin/crond -n
    7月 28 09:25:51 zouxuan systemd[1]: Started Command Scheduler.
    7月 28 09:25:52 zouxuan crond[936]: (CRON) INFO (RANDOM_DELAY will be scaled with f...d.)
    7月 28 09:25:53 zouxuan crond[936]: (CRON) INFO (running with inotify support)
    Hint: Some lines were ellipsized, use -l to show in full.
    

    2.编写定时任务信息说明

    编写定时任务方法:crontab -e

    crontab -e编写定时任务作用

    1.可以检查定时任务编写语法是否有误

    2.crontab命令简单,方便记忆

    系统定时任务编辑样板文件:/etc/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
    

    编写定时任务格式

    *** * * * * 具体执行的操作**

    第一个星号表示:每分钟做什么操作

    第二个星号表示:每小时做什么操作,按照24小时制时间计算

    第三个星号表示:每月第几号做什么操作。

    第四个星号表示:第哪个月做什么操作,按照1-12月

    第五个星号表示:每星期几做什么操作,按照外国的0-6,星期日为0,星期一为1,星期六为6

    1.按照数值表示时间信息

    00 02 * * * 备份数据 说明:表示每天的凌晨2点整备份数据

    2.按照特殊符号表示时间信息

    * * * * * 备份数据 说明:表示全天每分钟进行进行备份 PS:定时任务最短执行时间是每分钟

    */5 */5 * * * 备份数据 说明:每隔5小时的每5分钟备份数据

    3.定义连续时间内连续备份数据

    01-03 03 * * * 备份数据 说明:表示每天的凌晨2点01分到2点03分连续备份数据(3次)

    4.指定不连续时间备份数据

    00 14,20 * * * 备份数据 说明:逗号表示每天的14点和20点备份数据

    编写定时任务格式总结

    1.在编写时间信息的时候,如果想表示每隔什么时间执行任务,建议:/上面尽量使用*表示,不要写具体数值

    2.编写时间信息尽量从左到右依次书写

    3.编写定时任务,日期信息不要和星期信息同属出现

    3.实际的编写定时任务

    需求:每隔2分钟把/xuan/xuan.txt文件数据备份到/date目录下

    # 第一步:编写定时任务的时间信息	
    */2	*	*	*	*
    
    # 第二步:备份数据命令	
    cp  /xuan/xuan.txt /date
    
    # 第三步:编写定时任务文件	crontab -e
    [root @zouxuan ~ ]# crontab -e
    */2 * * * * cp /xuan/xuan.txt /date
    

    5.定时任务排除方法

    1.检查是否有该用户的定时任务配置文件

    [root @zouxuan /xuan ]# ll /var/spool/cron/root
    -rw-------. 1 root root 36 7月  28 18:44 /var/spool/cron/root
    
    #  查看定时任务配置信息
    [root @zouxuan /xuan ]# cat /var/spool/cron/root
    */2 * * * * cp /xuan/xuan.txt /date
    
    # 命令查看定时任务
    [root @zouxuan /xuan ]# crontab -l
    */2 * * * * cp /xuan/xuan.txt /date
    

    2.查看定时任务的日志文件信息,查找错误

    [root @zouxuan ~ ]# tail /var/log/cron -f
    Jul 28 18:58:12 	zouxuan 		crontab[2333]: 	(root) **BEGIN** EDIT (root)				
    # begin 	表示开始编写定时任务
    
    Jul 28 18:58:37 	zouxuan 		crontab[2333]: 	(root) **REPLACE** (root)				
    # replace 	表示编辑修改定时任务
    
    Jul 28 18:58:37 	zouxuan 		crontab[2333]: 	(root) **END** EDIT (root)				
    # end		表示结束编辑定时任务
    
    Jul 28 18:54:01 	zouxuan 		crond[936]: 	(root) **RELOAD** (/var/spool/cron/root)	
    # reload 	表示重新加载定时任务
    
    Jul 28 19:00:01 	zouxuan 		CROND[2337]:	(root) **CMD** (cp /xuan/xuan.txt /date)	
    # cmd 	表示执行定时任务
    
    Jul 28 18:57:36 	zouxuan 		crontab[2330]: 	(root) **LIST** (root)					
    # list		表示使用 crontab -l 查看定时任务
    

    日志文件显示信息

    第一列 执行时间信息

    第二列 执行定时任务的主机名

    第三列 crontab 表示编写定时任务 crond 表示重新加载定时任务文件 CROND 表示执行定时任务

    第四列 显示以什么用户编辑或执行定时任务/干了什么事情

    6.定时任务编写总结

    1.编写口诀:什么时间做什么,然后再想下一次什么时候执行 什么时间,做什么事情

    定时任务书写例子

    每天的上午8点30分,来学校上车(go to school) 30 08 * * * go to school

    每天晚上12点准时,回家自己上床(go to bed) 00 12 * * * go to bed

    编写定时任务格式总结
    1.在编写时间信息的时候,如果想表示每隔什么时间执行任务,建议:/上面尽量使用*表示,不要写具体数值
    2.编写时间信息尽量从左到右依次书写
    3.编写定时任务,日期信息不要和星期信息同属出现

    2.编写定时任务执行命令规范

    1. 测试定时执行命令 定时任务执行的命令进行绝对路径

    2. 编写定时任务信息 定时任务编写时需要按照语法规范 先编写注释信息,再编写定时任务 crontab -e

    3. 检查定时任务效果

      1. 查看定时任务日志 /var/log/cron
      2. 查看定时任务效果 先临时修改定时任务每分钟,再最终修改定时任务的时间
    4. 排查定时任务问题

      1. 查看定时任务日志
      2. 查看定时任务效果

    3.编写定时任务执行脚本规范

    1. 测试定时执行脚本 定时任务执行的脚本利用绝对路径 /bin/sh shell.sh

    2. 编写定时任务信息 定时任务编写时需要按照语法规范 编写注释信息 编写定时任务

    3. 检查定时任务效果

      1. 查看定时任务日志 /var/log/cron
      2. 查看定时任务效果 先临时修改定时任务每分钟,再最终修改定时任务的时间
    4. 排查定时任务问题

      1. 查看定时任务日志
      2. 查看定时任务效果
  • 相关阅读:
    字符串数组和字符串的转换
    项目总结3
    解决几种中文乱码的问题
    ipms的sql语句
    ipms综合管理系统的总结2
    ipms综合管理系统的总结
    简答题汇总
    log4net根据日志类型写入到不同的文件中
    NUnit单元测试初试
    log4net
  • 原文地址:https://www.cnblogs.com/xuanxuan360/p/13398587.html
Copyright © 2020-2023  润新知