crontab简介
crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其储存于“crontab”文件中linux培训学校,以供然后读取和执行。crontab存储的指令被守护进程激活,crond经常在后台运行,每一分钟检测是否有预定的作业须要执行。这类作业通常称为cronjobs。
Linux下的任务调度分为两类,系统任务调度和用户任务调度。
命令:servicecrondstatus确认定时任务是否开启?
命令:servicecrondstart开启服务
命令:servicecrondstop关掉服务
命令:servicecrondrestart重启服务
命令:servicecrondreload重新载入配置
crond服务
安装crontab:
yuminstallcrontabs
服务操作说明:
/sbin/servicecrondstart//启动服务
/sbin/servicecrondstop//关掉服务
/sbin/servicecrondrestart//重启服务
/sbin/servicecrondreload//重新载入配置
/sbin/servicecrondstatus//启动服务
查看crontab服务是否已设置为开机启动,执行命令:
ntsysv
加入开机手动启动:
chkconfig–level35crondon
开始创建一个定时任务
crontab-e编辑某个用户的cron服务
crontab-l列举某个用户cron服务的详尽内容
crontab-r删掉某个用户的cron服务(慎用)
常用方式:
1).创建一个新的crontab文件
在考虑向cron进程递交一个crontab文件之前,首先要做的一件事情就是设置环境变量EDITOR。cron进程按照它来确定使用那个编辑器编辑crontab文件。99%的UNIX和LINUX用户都使用vi,假如你也是这样,这么你就编辑$HOME目录下的.profile文件,在其中加入这样一行:
EDITOR=vi;exportEDITOR
之后保存并退出。不妨创建一个名为cron的文件,其中是用户名,比如,davecron。在该文件中加入如下的内容。
#(putyourowninitialshere)echothedatetotheconsoleevery
#15minutesbetween6pmand6am
0,15,30,4518-06***/bin/echo‘date’>/dev/console
保存并退出。确信后面5个域用空格分隔。
在前面的事例中,系统将每隔15分钟向控制台输出一次当前时间。若果系统崩溃或挂起linux安全加固,从最后所显示的时间就可以一眼看出系统是哪些时间停止工作的。在有些系统中,用tty1来表示控制台,可以按照实际情况对里面的事例进行相应的更改。为了递交你刚才创建的crontab文件,可以把这个新创建的文件作为cron命令的参数:
$crontabdavecron
如今该文件早已递交给cron进程,它将每隔15分钟运行一次。
同时,新创建文件的一个副本早已被置于/var/spool/cron目录中,文件名就是用户名(即dave)。
2).列举crontab文件
为了列举crontab文件,可以用:
$crontab-l
0,15,30,45,18-06***/bin/echo`date`>dev/tty1
你将会看见和前面类似的内容。可以使用这些方式在$HOME目录中对crontab文件做一备份:
$crontab-l>$HOME/mycron
这样,一旦不留神删掉了crontab文件,可以用上一节所述说的方式迅速恢复。
编辑crontab文件
假如希望添加、删除或编辑crontab文件中的条目linux 脚本定时执行linux 脚本定时执行,而EDITOR环境变量又设置为vi,这么就可以用vi来编辑crontab文件,相应的命令为:
$crontab-e
可以像使用vi编辑其他任何文件那样更改crontab文件并退出。假如更改了个别条目或添加了新的条目,这么在保存该文件时,cron会对其进行必要的完整性检测。倘若其中的某个域出现了超出容许范围的值,它会提示你。
我们在编辑crontab文件时,没准会加入新的条目。诸如,加入下边的一条:
#DT:deletecorefiles,at3.30amon1,7,14,21,26,26daysofeachmonth
3031,7,14,21,26**/bin/find-name“core’-execrm{};
如今保存并退出。最好在crontab文件的每一个条目之上加入一条注释,这样就可以晓得它的功能、运行时间,更为重要的是,晓得这是哪位用户的作业。
如今让我们使用上面讲过的crontab-l命令列举它的全部信息:
$crontab-l
#(crondaveinstalledonTueMay413:07:431999)
#DT:echthedatetotheconsoleevery30minites
0,15,30,4518-06***/bin/echo`date`>/dev/tty1
#DT:deletecorefiles,at3.30amon1,7,14,21,26,26daysofeachmonth
3031,7,14,21,26**/bin/find-name“core’-execrm{};
4).删掉crontab文件
要删掉crontab文件,可以用:
$crontab-r
5).恢复遗失的crontab文件
若果不留神删掉了crontab文件,假定你在自己的$HOME目录下还有一个备份,这么可以将其拷贝到/var/spool/cron/,其中是用户名。若果因为权限问题未能完成拷贝,可以用:
$crontab
其中,是你在$HOME目录中副本的文件名。
我建议你在自己的$HOME目录中保存一个该文件的副本。我就有过类似的经历,有数次删掉了crontab文件(由于r键紧挨在e键的左侧)。这就是为何有些系统文档建议不要直接编辑crontab文件,而是编辑该文件的一个副本,之后重新递交新的文件。
有些crontab的变体有些古怪,所以在使用crontab命令时要分外当心。假如遗漏了任何选项,crontab可能会打开一个空文件,或则看上去像是个空文件。这时敲delete键退出,不要按,否则你将遗失crontab文件。
.查看定时任务的执行情况
username:用户
在/var/spool/mail/{username}中可以查看近来的crontab的执行情况
6.cron的定时任务备份恢复总结;假如使用crontab-r删掉了定时任务在/var/spool/cron下有定时任务的备份.可以通过该cron寻回
假如没有权限的话su-+root.password在root用户下进行查看