linux_cron定时任务
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、计划任务概说:
计划任务,是任务在约定的时间执行已经计划好的工作,这是表面的意思。在Linux中,我们经常用到crond 服务器来完成这项工作。cron服务器可以根据配置文件约定的时间来执行特定的作务。比如我们可以在配置文件中约定每天早上4点,对httpd 服务器重新启动,这就是一个计划任务:
下面我们先来说说cron:
2、cron:
在Linux系统中,计划任务一般是由cron承担,我们可以把cron设置为开机时自动启动。cron启动后,它会读取它的所有配置文件(全局性配置文件/etc/crontab,以及每个用户的计划任务配置文件),然后cron 会根据命令和执行时间来按时来调用度工作任务。
2.1 cron 的安装和启动:
在一般情况下,cron都是系统默认安装的,我们要学会查看软件包是否已经安装:
2.1.1 在Redhat 或Fedora等RPM包管理的系统的安装:
判断系统是否已经安装cron相关的包
Fedora 5.0 系统的情况:
其它版本的Fedora及Redhat的系统和这相似:
[root@localhost ~]# rpm -qa |grep cron
vixie-cron-4.1-54.FC5
anacron-2.3-36.1
crontabs-1.10-7.1
其中vixie-cron软件包是cron的主程序,您可以通过下面的命令来了解它,其它软件包同理:
[root@localhost beinan]# rpm -ql vixie-cron
crontabs 软件包是用来安装、卸装、或列举用来驱动cron 守护进程的表格的程序。cron 守护进程检查crontab 文件来查看某个指定命令被调度执行的时间。如果命令已经调度,守护进程就会执行它们。了解crontabs软件包都安装了些什么,应该用下面的命令:
[root@localhost beinan]# rpm -ql crontabs
如果没有安装,可以从光盘中找出文件名带有cron字样的软件包来安装。
[root@localhost ~]# rpm -ivh vixie-cron-4.1-54.FC5*
[root@localhost ~]# rpm -ivh crontabs*
也可以用yum 来在线安装:
[root@localhost ~]# yum install vixie-cron
[root@localhost ~]# yum install crontabs
2.1.2 在Slackware系统中的安装:
在Slackware中cron软件包是dcron,您可以在光盘中找出来安装它:
查看是否已经安装了dcron软件包,您可以这样查看。在这里能列出软件包详细的安装情况:
[root@localhost ~]# more /var/adm/packages/dcron*
如果没有安装,请用下面的命令来安装。在第一张安装盘中找出dcron软件包:
[root@localhost ~]# installpkg dcron*.tgz
2.1.3 cron 的开启、停止、重新启动方法:
cron配置文件被修改后,想让新文件生效,必须重新crond服务器,有两种方法可供选择:
第一种在Fedora或Redhat 等以RPM包管理的系统中:
[root@localhost ~]# /etc/init.d/crond start
[root@localhost ~]# /etc/init.d/crond stop
[root@localhost ~]# /etc/init.d/crond restart
如果想在Fedora 和Redhat 或以这些发行版为基础克隆的发行版,如果想自动开机运行,请用下面的办法:
[root@localhost ~]# chkconfig --levels 35 crond on
第二种:通用
[root@localhost ~]# pgrep crond 注:判断crond 是否在运行:
[root@localhost ~]# pkill crond 注:杀掉正在运行中的crond:
[root@localhost ~]# pgrep crond 注:查看是否被杀掉了:
[root@localhost ~]# /usr/sbin/crond 注:运行crond:
2.2 cron 配置文件:
cron 是一个服务器程序,我们都知道Linux的服务器的配置,大多是通过配置文件来完成的,cron自然也不例外,在Redhat/Fedora 等系统中它的全局性配置文件是/etc/crontab:在Slackware系统中,全局性文件是/var/spool/cron/crontabs/root 。每个用户也有自己的cron配置文件,我们可以通过crontab -e 来编辑它:
2.2.1 全局性配置文件:
下面是一个全局性的配置文件例子,以Fedora Core 5为例:
[root@localhost ~]# more /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
1 * * * * root run-parts /etc/cron.hourly
#
2 4 * * * root run-parts /etc/cron.daily
#