Linux计划任务(转载)
Linux的计划任务是系统管理方面的一个重要内容,是系统自动完成工作的一种实现方式,正因为有了计划任务,我们才可以完全实现系统管理的脚本化和自动化。
关于计划任务,Linux根据用户需要提供了两种服务,一种是atd服务,另一种是cron服务
1.atd服务
如果你的计划任务只要执行一次,那么就请你使atd服务。在默认情况下,Linux系统是开启了atd这个服务的。如果不确认你的Linux是否开启了atd服务,请使用下面这个命令查看:
# /etc/init.d/atd status
atd (pid 3016)正在运行...
从上面可以看出atd服务是启动的。如果你的atd服务没有启动可以使用
# /etc/init.d/atdstart
来启动你的atd服务。
atd服务中我们经常要使用到的是at命令,与at命令相关的有/etc/at.deny和/etc/at.allow两个文件用来过滤哪些用户可以使用at命令。Linux预设情况下,只有/etc/at.deny这个文件,且这个文件内容为空,由于内容没有任何使用者,所以所有人都可以使用at命令。如果不想要某个使用者使用at时,那么将该使用者登录用户名写到/etc/at.deny这个文件中即可。
Linux系统中还可以自行创建/etc/at.allow文件,使得写在这个文件中的使用者才能使用at,没有在这个文件中的使用者则不能使用at (即使没有写在at.deny当中)。如果这两个文件都不存在,那么只有root可以使用at命令。
下面来看一下如何使用at命令:
at [-m] TIME;//下达计划任务,之后会出现编辑窗口,写入要执行的命令
-m:执行at计划任务时,将屏幕输出结果mail给下达指令的使用者。
TIME的格式具体请参照我下面的列子吧。
# at 04:002011-09-20//在2011年9月20号上午四点执行命令。
# at 11pm//今天晚上11点执行,如果已经过了,等到明天晚上
# at 08am + 3weeks //三周后的上午八点执行
此外还有两个常用命令:
atq;//查看计划任务
atrm;//删除计划任务
2.crond服务
2.1 crond服务简介
linux任务调度的工作主要分为以下两类:
*系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
*个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置。
这个时候可以用cron来帮助系统进行任务调度。cron可以根据时间、日期、月份、星期的组合来调度对重复任务的执行的守护进程。
crond服务通过shell和Linux/Unix下的crontab(计划任务控制)的方式实现。cron是计划任务的称呼,crond是后台进程,而crontab则是定制好的计划任务表。cron这个名字来自“chronos”,一个古希腊语“时间”的意思。crond进程每分种会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
要使用crond服务,你必须安装了vixie-cron RPM软件包,而且必须在运行crond服务。要判定该软件包是否已安装,使用rpm -qvixie-cron命令。要判定该服务是否在运行,使用/sbin/service crond status命令。
crond服务是linux的内置服务,但它不会开机自动启动。可以用以下命令启动和停止服务:
/sbin/service crond start//启动服务
/sbin/service crondstop //关闭服务
/sbin/service crondrestart //重启服务
/sbin/service crondreload //重新载入配置
你也可以让这个服务在系统启动的时候自动启动,只需要在/etc/rc.d/rc.local这个脚本的末尾加上:
/sbin/service crondstart
2.2 crond服务的使用
crond服务提供crontab命令来设定crond服务,以下是这个命令的一些参数与说明:
crontab -u//设定某个用户的cron服务,一般这个参数只允许root使用
crontab -l//列出某个用户cron服务的详细内容
crontab -r //删除某个用户的cron服务
注意:如果有多条计划任务crontab-r会删除用户所有的计划,如果你只想删除其中一条计划任务,请使用crontab -e命令或者直接编辑/var/spool/cron/root文件。
crontab -e//编辑某个用户的cron服务
现举例说明:
# crontab -u root–l//root查看自己的cron设置
# crontab -u fred–r//root想删除fred的cron设置
# crontab -u root–e//编辑root的crontab文件
crontab -e命令编辑的是/var/spool/cron下对应用户的cron文件
我们也可以直接修改/etc/crontab文件,crontab文件有自己的格式,具体如下:
Minute Hour Day Month Dayofweek command
分钟小时天月天每星期命令
每个字段代表的含义如下:
Minute每个小时的第几分钟执行该任务
Hour每天的第几个小时执行该任务
Day每月的第几天执行该任务
Month每年的第几个月执行该任务
DayOfWeek每周的第几天执行该任务
Command指定要执行的程序
举例如下:
5 * * * * ls//指定每小时的第5分钟执行一次ls命令
30 5 * * * ls//指定每天的5:30执行ls命令
30 7 8 * * ls//指定每月8号的7:30分执行ls命令
30 5 8 6 * ls//指定每年的6月8日5:30执行ls命令
30 6 * * 0 ls//指定每星期日的6:30执行ls命令
注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等
30 3 10,20 * * ls//每月10号及20号的3:30执行ls命令
注:“,”用来连接多个不连续的时段
258-11 ***ls//每天8-11点的第25分钟执行ls命令
注:“-”用来连接连续的时段
*/15 * * * * ls//每15分钟执行一次ls命令(即每个小时的第0 15 30 45 60分钟执行ls命令)
30 6 */10 * * ls//每个月中,每隔10天6:30执行一次ls命令(即每月的1、11、21、31日是的6:30执行一次ls命令)
50 7 * * * rootrun-parts /etc/cron.daily//每天7:50以root身份执行/etc/cron.daily目录中的所有可执行脚本
注:run-parts参数表示,执行后面目录中的所有可执行文件,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了
30 5 * * * ls</jp/test 2<&1//每天5:30执行ls命令,并把结果输出到/jp/test文件中
注:2<&1表示执行结果及错误信息
记住几个特殊符号的含义:
"*"代表取值范围内的数字,
"/"代表"每",
"-"代表从某个数字到某个数字,
","分开几个离散的数字
在这些字段里,除了“Command”是每次都必须指定的字段以外,其它字段皆为可选字段,可视需要决定。对于不指定的字段,要用“*”来填补其位置。
Linux计划任务(转载)的更多相关文章
- Linux计划任务Crontab实例详解教程
说明:Crontab是Linux系统中在固定时间执行某一个程序的工具,类似于Windows系统中的任务计划程序 下面通过详细实例来说明在Linux系统中如何使用Crontab 操作系统:CentOS ...
- Linux. 计划任务 时间格式
Linux. 计划任务 时间格式 在linux中执行指令:cat /etc/crontab 结果,如下图所示: 结果一目了然,不多说. 如有问题,欢迎纠正!!! 如有转载,请标明源处:https:// ...
- 学习笔记:CentOS7学习之十七: Linux计划任务与日志的管理
目录 学习笔记:CentOS7学习之十七: Linux计划任务与日志的管理 17.1 计划任务-at-cron-计划任务使用方法 17.1.1 at计划任务的使用 17.1.2 查看和删除at将要执行 ...
- linux 命令总结(转载)
linux 命令总结(转载) 1. 永久更改ip ifconfig eth0 新ip 然后编辑/etc/sysconfig/network-scripts/ifcfg-eth0,修改ip 2.从Lin ...
- Linux 计划任务总结
今天项目用到了,Linux计划任务,从网上找了基本blog看了,总结了下. Linux 下的计划任务有atd和crond两种计划任务.atd服务使用的at命令只能执行一次,而crond服务使用的cro ...
- Linux计划任务,自动删除n天前的旧文件
Linux计划任务,自动删除n天前的旧文件 linux是一个很能自动产生文件的系统,日志.邮件.备份等.虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费,但需求总是多方面的嘛-我就觉得让系统定时 ...
- Linux计划任务 定时任务 Crond 配置详解 crond计划任务调试 sh -x 详解 JAVA脚本环境变量定义
一.Crond 是什么?(概述) crontab 是一款linux系统中的定时任务软件用于实现无人值守或后台定期执行及循环执行任务的脚本程序,在企业中使用的非常广泛. 现在开始学习linux计 ...
- linux计划crontab
linux计划crontab 启动crontab服务 一般启动服务用 /sbin/service crond start 若是根用户的cron服务可以用 sudo service crond sta ...
- Linux计划任务,自动删除n天前的旧文件【转】
转自:http://blog.csdn.net/jehoshaphat/article/details/51244237 转载地址:http://yaksayoo.blog.51cto.com/510 ...
随机推荐
- 集合框架-TreeSet
TreeSet是Set集合的常见子类. TreeSet:底层结构是 二叉树 元素是有排序的,但是不可以有重复元素. 相关代码演练: /* TreeSet ;元素是有序的,但是不可以元素重复. */ i ...
- WCF学习心得
之前很经常听说WCF,不过没有怎么接触过,直到最近才真正使用到WCF,虽然也只是皮毛而已,在此也做个记录总结吧. 下图是我使用WCF的练手项目,由于是使用VS2010直接创建的WCF服务应用程序,VS ...
- js触摸屏案例
js 手机端触发事事件.javascript手机端/移动端触发事件 处理Touch事件能让你跟踪用户的每一根手指的位置.你可以绑定以下四种Touch事件: 1 2 3 4 touchstart: ...
- 看懂此文,不再困惑于 JS 中的事件设计
看懂此文,不再困惑于 JS 中的事件设计 今天刚在关注的微信公众号看到的文章,关于JS事件的,写的很详细也很容易理解,相关的知识点都有总结到,看完就有种很舒畅的感觉,该串起来的知识点都串起来了.反正一 ...
- [Backbone.js]如何处理Model里面嵌入的Collection?
写了近半个月的backbone.js代码,从一开始的todo到现在做仿微信的网页聊天,其中最大的困惑就在于如何处理比较复杂的Model,其内嵌了一个或者多个Collections. 假设我们有一个Pe ...
- BuildSigar
https://support.hyperic.com/display/SIGAR/Home;jsessionid=7436F86CA13B66BCE1A827043E159F34#Home-down ...
- Android开发之发送邮件功能的实现(源代码分享)
Android开发中可能会碰到如何发送邮件的困扰,之前我也查了相关的文档,博友们也分享了不少的发送邮件的办法,总共有3种把,我仔细阅读了下,发现有的讲的太过复杂跟麻烦,不够清晰,我今天就来分享下我认为 ...
- MATLAB介绍
MATLAB MATLAB[1] 是美国MathWorks公司出品的商业数学软件,用于算法开发.数据可视化.数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink ...
- 用MFC实现OpenGL编程
一.OpenGL简介 众所周知,OpenGL原先是Silicon Graphics Incorporated(SGI公司)在他们的图形工作站上开发高质量图像的接口.但最近几年它成为一个非常优秀的开放式 ...
- 公司需求知识自学- Hashtable简单应用
定义表 Hashtable tblNames = new Hashtable(); 添加key,value键值对 tblNames.Add("A","a"); ...