定时任务 && 例行任务

仅执行一次的工作调度—at/batch

服务

atd

服务启动

/etc/init.d/atd start

at运行方式

/etc/at.allow

首先寻找at.allow,在其中的用户才可以使用at,其他人不可以使用(即使不在at.deny中)

/etc/at.deny

没有at.allow时,不在at.deny中的用户可以使用at

at运行

at [-mldv] TIME

         at -c 工作号码

m      当at工作完成后,即使没有输出信息,也给用户发送email

l        小写l,相当于atq,列出目前系统上面的所有at调度

d       相当于atrm,取消一个在at调度中的工作

v       使用较明显的时间格式输出at调度任务列表

c       列出该项工作的实际命令内容

TIME         时间格式,定义at工作执行时间

HH:MM   今日的HH:MM,若已超过,则明日

04:00

HH:MM YYYY-MM-DD

04:00 2009-03-17

HH:MM[am|pm] [Month] [Date]

04pm March 17

HH:MM[am|pm] + number [minutes|hours|days|weeks]

04pm + 3 days

[ctrl]+d结束输入

例:

                   at now + 5 minutes

/bin/mail root -s "test at job" < /root/.bashrc

[ctrl]+d

                   at 23:00 2009-03-17

/bin/sync

/bin/sync

/bin/shutdown -h now

[ctrl]+d

at特点

1. at的执行与终端机环境无关,所有的stdout和stderr会传送到执行者的mailbox中,要输出信息可以使用"echo "Hello" > /dev/tty1 "

2. 系统会将at工作独立出bash环境,直接交给系统的atd程序接管。

batch

执行方式与写法同at,会在系统负载小于0.8时候执行

循环执行的例行性工作调度-crontab

服务

crond

启动

系统默认启动

服务运行方式

/etc/cron.allow

不在这个文件中的用户不可使用crontab

/etc/cron.deny

在这个文件当中的用户不可使用crontab

日志记录

/var/log/cron

crontab使用

         crontab [-u username] [-l|-e|-r]

u       只有root才可使用,帮助其他用户建立crontab任务

l        查阅crontab

e       编辑crontab

r        删除所有的crontab,只删除一项,使用-e编辑即可

crontab编辑

  

  

/etc/crontab

  

两种任务执行方式:

让系统每2分钟去执行/etc/cron.min目录下的所有可执行文件

*/2 * * * * root run-parts /etc/cron.min

  每5分钟执行程序

*/5 * * * * root /bin/mrtg /etc/mrtg/mrtg.cfg

唤醒停机期间的任务-anacron

用途:

  以一天、七天、一个月为期,或者在开机后立刻检测在停机期间应该进行但是没有进行的/etc/anacrontab中定义的任务,并将该任务执行一遍,然后anacron自行停止,可与crontab结合,达到每天执行

使用

         anacron [-sfn] [job] ..

         anacron -u [job]

s       开始连续执行各项工作job,会依据时间记录文件的数据判断是否进行

f        强制进行,而不去判断时间记录文件的时间戳

n       立刻进行未进行的任务,而不延迟等待时间

u       仅更新时间记录文件的时间戳,不进行任何工作

job    由/etc/anacrontab定义的各项工作名称,默认cron.daily、cron.weekly、cron.monthly

服务运行方式

/etc/anacrontab

定义每日任务、每周任务、每月任务的执行延迟时间

原理

从/etc/anacrontab分析到crondaily这项工作名称的天数为1天

从/var/spool/anacron/cron.daily取出最近一次执行anacron的时间戳

将第二步得到的时间与目前的时间比较,差异为第一步的天数1以上(包含1),就准备执行命令

读取延迟时间

延迟时间过后,执行后续命令

使用

根据需求添加日脚本、周脚本、月脚本

在/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly中加入同步时间戳的脚本(如果不存在)

/etc/cron.daily/0anacron

if [ ! -e /var/run/anacron.pid];then

anacron -u cron.daily

fi

/etc/anacrontab定义执行延迟时间

设置anacron开机启动并且根据需要在crontab中调度anacron执行时间

时间: 2024-10-16 12:15:44

定时任务 && 例行任务的相关文章

浅谈 linux 例行性工作 crontab (linux定时任务)

定时任务大家都挺说过,就好比你手机上的闹钟,到了指定的时候就会响起. 今天在对redis缓存进行定时储存时又操作了一把,发现一些细节,写的不好.大家就将就看吧, 首先 简单介绍一下linux 例行性工作 两种方式, 主要有两种: at   (和下面一样,只是它只定时执行一次就结束) crontab 演示定时执行php程序将数据插入数据库: 一个案例表:blog 1 CREATE TABLE `blog` ( 2 `blog_id` int(10) unsigned NOT NULL AUTO_I

linux例行性任务(定时作业)

linux定时作业(例行性任务) linux有两种定时作业方式: ? at : 这个工作仅执行一次就从 Linux 系统中的排程中取消: ? cron : 这个工作将持续例行性的作下去! at仅执行一次 要使用at进行任务在未来某一时刻仅仅执行一次,必须先开启服务atd,一般为了安全系统默认atd服务未开启,使用命令/etc/init.d/atd restart 开启这个服务. 我们可以利用 /etc/at.allow 与 /etc/at.deny 这两个档案来进行 at 的使用限制呢! 加上这

Linux定时任务—crond,crontab

1.Linux 工作排程的种类: at, crontab 种类 依赖服务 描述 at atd 是个处理仅执行一次就结束排程的命令,不过要执行 at 时,必须要启动 atd 这个服务 crontab crond 这个指令所设定的工作将会循环的一直进行下去,必须要启动 crond 这个服务. 2.使用者的设定:可以限制使用 crontab 的使用者账号: /etc/cron.deny 将不可使用crontab的账号写入其中,一个账号一行 /etc/cron.allow 将允许的账号写入其中 3. /

定时任务 Crontab命令 详解

摘自:http://www.centoscn.com/CentOS/help/2014/1030/4025.html 前言 crontab是Unix和Linux用于设置周期性被执行的指令,是互联网很常用的技术,很多任务都会设置在crontab循环执行,如果不使用crontab,那么任务就是常驻程序,这对你的程序要求比较高,一个要求你的程序是24X7小时不宕机,一个是 要求你的调度程序比较可靠,实际工作中,90%的程序都没有必要花这么多时间和精力去解决上面的两个问题的,只需要写好自己的业务逻辑,通

linux下的定时任务及临时文件

1.at 定时任务的建立,查询,删除2 2.crontab 命令2 (1)命令行的方式2 (2)通过写文件的方式3 3.crontab 的黑名单和白名单4 (1)黑名单4 (2)白名单4 4.系统的临时文件的原理4 (1)写一个管理自己临时文件的配置文件5 (2)使自己的配置文件生效5 (3)你可以在刚创建的目录baitmp里面创建文件5 (4)删除临时文件6   1 at 定时任务的建立,查询,删除 [[email protected] ~]# at now+3min  <建立> at>

linux系统命令学习系列-定时任务crontab命令

上节内容复习: 1. at命令的使用 2. 作业:创建一个任务10分钟后关机 at now+10 minutes at>shutdown at><EOT> 本节我们继续来说例行任务管理命令的第二个命令:cron 在使用命令之前,看一下crond服务是否开启 service crond status 如果没有开启,可以用service crond start开启 注:有的linux系统用service cron status来查看. 1. 编辑任务crontab –e Crontab

Linux 例行任务管理

如果任务是周期性的要去执行,使用cron如果任务只是在某一个特定实践执行一次,就使用at[[email protected] grub.d]# which shutdown/usr/sbin/shutdown[[email protected] grub.d]# at now + 30 minutes #设置从现在开始30分钟后关机at> /usr/sbin/shutdown -h nowat> <EOT>job 4 at Mon Jul 30 16:54:00 2018[[ema

linux 下的 crontab 定时任务工具

以下内容转自:https://www.cnblogs.com/longjshz/p/5779215.html 在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为"crontab",是"cron table"的简写. 一.cron服务 cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业. servi

cron-您的定时任务真的执行了吗

今日上午,生产环境怀疑某个cron定时任务没有执行,所以需要分析日志,详细过程如下,记录只为以后工作更加效率,笔者小白,请大神指点. 普及知识: cron是一种机制,crontab是指令        它可以让系统在指定的时间,去执行某个指定的工作,我们可以使用crontab指令来管理cron机制  1.取一段时间日志 语法:sed -n '/开始时间/,/结束时间/p' filename sed -n '/Sep 20 08:50:*/,/Sep 20 09:50:*/p' /var/log/