计划任务作用:做一些周期性的任务,主要用于定时备份数据,同步时间,定时删除日志

所有计划任务执行的输出都会以邮件的方式发送给指定用户,除非重定向

(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\t1\t*\t*\t*\tbash /server/scripts/delete-log.sh &>/dev/null" >>/var/spool/cron/root

6)计划任务日志

/var/log/cron

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

最新文章

  1. 【Android自学日记】【转】Android Fragment 真正的完全解析(下)
  2. 查看C#的dll所依赖.Net版本
  3. 【BZOJ】3832: [Poi2014]Rally
  4. Web项目中删错文件怎么办
  5. 你误解 .net 了吗?
  6. [译]- 6-1 排列窗体上的控件(Laying Out Widgets on a Form)
  7. refreshLayout 和 滑动控件的冲突解决
  8. Oracle存储过程学习备忘
  9. 64位Windows2003下如何正确发布VesnData.Net(VDN)
  10. RandomAccessFile、FileChannel、MappedByteBuffer读写文件
  11. ELF学习--装载过程
  12. 【java基础】内部类,局部内部类,匿名内部类、静态内部类、接口中的内部类
  13. Abp zero 3.0.1发布
  14. 纯HTML自动刷新页面或重定向
  15. Apace Ignite剖析
  16. qml demo分析(maroon-小游戏)
  17. Linux(CentOS7)下如何配置多个Tomcat容器
  18. mariadb:SQL日常使用总结
  19. php函数xml转化数组
  20. android 框架层 常用类介绍

热门文章

  1. opencv学习--透视变化
  2. 8.IO模型
  3. Vue.js -- 过滤器
  4. Python代码解决RenderView窗口not found问题
  5. 招人不是HR第一职责,留住人才是
  6. 20155335俞昆《java程序设计》第十周总结
  7. Computer(HDU2196+树形dp+树的直径)
  8. sql server 在作业中 远程连接 oracle mysql sqlserver 数据库
  9. 跨域iframe高度计算
  10. IOException while loading persisted sessions: