ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

定时任务

2020-01-24 15:54:38  阅读:185  来源: 互联网

标签:backup data 任务 编写 定时 root


目录

1.概念

2.实际编写方法

3.编写注意事项

1.定时任务概念
1.作用
1) 类似生活中闹钟
2) 可以自动完成操作命令
3)自动清理磁盘
4)自动的进行时间同步更新 ntpdate xxx

2.软件种类
1)cronie     实现定时任务功能
2)atd          实现定时任务功能 只能一次设置定时功能 
3)anacron  实现定时任务功能 应用在家用电脑 7*24服务器

[root@lbz01 ~]# rpm -qa cronie                 //检查软件是否安装 cronie
cronie-1.4.11-19.el7.x86_64
[root@lbz01 ~]# rpm -ql cronie
补充:
1)rpm -ivh 软件包.rpm  --- 手动安装软件
#-i install 安装
 -v 显示过程信息
 -h human 以人类可读方式显示信息
 说明: 无法解决软件依赖关系
2)yum install -y lrzsz --- 让linux和windows主机之间传输数据 
#在linux上进行操作
 rz -y 从windows上下载重要数据信息
 sz -y 数据信息 从linux上上传重要数据到windows

3.定时任务实现方法
日志文件需要定期进行切割处理
周一 secure 100M
周二(00:00) mv secure secure-`date +%F` 100M (切割后的文件)
系统特殊目录:
系统定时任务周期:每小时 控制定时任务目录:/etc/cron.hourly
系统定时任务周期:每一天 控制定时任务目录:/etc/cron.daily       00:00-23:59
系统定时任务周期:每一周 控制定时任务目录:/etc/cron.weekly    7天
系统定时任务周期:每个月 控制定时任务目录:/etc/cron.monthly  30 28 31

2.定时任务实际编写方法

//实际编写
1.环境准备
2.语法说明
3.实际编写
4.排查方法
1.环境准备
[root@lbz01 ~]# systemctl status crond             //查看定时任务服务是否启动/是否开机自动启动    
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-01-23 08:25:19 CST; 10h ago
   ...
2.语法说明
1)编写语法规范:
# 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

* * * * * 具体做什么事情
分 时 日 月 周 
2)写法
a). 用数值表示时间信息
    00 02 * * * 备份文件
b). 利用特殊符号表示时间信息
   01. * * * * * 备份文件     每分钟 每小时 每天 每月 每周 
   02. */5 */5 */5           每隔5分钟 每隔5小时    
   03. 01-05 02 * * *        指定时间的范围
   04. 00 14,20 * * *        指定不连续的时间信息
PS: 定时任务最短执行的周期为每分钟
结论: 
   01. 在写时间信息的时候, 如果想表示每隔多久执行什么任务
       /上面尽量用*号表示, 不要写具体数值
   02. 时间信息由左到右依次书写, 尽量不要跳步
   03. 当编写定时任务时,日期信息不要和星期信息同时出现
3.实际编写
[root@lbz01 ~]# crontab -e                            //实际编写  
00 02 * * * cp -a /data /backup
4.排查方法
[root@lbz01 ~]# cat /var/spool/cron/root              //检查是否有定时任务配置文件
00 02 * * * cp -a /data /backup
[root@lbz01 ~]# ll /var/log/cron                      //检查定时任务日志文件
-rw-------. 1 root root 37879 Jan 23 18:57 /var/log/cron
[root@lbz01 ~]# tail -f /var/log/cron
Jan 23 18:55:17 lbz01 crontab[2963]: (root) REPLACE (root)
#执行时间 主机名 编辑定时任务 以什么用户编辑或执行定时任务/干了什么事情
执行定时任务 

3.定时任务编写注意事项:
1) 编写定时任务要有注释说明
2) 编写定时任务路径信息尽量使用绝对路径
3) 编写定时任务命令需要采用绝对路径执行 /usr/sbin/useradd
   命令执行成功条件:
   useradd ---> $PATH ---> /sbin/useradd ---> 命令执行成功
   定时任务执行时,识别的PATH信息只有: /usr/bin:/bin。所以需要使用绝对路径
   useradd命令--->usr/sbin/useradd
4) 编写定时任务时,可以将输出到屏幕上的信息保存到黑洞中,避免占用磁盘空间
    * * * * * sh test.sh &>/dev/null

   说明:定时任务中执行命令,如果产生输出到屏幕的信息,都会以邮件方式告知用户

   /var/spool/mail/root 不断变大占用磁盘空间 占用的block空间
  解决方法: 将邮件服务关闭
  systemctl stop postfix
   /var/spool/postfix/maildrop/ 不断产生小文件占用磁盘空间 占用的inode空间
  解决方法: 删除小文件
  rm -f /var/spool/postfix/maildrop/*
  systemctl start postfix
5) 编写定时任务, 尽量不要产生屏幕输出信息
    cp -a /data /backup
    tar zcvf /backup/data.tar.gz /data 有信息输出
    cd / 
    tar zcf /backup/data.tar.gz ./data 没有信息输出
6) 当需要多个命令完成一个定时任务需求时,可以利用脚本编写定时
    vim backup.sh 
    cp -a /data /backup
    tar zcvf /backup/data.tar.gz /data
    编写定时任务:
    crontab -e 
    # 注释说明
    * * * * * /bin/sh /server/scripts/backup.sh &>/dev/null

 7) 定时任务中无法识别任务中的一些特殊符号 

    解决方式一: 利用转义符号
    * * * * * /bin/date "+\%F \%T" >/tmp/time.txt
    解决方式二: 利用脚本编写任务
   vim /lbz/date.sh
   /bin/date "+%F %T"  
   crontab -e
   * * * * * /bin/sh /lbz/date.sh &>/dev/null

 版权属于:木丫头

 转载必须得声明

标签:backup,data,任务,编写,定时,root
来源: https://www.cnblogs.com/lbzyyy/p/12118808.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有