Linux 使用基本知识: 用at和cron进行任务调度

Linux 使用基本知识: 用at和cron进行任务调度,第1张

如何在特定的时间运行一个命令at命令能在您所指定的时间运行您选择的命令 例如 如果我想在上午 点钟播放CDROM中的乐曲 则键入如下命令 $ at : at> cdplay 在上面的例子中 我先键入at : 然后键入回车 随后出现at命令提示符at> 在这个提示符下 又键入命令cdplay 然后用 结束输入 如果没有键入 而输入回车 则at>会在下一行出现 这样就可以键入另一条要在 : 执行的命令 依次类推 您可以安排从 : 开始执行的一系列命令 在命令输完后 用 结束输入 相当于向当前输入发出了一个 文件尾 信号 因此 如果您连续按两次 的话 您就会从系统中注销 下面的命令将列出所有待执行的作业 该命令会按照序号显示当前全部作业 $ at l如果要删除队列中的某个作业 使用如下命令 它将删除队列中序号为 的作业 $ at rm 下面的命令将在新的千年开始前五分钟启动X Window系统 $ at : / / at> startx如果一般用户无法使用at命令的话 请检查一下文件/etc/at deny和/etc/at allow 在默认配置中 系统允许所有的用户使用at命令 如果您只想让某些用户使用at命令 就需要创建文件/etc/at allow 并将可以使用at命令的用户列在文件中 对于at的其它可选项 请参见man at 如何设置cron我们在红旗Linux系统中默认安装了cron 它是一个Linux进程 主要用来在夜晚运行某些后台作业 所以您一般不需要对它做任何改动 除非您想在其中增加某些作业或修改cron运行作业的时间 cron的某些作业对系统而言是基础 用来保证系统能够长时间正常工作 cron的工作主要包括 重建文件位置的数据库 这样您才能用 locate 命令查找清空/tmp目录重建用户手册进行某些检查设置 例如增加新字体我们在每天下班时不应该关闭Linux 否则cron就无法完成它的工作 如果您确实要将计算机在夜晚关闭 就应该调整cron 让它在其它时间完成必需的工作 查看/etc/crontab文件可以了解cron作业什么时候被唤醒 $ cat /etc/crontab一个可能的示例文件如下 # run parts root run parts /etc/cron hourly root run parts /etc/cron daily root run parts /etc/cron weekly root run parts /etc/cron monthly 其中包括了四类作业 每小时执行一次的 每天执行一次的 每周执行一次的和每月执行一次的 您也可以修改该文件 以增加您自己的cron类别 文件中每一项的含义如下 分钟( ) 小时( ) 一月中第几天( ) 月份数( ) 星期几( 或星期天至星期六) 其中 表示任何有效数字 因此 每小时完成的作业记录在目录/etc/cron hourly中 这些作业每个小时的第 分钟将被执行 每天完成的作业记录在目录/etc/cron daily中 这些作业每天 点过 分执行 每周执行的作业在星期六的上午 点 分执行 每月执行的作业在每月 日上午 点 分执行 每一项的最后一列指明了当时间到了以后 要运行的命令文件的完整路径名 如果您想把早晨 点 分执行的cron作业在中午进行 把 修改为 即可 cron在每分钟都会被唤醒一次 并检查/etc/crontab是否改变 所以对cron的修改是可以立即生效的 如果您想在cron中增加自己的作业 请将您要运行的命令的脚本文件或指向脚本的链接文件拷贝到目录/etc/cron hourly或cron daily或cron weekly或cron monthly下 lishixinzhi/Article/program/Oracle/201311/18426

功能介绍

1、Cron 服务管理

Cron 服务管理命令

2、Cron 服务管理

1、cron 服务的配置主要使用 crontab 命令。cron 服务在配置的 时候是基于当前用户的,不同的用户 cron 任务的存储文件也不同。

Cron 服务管理命令

3、Cron 服务配置

比如说 root 查看自己的 cron 设置:crontab -u root -l

再例如,root 想删除 fred 的 cron 设置:crontab -u fred -r

在编辑 cron 服务时,编辑的内容有一些格式和约定,输入: crontab -u root -e

进入 vi 编辑模式,编辑的内容一定要符合下面的格式:/1 ls >> /tmp/lstxt

这个格式的前一部分是对时间的设定,后面一部分是要执行的命 令,如果要执行的命令太多,可以把这些命令写到一个脚本里面,然 后在这里直接调用这个脚本就可以了,调用的时候记得写出命令的完整路径。时间的设定我们有一定的约定,前面五个号代表五个数字, 数字的取值范围和含义如下:

分钟 (0-59)

小时(0-23)

日期(1-31)

月份(1-12)

星期(0-6) //0 代表星期天

除了数字还有几个个特殊的符号就是""、"/"和"-"、",",代表 所有的取值范围内的数字,"/"代表每的意思,"/5"表示每 5 个单位, "-"代表从某个数字到某个数字,","分开几个离散的数字。以下举几个 例子说明问题:

每天早上 6 点

0 6 echo "Good morning" >> /tmp/testtxt //注意单纯 echo,从屏幕上看不到任何输出,因为 cron 把任何输出都 email 到 root 的信箱了。

每两个小时

0 /2 echo "Have a break now" >> /tmp/testtxt

晚上 11 点到早上 8 点之间每两个小时,早上八点

0 23-7/28 echo "Have a good dream:)" >> /tmp/testtxt

每个月的 4 号和每个礼拜的礼拜一到礼拜三的早上 11 点

0 11 4 1-3 command line

1 月 1 日早上 4 点

0 4 1 1 command line

每 次 编 辑 完 某 个 用 户 的 cron 设 置 后 , cron 自 动 在 /var/spool/cron 下生成一个与此用户同名的文件,此用户的 cron 信 息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用 crontab -e 来编辑。cron 启动后每过一份钟读一次这个文件,检查 是否要执行里面的命令。因此此文件修改后不需要重新启动 cron 服 务。

编辑/etc/crontab 文件配置 cron

cron 服务每分钟不仅要读一次/var/spool/cron 内的所有文件, 还需要读一次/etc/crontab,据公报了解因此我们配置这个文件也能运用 cron服务做一些事情。用 crontab 配置是针对某个用户的,而编辑 /etc/crontab 是针对系统的任务。此文件的文件格式是:

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件 发给这个帐号

HOME=/ //使用者运行的路径,这里是根目录

# run-parts

01 root run-parts /etc/cronhourly // 每 小 时 执 行 /etc/cronhourly 内的脚本

02 4 root run-parts /etc/crondaily // 每 天 执 行 /etc/crondaily 内的脚本

22 4 0 root run-parts /etc/cronweekly // 每 星 期 执 行 /etc/cronweekly 内的脚本

42 4 1 root run-parts /etc/cronmonthly // 每 月 去 执 行 /etc/cronmonthly 内的脚本  

Cron是Linux系统中最有用的工具之一,cron作业是在指定时间到来时被调度执行的作业。

最常见的自动化系统管理和自动维护工作,比如每天发出的按计划完成了备份的通知,或者是按计划定时清理/tmp/目录的通知。还有很多Web应用程序也需要执行定时作业。

本文讲述了Cron的工作机制,你可以用cron实现调度作业作业。Cron本身是一个守护进程,在后台运行,通过配置文件“crontab”来根据时间调度指定的作业执行。

一、启动Cron服务

基本上所有的Linux发行版在默认情况下都预安装了cron工具。即使未预装cron,也很简单,执行命令手动安装它:

root@Ubuntu-14:~# apt-get install cron

接着检查cron服务的状态,默认情况它应该运行于后台。如果它未启动,那么可以手动启动此服务。

root@ubuntu-14:~# service cron start

root@ubuntu-14:~# service cron status

cron start/running, process 1027

二、使用Cron帮助

如果cron工作正常,那么你可以使用man命令查看其手册描述的详细用法。

root@ubuntu-14:~# man crontab

上面的命令显示了crontab手册描述的使用方法。如果要查看怎样使用cron作业指定的信息,可以这样:

root@ubuntu-14:~# man 5 crontab

这里写描述

要退出帮助命令手册的显示,按下q键或h键。

这里写描述

三、Crontab命令的用法

下面讲述怎样使用crontab命令实现定时调度作业。

1、对Cron作业进行列表

使用以下命令列出当前用户计划的cron作业。

root@ubuntu-14:~# crontab –l

会列出当前用户的所有cron作业,如果想查看其它用户的cron作业,可以使用如下命令:

root@ubuntu-14:~# crontab –l –u username

这会列出指定用户的cron作业。

2、编辑Cron作业

要添加一个新cron作业,或者是编辑现有的cron作业,可以使用如下命令:

root@ubuntu-14:~# crontab -e

3、移除Cron作业

使用下面的命令移除已经计划的cron作业。

root@ubuntu-14:~# crontab –r

使用下面的命令移除所有已计划的cron作业,且无需再次确认。

root@ubuntu-14:~# crontab –ir

4、命令参数

-u user:用来设定某个用户的crontab服务;

file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。

-e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。

-l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。

-r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。

-i:在删除用户的crontab文件时给确认提示。

四、用Crontab计划任务

除了通过配置文件来处理计划cron作业之外,还有别的方法可以做到。如果你查看/etc目录,你会发现有这样的目录:crondaily、cronhourly、cronmonthly等等。因此,把cron脚本放入这些目录中,那么系统会根据这些目录名定时执行这些作业脚本的。

1、Cron配置类型

Cron有两种配置文件类型,用于调度自动化任务。

1)系统级Crontab

这些cron作业被系统服务和关键作业所使用,且需要root级的权限才能执行。可以在/etc/crontab文件中查看系统级的cron作业。

这里写描述

2)用户级Crontab

用户级的cron作业是针对每个用户单独分开的。因此每个用户都可以使用crontab命令创建自己的cron作业,还可以使用以下命令编辑或查看自己的cron作业。

root@ubuntu-14:~# crontab –e

这里写描述

选择编辑器后,你可以配置新cron作业了。

五、用Crontab调度作业

可以使用指定的语法调度cron作业,而且还有速记缩写命令,使的管理cron作业很简单。

Crontab语法如下:

command to be executed

- - - - - -

| | | | | |

| | | | | --- 预执行的命令

| | | | ----- 表示星期0~7(其中星期天可以用0或7表示)

| | | ------- 表示月份1~12

| | --------- 表示日期1~31

| ----------- 表示小时1~23(0表示0点)

------------- 表示分钟1~59 每分钟用或者 /1表示

六、新Cron作业配置实例

现在你已经熟悉了crontab命令、语法及cron作业的类型,现在可以创建一些作业计划进行测试。可以使用crontab –e 命令添加。

1、每分钟运行的计划作业

下面的例子,创建一个cron作业,它每分钟输出文本“test cron job to execute every minute”并把文本发送到user@vexxhostcom邮箱。

首先用crontab命令编辑

root@ubuntu-14:~# crontab –e

写入以下的脚本

SHELL=/bin/bash

HOME=/

MAILTO=”user@vexxhostcom”

#This is a comment

echo 'test cron job to execute every minute'

:wq! 保存并退出

这里写描述

一旦保存了此cron脚本文件,就可以把它添加到计划的作业中。

2、在指定时间调度Cron job作业

假如想调度某个cron作业,让它在“每个星期四的下午7:00”运行,那么crontab脚本应该这样:

00 19 4 sh /root/testsh

再把它添加到调度作业中。

root@ubuntu-14:~# crontab -e

crontab: installing new crontab

以上就是关于Linux 使用基本知识: 用at和cron进行任务调度全部的内容,包括:Linux 使用基本知识: 用at和cron进行任务调度、请问统信的Cron定时任务服务咋用啊、关于linux-ubuntu下cron使用。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9339358.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存