linux计划任务

来源:互联网 发布:在Mac上如何使用jdk 编辑:程序博客网 时间:2024/05/17 20:28

13.1 例行性命令概述
例行性命令相当于windows中的计划任务,是按照固定的规律与时间执行一些常规的操作,比如定时关闭服务器与发送电子邮件,并且是在后台进行操作。
13.1.1 例行性命令的种类
1. at    仅执行一次的,主要做一些突发的事件。
2. cron  工作将持续做下去,周期性的事件。
13.1.2 常见的例行性命令
1. 登陆日志的数据轮换。
2. rpm数据库的建立。
3. 建立locate数据库。
4. 程序分析。
5. 检查登录文件。
6. 指纹数据库的比较,分析最近更改过的内容。

13.2 用户at一次性任务分配
13.2.1 at服务启动

at服务默认不打开at服务,需要手动打开。
chkconfig --level 35 atd on     打开at服务并开机自启动
/etc/init.d/atd start
service atp restart
13.2.2 at工作原理
at的工作记录文件在/var/spool/at目录下面,并且以用户名来区分是属于哪个用户的文件,例如:redhat用户就在/var/spool/at/redhat下面。
系统默认所有用户都可以使用at,如果不想让谁使用,可以找到以下文件/etc/at.allow与/etc/at.deny,进行相关编辑。
一般情况下:
先找allow,写在里面的用户才能用at,或deny里面没有的用户才能使用at。如果没有这两个文件的话,只有root用户才能使用。
FC5只有at.deny且里面为空,所以所有用户都可以使用at,具体系统应根据相关的情况进行确认。
13.2.3 at任务分配
at -m time
-m   任务完成后以电子邮件形式通知用户
示例:
at 15:20 2009-1-20

at> /bin/sync
at> /bin/sync
at> /sbin/shutdown -r now         命令最好使用绝对路径
at> <EOT>          ctrl+d
job 1 at 2009-01-20 15:20

13.2.4 at任务管理
示例:
atq  查询有多少at工作任务。
2       2009-01-20 17:00 a root

atrm 2   删除刚才创建的工作任务。

13.3 用户cron周期性任务分配
13.3.1 cron服务启动

cron服务默认是开启的。
chkconfig --list |grep crond     查年crond服务的启动情况
/etc/init.d/crond start
service crond restart
13.3.2 cron工作原理
cron的工作记录文件在/var/spool/cron目录下面,并且以用户名来区分是属于哪个用户的文件,例如:redhat用户就在/var/spool/cron/redhat下面。
与at一样。
/etc/cron.allow
/etc/cron.deny
fc5只有cron.deny
不要直接编辑/var/spool/cron/redhat配置文件。Cron的每一项任务的执行都会在/var/log/cron日志中有记录。
13.3.3 cron任务分配
crontab  命令是用户用于建立计划任务的命令是/usr/bin/crontab
-u       root用户帮助其它用户建立
-e       编辑crontab内容
-l       查年crontab内容
-r       删除crontab内容
crontab文件中参数格式:
分  时  日  月  周   命令串
时间参数意义:
*   代表任意时间。
,  代表分隔如出2,3表示2,3都行。
-   表示一段时间范围内。2-4表示234
/n  表示每隔单位时间。
命令串:要加入绝对路径,否则不能成功。
参数示例:
59 23 1 5 *  5月1日23:59
30 16 * * 5  星期五的16:30
*/5 * * * *  每五分钟执行一次

示例:
crontab -e 
0  12  *  *  *  /sbin/shutdown -r  表示任何月日的12点都执行重启


13.3.4 cron任务管理
示例:
crontab -l   查看crontab内容

# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.1820 installed on Tue Jan 20 16:16:34 2009)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
0  12  *  *  *  shutdown -r

crontab -r   全部删除crontab中的内容

13.4 系统周期性任务分配
13.4.1 系统cron服务启动

用户与系统cron服务都是/etc/init.d/crond 
crontab -e 是针对用户来进行计划性任务来进行分配的。对于系统计划任务只需要编辑/etc/crontab配置文件就可以了,可以用root用户进行编辑。
通常cron服务最低检测限制是分钟,所以cron每分钟去读取一次/etc/crontab 以及/var/spool/cron目录中的内容进行执行。


13.4.2 系统cron服务配置
cat /etc/crontab

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

查看配置文件后,我们可以看到,其中也可以再加入其它任务性命令,只不是加入在哪个文件中,结合上面的用户cron命令的使用,我们可以根据需要进行灵活的使用。

0 0
原创粉丝点击