按期执行任务的相关命令
做为一个linux系统运维师,在咱们工做的时候须要按期去执行一些脚本或是命令,好比早上几点咱们要开启什么服务,咱们不可能守在计算机旁等到那个时候去手动执行那些须要脚本或是命令,万一咱们没有按时赶到工做场所就会给咱们的公司带来巨大的损失,鉴于此,linux给咱们提供了一个很好的命令crontab。
在咱们学习此命令以前我还会给你们介绍一个临时执行按期任务的命令,此命令只是在将来的时间段内执行一次。
1、在将来的某个时间仅执行一次
# at 和 # batch
时间表示法:
HH:MM(AM,PM)
MM/DD/YY
now + # (minutes,hours,days,weeks
[root@localhost ~]# at now+1minutes
at>
当输入 at now+1minutes 按回车以后会出现at> ,在这以后能够输入你要执行的命令或是脚本,输入完以后按crtl+d ,这些命令执行完以后,系统会给你发mail 。
[root@localhost ~]# at -l 列出任务列表 或是(atq)
2 2012-02-27 21:07 a root
[root@localhost ~]# at -r 2 能够删除将来要执行但还没有执行的任务(atrm job_num)
[root@localhost ~]# at -l 在查看一下列表发现任务以删除
[root@localhost ~]#
[root@localhost ~]# at -f 1.sh now+1minutes 当是一个脚本的时候须要加-f
batch的方法和at的差很少,只是batch 在用的时候不须要指定时间,计算机会根据你的系统运行状况,在资源利用率低,闲下来的时候去执行你给出的命令。
2、按期执行任务的命令 (如今就开始讲今天的重点)
crontab是一个按期执行任务的命令,在使用的时候实际上是在编译一个文件
其分为两类,
1. 用户cron 文件在 /var/spool/cron/USERNAME
2. 系统cron 文件在 /etc/crontab
咱们先看一些文件中都有什么内容
[root@localhost ~]# 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
在这个文件中咱们只要关注的是后四行,每一行能够分红7列,像下边的同样,分别表示对应的关系
01 * * * * root run-parts /etc/cron.hourly
分钟 小时 天 月 周几 用户 命令或脚本
其中在普通用户中没有用户那一列,前五列均可以用数字表示,若是用 * 则表示“每”的意思
还有一些特别的表示方法:
非连续的时间点:
15,45 * * * * 每小时的第15分钟和第45分钟执行一次
连续的时间点:
1 8—18 * * * 从8点到18点每小时执行一次
*/#
*/3 * * * * 每隔三分钟执行一次
[root@localhost ~]# crontab -e 能够打开一个编译文件,这是普通用户
[root@localhost ~]# crontab -l 列出本身的任务计划
*/3 * * * * /sbin/hwclock -s
作为管理员能够为普通用户定义计划
#crontab -u name -e
其中在咱们在执行命令以后在文件中写的命令,要把命令的路径给指出来,由于系统不识别,还要注意的是若是是一个脚本的话,脚本里的命令也要指出其全路径
咱们能够经过以下命令来获取每一个命令的路径
[root@localhost ~]# which useradd 查看其在那个目录里
/usr/sbin/useradd
[root@localhost ~]# rpm -qf /usr/sbin/crond 查看命令是由那个包安装以后实现的
vixie-cron-4.1-76.el5
咱们在将一些其余的查看命令
[root@localhost ~]# chkconfig --list 查看服务列表
当咱们学会了怎样运用crontab命令以后,咱们思考一下,其实这个命令是有一些漏洞的,当咱们的电脑关机以后,写在文件中的命令,电脑是不会执行的,也就是咱们的按期任务不能顺利的完成,因此在有些时候会出现一些问题的。但咱们的linux大可能是做为服务器的,机器压根就不回随便的重启或是关机,因此这个命令已经足够对付咱们工做是的任务了。
但为了知足一些linux各人发烧有的要求,在此我仍是给你们说一个在咱们的电脑关机以后系统仍然会执行按期任务的命令anacron,
anacron (即便电脑关机任务依然执行)只有定义了计划 才能启动其服务
其文件在/etc/anacrontab
1 65 cron.daily run-parts /etc/cron.daily
1表示曾通过去多少天没有执行的任务 65系统开机多长分钟执行没执行的任务
今天除了这些以外我在给你们说一个小命令 hwclock
#hwclock -w 将date写入clock
-s 将clock写入date
date是当前系统的时间,有时候会不稳定,
clock貌似是 biso时间通常都是很稳定的,因此就有了上述的命令,来更改咱们错乱的时间,也能够将一个命令写在按期任务里边,来使机器开启的时候自动校对时间。
*/3 * * * * /sbin/hwclock -s