Linux计划任务(转载)

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”是每次都必须指定的字段以外,其它字段皆为可选字段,可视需要决定。对于不指定的字段,要用“*”来填补其位置。

时间: 2024-10-06 04:41:50

Linux计划任务(转载)的相关文章

Linux计划任务Crontab实例详解教程

说明:Crontab是Linux系统中在固定时间执行某一个程序的工具,类似于Windows系统中的任务计划程序 下面通过详细实例来说明在Linux系统中如何使用Crontab 操作系统:CentOS 一.安装crontab yum install vixie-cron  #安装 chkconfig crond on  #设为开机启动,先要安装chkconfig(yum install chkconfig) service crond start  #启动 service crond stop  

25、Linux计划任务详解

Linux任务计划 相信每个人都有使用闹钟的习惯,比如提醒一次,工作日提醒,女朋友生日提醒(首先你要先有个女朋友),在设定闹钟之后,我们可以在设定的时间去提醒你做什么事情 Linux计划任务工具介绍 在各类系统上面都有计划任务功能,在linux上面主要两种工具,at和crontab at命令是专门来执行处理一次性的任务计划的 crontab可以根据定义的时间周期,循坏的去做一些事情 任务计划分类: 一次性的任务计划:只执行一次就结束 周期性的任务计划:每隔一定时间就去执行 at一次性任务 假如我

Linux计划任务at&batch&crontab

计划任务        执行一次某任务:at,batch        周期性运行某任务:crontab    1.at命令,只执行一次 at/atq/atrm/batch    at [option]... time        HH:MM[YYYY-mm-dd] //        noon,midnight,teatime //12:00,24:00,16:00        tomorrow HH:MM         now+#            UNIT:minutest,ho

linux 计划任务(十)

[教程主题]: 计划任务 [1]at 在windows系统中,windows提供了计划任务这一功能,在控制面板 -< 性能与维护 -< 任务计划, 它的功能就是安排自动运行的任务. 通过'添加任务计划'的一步步引导,则可建立一个定时执行的任务. 在linux系统中你可能已经发现了为什么系统常常会自动的进行一些任务?这些任务到底是谁在支配他们工作的?在linux系统如果你想要让自己设计的备份程序可以自动在某个时间点开始在系统底下运行,而不需要手动来启动它,又该如何处置呢? 这些例行的工作可能又分

linux计划任务自动备份并ftp上传脚本

#!/bin/sh # 备份 #bak_dir=`date +%C%y%m%d%H%M` ##文件命名规则可以是时间 backup_dir=/home/IPTV4.9 ##存储备份文件路径 mkdir -p $backup_dir Ip_addr=`ifconfig \`route |grep default |awk '{print $8}'\` |grep Bcast |awk -F: '{print $2}' |awk '{print $1}'` Host_name=`hostname`

linux 命令总结(转载)

linux 命令总结(转载) 1. 永久更改ip ifconfig eth0 新ip 然后编辑/etc/sysconfig/network-scripts/ifcfg-eth0,修改ip 2.从Linux上远程显示Windows桌面 安装rdesktop包 3. 手动添加默认网关 以root用户, 执行: route add default gw 网关的IP 想更改网关 vi /etc/sysconfig/network-scripts/ifcfg-eth0 更改GATEWAY  /etc/in

linux计划任务(二)

计划任务的授权 1.at任务 /etc/at.allow /etc/at.deny 2.crontab任务 /etc/cron.allow /etc/cron.deny [注:如果allow文件存在,则allow中的用户可以使用计划任务,allow文件不存在则去找deny文件,deny文件中的用户不可以使用计划任务] [注:如果allow和deny文件都不存在,则表示只有root用户可以使用] 计划任务的补救 anacron服务 延迟补救 如果计划任务执行失败 [[email protected

关于file文件操作的头文件 【LINUX】 (转载)

转自:http://blog.csdn.net/figo77ll/article/details/3156052 Linux下如果要对文件进行读取访问,需要包含至少以下两个头文件: #inlcude <unistd.h> #inlcude <fcntl.h> 其中fcntl.h包含了create和open命令,unistd包含了其他的诸如read, write, close等命令.很奇怪为什么不把fcntl的功能直接放到unistd里面呢.. 如果要对STDIN,STDOUT进行“

linux 入侵检查转载

转载 本文给大家收集整理了一些审查Linux系统是否被入侵的方法,这些方法可以添加到你运维例行巡检中. 1. 检查帐户 代码如下: # less /etc/passwd # grep :0: /etc/passwd(检查是否产生了新用户,和UID.GID是0的用户) # ls -l /etc/passwd(查看文件修改日期) # awk -F: ‘$3= =0 {print $1}’ /etc/passwd(查看是否存在特权用户) # awk -F: ‘length($2)= =0 {print