Linux自动执行任务
Linux自动执行任务
单次执行用at和batch,周期性任务执行用crontab。任务执行结束后会将结果返回给发起人,通过邮件完成的。
邮件位于:/var/spool/mail/user_name
单次执行任务:at,batch
at
at [OPTION]...TIME
TIME表示方法:
HH:MM[YYYY-mm-dd]
noon(中午十二点),midnight(晚上十二点),teatime(下午四点)
tomorrow
now+#
UNIT:minutes,hours,days,weeks
at的作业有队列,用单个字母表示,默认都使用a队列;
-l: 查看作业队列,相当于atq
-f /path/to/somefile:从指定文件中读取作业任务,而不用交互式输入
-d:删除指定作业,等于atrm
-c:查看指定作业的具体内容
-q QUEUE:指明队列
注意:作业执行结果会发送邮件给用户;
注意:at可以执行脚本,但是执行的工作目录可能不一样,所以脚本中的路径最好用绝对路径表示;
batch:
batch会让系统负载水平允许的时候执行任务;
各个细节和at一样
周期性任务:cron
服务程序:
cronie:主程序包,提供了crond守护进程及相关辅助工具;
确保crond守护进程(daemon)处于运行状态;
CentOS 7:
systemctl status crond.service
Active:atcive (running)......
CentOS 6:
service crond status
...is running
向crond提交作业的方式不同于at,需要专用的配置文件,此文件有固定格式,不建议使用文本编辑器直接编辑此文件;而使用crontab命令:
对于系统cron配置的格式:/etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# 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
注意:
1.每行定义一个周期任务,有七个字段,各字段之间用空格进行分割:
* * * * * :指定周期性时间(5)
user-name :指定执行用户(1)
command to be executed:要执行的任务(1)
2.此处的环境变量不同于用户登录的环境变量,所以命令用绝对路径(whereis 查看命令绝对路径),或者自定义环境变量;
3.执行结果通过邮件发送给MAILTO指定的用户
用户cron的配置:/var/spool/cron/USER_NAME
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# 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
# | | | | |
# * * * * * command to be executed
注意:
1.每行定义一个cron任务,共6个字符;
2.使用绝对路径或者自定义环境变量
3.邮件放给当前用户
时间表示:
1.特定值:
给定时间点有效取值范围内的值
day of week和day of mouth一般不同时使用;
2. * :给定时间点上有效取值范围内的所有值;
3.离散取值表示:用逗号隔开
4.连续时间:用 - 表示,#-#
5.在指定的时间点上,定义步长: /#:#即步长: */3 * * * *:每三分钟执行一次
注意:
1.指定的时间点不能被步长整除时,其意义将不复存在;
2.cron最小单位为分钟,想完成 秒 的任务,需要用其他机制
Linux自动执行任务的更多相关文章
- 使用php作linux自动执行脚本
使用php作linux自动执行脚本 [来源] 达内 [编辑] 达内 [时间]2013-03-21 在作社区时, 时常需要统计上线人数等数据. 一般做法是, 把这段代码放在用户 login或者 ...
- linux系统自动执行任务(转)
开机启动 开机启动应该是我们很经常的需求了,我们常需要在开机时就自动执行某些命令来开启服务,进程等,有了它我们不必再在每次开机时输入同一堆命令. chkconfig命令 使用chkconfig命令可以 ...
- centos shell编程4【分发系统】 服务器标准化 mkpasswd 生成密码的工具 expect讲解 expect传递参数 expect自动同步文件 expect指定host和要同步的文件 expect文件分发系统 expect自动发送密钥脚本 Linux脚本执行方式 第三十八节课
centos shell编程4[分发系统] 服务器标准化 mkpasswd 生成密码的工具 expect讲解 expect传递参数 expect自动同步文件 expect指定host和要 ...
- Linux中的定时自动执行功能(at,crontab)
Linux中的定时自动执行功能(at,crontab) 概念 在Linux系统中,提供了两种提前对工作进行安排的方式 at 只执行一次 crontab 周期性重复执行 通过对这两个工具的应用可以让我们 ...
- php 执行计划任务方式之 linux crontab 执行命令
一.crond简介 crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动c ...
- linux定时执行任务crontab命令用法
linux系统的定时任务是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的.另外, 由于使用者自己也可以设置计划任务,所 ...
- linux定时执行任务
(1)Linux下如何定时执行php脚本?(2)Linux下如何设置定时任务?(3)Crontab定时执行程序 核心提示:键入 crontab -e 编辑crontab服务文件 分为两种情况:(还有一 ...
- linux - 自动删除n天前日志
1.删除文件命令: find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \; 实例命令: find /opt/soft/log/ -m ...
- linux定时执行任务 转
转自:http://www.cnblogs.com/thinksasa/archive/2013/06/06/3121030.html linux定时执行任务 (1)Linux下如何定时执行php ...
随机推荐
- ionic3 清除navpush的堆栈 (android真机返回键bug)
清除navpush的堆栈可以使用 方法一:ionic3文档 this.navCtrl.popToRoot(); //直接返回根组件 方法二: push 后再删除之前页面即可. this.navCtrl ...
- BUAA_2021_SE_Pair_Work_#3_Review
结对项目第三阶段博客 项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 结对项目-第三阶段 我在这个课程的目标是 通过课程学习,完成第一个可以称之为 ...
- Unity2D项目-平台、解谜、战斗! 1.3移动组件
各位看官老爷们,这里是RuaiRuai工作室,一个做单机游戏的兴趣作坊. 在这一篇中,我们将会自顶向下地讨论本2D游戏中主角不可或缺的一个功能--移动控制. 首先我们简单分析一下2D游戏中主角与移动相 ...
- kubernetes CRD
官方文档:https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions ...
- Mybatis3源码笔记(三)Configuration
1. XMLConfigBuilder 上一篇大致介绍了SqlSession的生成.在DefaultSqlSessionFactory的构造函数中就提到了Configuration这个对象.现在我们来 ...
- JDBC_02_JDBC连接数据库 (INSERT INTO)
JDBC连接数据库 (INSERT INTO) String url="jdbc:mysql://127.0.0.1:3306/employ?useUnicode=true&char ...
- Ubuntu 20.04 简述环境配置&美化
不敢说是最好的,基本上是最全面的了~ 修改系统软件源 一开始是国外的源比较慢,建议换成国内的源,常用的有清华源.阿里源等. 清华源地址 Ubuntu 的软件源配置文件是 /etc/apt/source ...
- Word 查找和替换字符串方法
因为项目需要通过word模板替换字符串 ,来让用户下载word, 就在网上找了找word查找替换字符串的库或方法,基本上不是收费,就是无实现,或者方法局限性太大 .docx 是通过xml来存储文字和其 ...
- Java Case Interview
什么是面向对象? 面向对象和面向过程的区别: 面向过程更注重每一个步骤以及其顺讯,面向对象更注重哪些对象,他们具有哪些能力 面向过程比较直接,而面向对象更易于复用.扩展和维护 三大特性: 封装:内部细 ...
- 1053 Path of Equal Weight
Given a non-empty tree with root R, and with weight Wi assigned to each tree node Ti. The weig ...