它山之石可以攻玉

键盘上的生活
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Linux常用命令之定时任务

Posted on 2018-03-26 14:25  陈达辉  阅读(1744)  评论(0编辑  收藏  举报

定时任务的实现,可以让我们把很多重复的,有规律的事情交给机器做。我们就不用苦逼的烦躁做同一件事,这样也让我们做程序的有更多的乐趣和价值。用技术的手段解决常人花时间精力解决的问题。在Linux下实现定时任务主要有两个命令:at、crontab。今天就详细的讲解下这两个常用的Linux命令

crontab命令被用来提交和管理用户的定时任务。当安装完成Linux系统,会自动启动crond进程。crond进程会每分钟检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
crontab参数:
-e:编辑该用户的计时器设置;
-l:列出该用户的计时器设置;
-r:删除该用户的计时器设置;
-u<用户名称>:指定要设定计时器的用户名称。
crontab的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下: minute hour day month week command,时间字段都是整数, command:要执行的命令,可以是系统命令,也可以是自己编写的shell脚本文件。 在以上各个字段中,还可以使用以下特殊字符:
星号(*):代表所有可能的值,全部。
逗号(,):可以用逗号隔开的值指定一个列表范围。
中杠(-):可以用整数之间的中杠表示一个整数范围。
正斜线(/):可以用正斜线指定时间的间隔频率。
crontab例子:

30 23 * * * /usr/sbin/httpd restart    #表示每晚的23:30重启apache
45 1 5,15,25 * * /usr/sbin/httpd restart  #表示每月5、15、25日的1 : 45重启apache
* 23-3/1 * * * /usr/sbin/httpd restart #晚上23点到早上3点之间,每隔一小时重启apache

at用于在指定时间执行命令
at参数:
-f:指定包含具体指令的任务文件;
-q:指定新任务的队列名称;
-l:显示待执行任务的列表;
-d:删除指定的待执行任务;
-m:任务执行完成后向用户发送E-mail。
at例子:

[root@Linux ~]# at now + 1 minutes
at> echo raykaeso
at> <EOT> #这个用Ctrl+d
job 2 at Sat Aug 1 17:31:00 2015