admin 管理员组

文章数量: 887032


2023年12月17日发(作者:分布式和微服务)

近期要在客户的服务器上实行计划执行程序;就是要定好每天的什么时候;执行什么程序..

具体的要求如下:

1、每周一至六晚上八点自动执行数据备份操作

2、每月1号晚上零晨自动执行数据据备份操作

3、每周一至六晚上八点半自动执行一程序;进行数据库数据录入工作

起初没啥概念;后来在有经验的同事指导下;开始有所了解

每个用户都有各自不同的计划任务列表;用各自的帐户登录后运行

crontab -l

就可查看到各任务的计划任务情况;使用下列命令可以修改自己的计划任务

crontab -e

下面为一计划任务的样例

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

0 11 4 mon-wed date

上面这句的意思是“每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点显示时间”;你把date改成你想执行的命令;再把执行的时间改了;就可以形成一个定时执行命令了

空格之间的参数意义如下

分钟 小时 天 月 星期 要执行的命令

详细的请参考下面我从网上抄来的

=================================

Crontab是一个很方便的在unix/linux系统上定时循环执行某个任务的程序

使用cron服务;用 service crond status 查看 cron服务状态;如果没有启动则 service crond start启动它;

cron服务是一个定时执行的服务;可以通过crontab 命令添加或者编辑需要定时执行的任务:

crontab -u crontab -l

列出当前的crontab任务

2. crontab -d

删除当前的crontab任务

3. crontab -e 上面是 crontab -r

编辑一个crontab任务;ctrl_D结束

4. crontab filename

以filename做为crontab的任务列表文件并载入

crontab file的格式:

crontab 文件中的行由 6 个字段组成;不同字段间用空格或 tab 键分隔..前

5 个字段指定命令要运行的时间

分钟 0-59

小时 0-23

日期 1-31

月份 1-12

星期几0-6;其中 0 代表星期日

第 6 个字段是一个要在适当时间执行的字符串

例子:

MIN HOUR DAY MONTH DAYOFWEEK COMMAND

每天早上6点10分

10 6 date

每两个小时

0 /2 date solaris 似乎不支持此种写法

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

0 23-7/2;8 date

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

0 11 4 mon-wed date

1月份日早上4点

0 4 1 jan date

补充:在使用crontab的时候;要特别注意的是运行脚本中能够访问到的环境变量和当前测试环境中的环境变量未必一致;一个比较保险的做法是在运行的脚本程序中自行设置环境变量export

1先建一个文件如下; 每天早上5点36分重新启动

36 5 reboot

2上传到/opt目录

3运行命令

crontab /opt/

crontab -l

让配置文件生效:如果让配置文件生效;还得重新启动cron;切记;既然每个用户下的cron配置文件修改后..也要重新启动cron服务器..

在Fedora 和Redhat中;我们应该用;

rootlocalhost ~ /etc/crond restart

如果让crond 在开机时运行;应该改变其运行级别;

rootlocalhost ~ chkconfig --levels 35 crond on

service crond status 查看 cron服务状态;如果没有启动则 service crond

start启动它; cron服务是一个定时执行的服务;可以通过crontab 命令添加或者编辑需要定时执行的任务

Crontab文件的每一行由六个域minutes、hours、day of month、month、day of

week、 command组 成;域之间用空格或Tab分开;其中:

minutes: 分钟域;值的范围是0到59

hours: 小时域;值的范围是0到23

day of month: 日期;值的范围是1到31

month: 月份;值的范围是1到12

day of week: 星期;值的范围是0到6;星期日值为0

command: 所要运行的命令

如果一个域是;表明命令可以在该域所有可能的取值范围内执行..

如果一个域是由连字符隔开的两个数字;表明命令可以在两个数字之间的范围内执行包括两个数字 本身..

如果一个域是由逗号隔开的一系列值组成的;表明命令可以在这些值组成的范围内执行..

如果日期域和星期域都有值;则这两个域都有效..

编写一个文件;用以启动自动备份进程..

cd /opt

touch

在中添加一下内容:

0 4 reboot

crontab /opt/

用crontab -e编辑定时操作;例如加入下行命令:

用crontab -l命令来查看

注意:需要启动服务添加在中

重启crond任务

/etc/cron restart ubuntu下

第一种 在Fedora或Redhat 等以RPM包管理的系统中;

rootlocalhost ~ /etc/crond start

rootlocalhost ~ /etc/crond stop

rootlocalhost ~ /etc/crond restart

/etc/crond restart

命令简介

crontab-操作每个用户的守护程序和该执行的时间表..

部分参数说明

crontab file -u user-用指定的文件替代目前的crontab..

crontab--u user-用标准输入替代目前的crontab.

crontab-1user-列出用户目前的crontab.

crontab-euser-编辑用户目前的crontab.

crontab-duser-删除用户目前的crontab.

crontab-c dir- 指定crontab的目录..

crontab文件的格式:M H D m d cmd.

M: 分钟0-59..

H:小时0-23..

D:天1-31..

m: 月1-12..

d: 一星期内的天0~6;0为星期天..

cmd要运行的程序;程序被送入sh执行;这个shell只有USER;HOME;SHELL这三个环境变量..

下面是一个例子文件:

MIN HOUR DAY MONTH DAYOFWEEK COMMAND

每天早上6点

106 date

每两个小时

0/2 date

晚上11点到早上8点之间每两个小时;早上部点

0 23-7/2;8 date

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

0 11 4 mon-wed date

1月份日早上4点

0 4 1 jan date

范例

lark:~>crontab-1 列出用户目前的crontab.

MIN HOUR DAY MONTH DAYOFWEEK COMMAND

10 6 date

0/2 date

0 23-7/2;8 date

lark:~>


本文标签: 执行 任务 命令 运行