linux计划任务at、batch和crontab命令

在我们日常服务器管理中,不管是Windows还是Linux都不可避免的会用到计划任务这个东西。比如说我们某天要在凌晨3点进行一次完整备份,作为运维人员咱不能设个闹钟凌晨三点爬起来一台台的敲命令打包上传到文件服务器吧。假如你够勤快、有干劲、精神好,可服务器有100台呢....

通常我们的做法是写个脚本,指定时间计算机自动执行完成任务然后把错误输出发邮件到邮箱。第二天检查下邮件就可以了。

计划任务分为2种,一种是在未来的某个时间点执行一次任务,然后是周期性的执行任务。

linux下某个时间点执行一次任务的命名有at、batch

at 命令的用法如下

at 时间

at> COMMAND

下面可以写多个命令,写好之后按Ctrl+d提交

例:我们要在21:20执行当前目录下的./check.sh跟debug.sh,如果时间已经过了那么就下一个21:20执行

时间我们可以指定相对时间和绝对时间

指定绝对时间:HH:MM DD.MM.YY

例:at 11:30 20.03.2016  在2016年03月20 11:30开始执行

指定相对时间:now+#

常用单位有:m(分钟)、h(小时)、d(天)、w(星期)

例:at now+3m  从现在开始3分钟后开始执行

设置好了之后要想查看任务列表输入:at -l

删除一个任务则使用:at -d # 或者atrm #

例:at -d 1  删除at任务列表的1号任务

atrm 1

我们如果不想某个用户使用at命令,则在/etc/at.deny文件中把该用户的用户名放进去就好了(黑名单功能)

batch命令跟at命令的区别在于batch命令不需要指定时间,它会自动选择系统空闲的时候执行一次。

如果需要周期性的执行任务,则需要用到crontab命令,这个命令其实操作一个叫cron的服务。我们可以对其进行开始、停止、重启,命令跟启动apache之类的服务是一样的。

service crond start

service crond stop

service crond restart

命令用法:

crontab -e  编辑计划任务

假如我们要增加一条计划任务

先输入crontab -e 然后开始编辑任务,编辑完按wq保存退出

格式为:*(分钟)*(小时) *(天) *(月) *(星期)  命令/脚本

例:*/5 * * * *  /home/usr1/check.sh  每五分钟执行check.sh这个脚本

crontab -l 查看当前计划任务列表

crontab -r 移除所有任务,如果只删除一个任务的自行用crontab -e 脑补

经常在论坛上看到有人发帖问为什么我写的cron任务怎么不正常执行?

这里就涉及到环境变量了,cron的所有命令都去PATH的环境变量指定的路径下去找

如果你写的命令放在其他路径,cron就找不到命令自然就执行不了

解决方法:

在编辑任务的时候使用命令的绝对路径,如果是脚本的话写脚本的时候先定义脚本的环境变量,这样脚本执行的时候就使用的自身的环境变量了。

时间: 2024-12-14 14:39:37

linux计划任务at、batch和crontab命令的相关文章

Linux计划任务at&batch&crontab

计划任务        执行一次某任务:at,batch        周期性运行某任务:crontab    1.at命令,只执行一次 at/atq/atrm/batch    at [option]... time        HH:MM[YYYY-mm-dd] //        noon,midnight,teatime //12:00,24:00,16:00        tomorrow HH:MM         now+#            UNIT:minutest,ho

Linux未来任务的调度——at,batch,crontab命令

### 在linux中,我们可以实现对于任务的未来调度,从而可以借助于linux实现半自动化运维操作方式,简而言之就是可以在未来的某个时间点,系统可以自动运行我们部署的任务 前提: 需要一个准确的时间 可以支持任务调度的应用程序 **注意**: 在计划任务中,所有执行的命令的输出结果,这类及结果均以邮件的方式发送至指定的用户邮箱中: 邮箱的发送: mail命令 mail [-s SUBJECT]  USERNAME[@DOMAINNAME] (Ctrd + d发送) 系统用户的邮箱的目录/var

[9-5]Mail机制和任务计划at、batch、crontab知识梳理和课后练习

本文旨在复习Linux内部的Mail机制以及任务计划基本原理和用法. 知识储备 任务计划通常分为2类: 未来一次性执行的计划[at.batch] 未来周期性执行的计划[crontab] 无论是at.batch.crontab,任务计划在执行后都会通过邮件的方式发送给管理员和用户,请注意无论执行成功或者失败都会发送邮件哦; 邮件是Mail命令来支撑的,当然Mail还可以支撑其他任何需要调用邮件的程序或服务,很多维护类的工作会以邮件的方式发送给管理员; 每个用户被创建后系统会给用户一个邮筒,默认是/

详述Linux计划任务的 at和crontab的命令 以及如何查看crontab日志

一:1.计划任务,是任务在约定的时间执行已经计划好的工作,这是表面的意思.在Linux中,我们经常用到 cron 服务器来完成这项工作.cron服务器可以根据配置文件约定的时间来执行特定的作务.比如我们可以在配置文件中约定每天早上4点,对httpd 服务器重新启动,这就是一个计划任务: 2.cron是一个linux下的定时执行工具 Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动.关闭这个服务: /sbin/service crond start //启动服务 /sbin/

linux之at batch crontab命令

Linux任务计划.周期性任务执行 未来的某时间点执行一次任务:at, batch    周期性运行某任务: cron 电子邮件服务:        smtp: simple mail transmission protocol, 用于传送邮件:        pop3: Post Office Protocol        imap4:Internet Mail Access Protocol mailx - send and receive Internet mail MUA:Mail U

Linux下crontab命令的用法

cron来源于希腊单词chronos(意为“时间”),是linux系统下一个自动执行指定任务的程序.例如,你想在每晚睡觉期间创建某些文件或文件夹的备份,就可以用cron来自动执行. 服务的启动和停止 cron服务是linux的内置服务,但它不会开机自动启动.可以用以下命令启动和停止服务: Linux代码   /sbin/service crond start /sbin/service crond stop /sbin/service crond restart /sbin/service cr

【转】每天一个linux命令(50):crontab命令

原文网址:http://www.cnblogs.com/peida/archive/2013/01/08/2850483.html 前一天学习了 at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,linux系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的.另外, 由于使用者自己也可以设置计划任务,所以, Linux 系统也提供了使用者控制计划任务的命令 :crontab 命令. 一.crond简介

linux crontab 命令

Linux 系统提供了使用者控制计划任务的命令 :crontab 命令. 一.crond简介 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务. Linux下的任务调度分为两类,系统任务调度和用户任务调度. 系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘.日

Linux定时任务Crontab命令

linux 系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的.另 外, 由于使用者自己也可以设置计划任务,所以, Linux 系统也提供了使用者控制计划任务的命令 :crontab 命令. crond简介 crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动crond进程,crond进