zoukankan      html  css  js  c++  java
  • 计划任务at cron

    计划任务作用:做一些周期性的任务,主要用于定时备份数据,同步时间,定时删除日志
    所有计划任务执行的输出都会以邮件的方式发送给指定用户,除非重定向

    (1)at:一次性调度执行

    1)安装

    yum install at -y 
    systemctl start atd
    systemctl enable atd 
    

    2)语法

    语法: at <时间戳>
    	man at   /example 
    

    3)例

    #at now +1min 		//一分钟之后执行添加用户命令
    at> useradd user01 
    ctrl + d 推出
    #atq 				//查看任务
    
    #vim at.log 
    useradd user02 
    #at now +1min <at.log	//通过输入重定向方式添加计划任务
    

    (2)crond:循环调度执行,用户级别

    1)服务状态

    yum install crond -y 
    systemctl start crond 
    systemctl enable crond 
    systemctl status crond 
    ps aux | grep crond 
    crond进程每分钟处理一次计划任务
    

    2)crontab

    计划任务存储位置
    	ls /var/spool/cron/当前用户
    常用命令:
    	crontab -l 				//显示当前用户的计划任务
    	crontab -r 				//移除当前用户的所有计划任务
    	crontab -e 				//编辑当前用户的计划任务
    	-u username 			//管理其它用户的计划任务
    

    3)语法格式

    .---------------- 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
    注意:最好周和天不要同时使用
    

    4)例

    00	02	*	*	*	ls		//每天2点整
    00	02	1	*	*	ls 		//每月1号2点整
    00	02	14	2	*	ls 		//每年的2月14日2点整
    00	02	*	*	7	ls 		//每周日2点整
    00	02	*	6	5	ls 		//每年的6月的周五2点整
    00	02	14	*	7	ls 		//每月的14日2点整或每周日2点整,这两个时间都执行
    00	02	14	2	7	ls 		//每年的2月14日2点整或者每周日的2点整,这两个时间都执行
    #################################################################################
    00	02	*	*	*	ls 		//每天的2点整
    *	02	*	*	*	ls 		//每天的2点每一分钟
    *	*	*	*	*	ls 		//每分钟
    *	*	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点整
    

    5)写计划任务规范

    	1丶为定时任务加注释
    	2丶执行shell脚本任务前加/bin/bash
    	3丶定时任务命令或脚本结尾加>/dev/null  2>&1  ,  &>/dev/null ,  1>/dev/null  2>/dev/null 
    	4丶定时任务命令或程序最好写到脚本里执行
    	5丶在指定用户下执行相关命令,命令使用which查找路径,在脚本中加上全路径
    	6丶生产任务程序不要随意打印输出信息,例如打包
    	7丶定时任务执行的脚本要规范路径  ,例如/server/scripts/ ,
    	8丶定义任务规范操作过程,防止错误
    		首先要在命令行操作成功,复制成功的命令到脚本中
    	9丶测试脚本,测试成功,复制规范路径到脚本中;	
    
    #vim /server/scripts/delete-log.sh 
    #/bin/bash 
    /usr/bin/find /usr/local/tomcat/logs -type f -mtime +7 | xargs rm -rf 
    #echo "Delete 7 days' log at 1 points per day >>/var/spool/cron/root 
    #echo -e "0	1	*	*	*	bash /server/scripts/delete-log.sh  &>/dev/null" >>/var/spool/cron/root 
    

    6)计划任务日志

    /var/log/cron
    

    (3)cron:系统级的计划任务

  • 相关阅读:
    chrony时间同步工具
    SyntaxError: missing ; before statement
    SQL 获得两个时间段之间的数据
    EasyUI DataGrid 获得分页信息
    c#里如何实现讲一个字符串数组例如 “112,221”转化成两个字符串数组“112” “221” 中间以逗号隔开
    SQL 将一个表中的所有记录插入到一个临时表中
    SQL查找指定行的记录
    SQL 中的Begin...End语句
    SQL将完整时间字段截取到年月日
    Linux学习之三:档案与文件系统的压缩与打包
  • 原文地址:https://www.cnblogs.com/lovelinux199075/p/9034222.html
Copyright © 2011-2022 走看看