linux计划任务(Linux计划任务每隔一小时执行一次)

http://www.itjxue.com  2023-01-26 10:26  来源:未知  点击次数: 

Linux系统下如何设置计划任务?

设置如下:

1)通过命令【crontab -e】编写计划任务

2)按【i】键编写,最后按【esc】【:wq】保存并退出

Linux系统的知识你可以看黑马程序员视频库的Linux教程,零基础都能学的。

linux查看计划任务

crontab -l

列出用户计划任务

? ? ? ? -e? ? ? (edit user's crontab)

? ? ? ? -l? ? ? (list user's crontab)

? ? ? ? -r? ? ? (delete user's crontab)

? ? ? ? -i? ? ? (prompt before deleting user's crontab)

linux计划任务crontab配置文件中的最后一个星星代表

linux计划任务crontab配置文件中的最后一个星星代表所有可能的值

crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。

cron 系统调度进程。 可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行。cron是系统主要的调度进程,可以在无需人工干预的情况下运行作业。crontab命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个crontab文件来保存调度信息。系统管理员可以通过cron.deny 和 cron.allow 这两个文件来禁止或允许用户拥有自己的crontab文件。

Linux任务计划和周期性任务执行

常用选项:

-l 查看作业队列,相当于atq

-f 从某个指定文件文件中读取作业任务,不通过交互式输入。

-d 删除指定的作业任务,相当于atrm。

-c 查看指定作业具体内容。

-q QUEUE指明队列。

TIME时间格式有:

HH:MM 小时:分钟 例如04:00

HH:MM YYYY-MM-DD 小时:分钟 年-月-日 例如15:00 2017-11-25

HH:MM[am|pm] [Month] [Date] 例如:04pm July 30

HH:MM[am|pm] + number [minutes|hours|days|weeks]在某个时间点再加几个时间后执行

例如:now + 5minutes 5分钟后执行

04pm + days三天后下午4点执行

[root@dxlcentOS ~]# at 15:55 2017-11-25 在15点55分执行:切换到tmp目录,执行ls命令

at cd /tmp

at ls

at EOT

job 3 at Sat Nov 25 15:55:00 2017

注意:输入结束后按ctrl+d,任务输入结束at EOT,执行结果屏幕不会显示,会以邮件形式发送到邮箱。要是没有mail命令,进行yum -y install mailx安装。

执行周期性任务要确保crond守护进程在运行。

执行pstree,要是crond运行起来可以看到。

或者执行:~]# systemctl status crond (centos7)

Active: active (running) ... ...

centos6:~]# service crond status

... is running

有时候为了安全起见,可以将不允许某些用户执行周期性任务的用户名添加到/etc/cron.deny文件里面即可。

cron任务分类:分系统cron任务和用户cron任务

总结:1.cron周期任务最小时间单位是分钟。

2.定义COMMAND时,如果命令需要用到%,需要对其转义;但放置于单引号中的%不用转义亦可。

3.某任务在指定的时间因关机未能执行,下次开机不会自动执行。

4.当修改之前定好的任务或新增循环任务时最好执行一下systemctl restart crond。

5.如果是系统管理使用的循环任务最好写入/etc/crontab。

6.避免系统资源分配不均,周与日月不可以同时并存。

cron循环任务设定后,要是服务器因意外关机,那么在停机期间,cron设定的循环任务是不会运行的,当服务器开机后,也不会执行过去到达时间点的循环任务,只能等待下个时间点到来才执行。要想重新执行,anacron就可以解决这个问题。

anacron 是一个程序不是一个服务,当centos进入crontab排程时,anacron 会主动每一小时运行一次。

如何在Linux中实现计划任务

对于系统管理员而言,做系统备份是一个系统管理员非常重要的工作,但是每天重复的工作是一件非常繁琐的工作,那有没有一种方法可以让系统每天每到固定的时间都自己做备份工作呢?答案是有的,那就是计划任务,现在我们就来说说计划任务是怎么一回事,以及怎么去实现它

一般来说计划任务分两种一次性计划任务和周期性计划任务

1, 一次性计划任务:顾名思义一次性计划任务就是在某一个时间点只执行一次的任务,例如像,下周一有约会需要提醒这样只执行一次的任务,

命令at ,batsh实现一次性计划任务

At的用法:at time

例如 at 10:29 就是指在10:29 分执行的任务

执行的结果如下

At 命令的时间格式非常灵活我们可以使用

At now+1min

At 11:54

At date 等在这里不再赘述

Batsh 命令是指在系统空闲时执行的一次性计划任务,比如你有一件不太重要的任务需要执行,当重要的任务执行完才会执行

Batsh 的用法

Batsh 回车 然后输入你要执行的任务

2, 周期性计划任务 :周期性计划任务指的是每隔一段时间就执行一次的任务,比如闹钟每天早上六点叫你起床 命令 cron

(1) 加载cron 模块crond:crond是一种服务一般情况下crond是默认加载的但是也不排除有特出情况

Modprobe crond

(2) crond服务操作 survice crond {start|status|stop|restart}

start 启动crond

status查看crond的运行状态

stop 停止crond服务

restart 重启crond服务

(3) crond的分类 :系统crond和用户crond

系统crond 是系统运行所需要的crond服务 /etc/crontab

用户crond使用户定义的crond服务/var/spool/cron/USERNAME

(4) cron 的书写格式 min hour day month week command

共六段 第一段min 指分钟,第二段hour指小时,第三段day指天,第四段mouth指月份,第五段week指周,第六段command指你要执行的命令例如

10 1 * * 7 ls –l /etc 指的是 每周末的一点10分执行ls –l /etc命令

在字段中的*指在指定的时间域上所有的时间

—对应时间域上的连续取值时间 如1-10 1到10

,表示对应时间域上离散的时间取值如 1,10指的是1和10

/表示在对应时间域上每隔多久进行一次取值

如 1-10 1 * * 7 ls –l /etc指的是每周末的一点1-10分每分钟执行ls –l /etc命令

1,10 1 * * 7 ls –l /etc指的是每周末的一点1分和10分时分别执行ls –l /etc命令

*/10 1 * * 7 ls –l /etc每周末的一点每隔10分钟执行ls –l /etc命令

(5) 说了这么多那到底怎么才能定义自己的计划任务呢?

Crond –e 打开编辑文本然后输入要定义计划任务

如1,10 1 * * 7 ls –l /etc

保存并退出 一个计划任务就做好了

我们来看看怎么定义在每天晚上的凌晨把系统备份

管理员还可以为其他用户定制计划任务 使用 crontab –u username

Crontab –l 可以查看已经定义的计划任务

Crontab –r 移除已将定义的计划任务

(6) Crond 只能在Linux系统启用的时候进行工作,当计划任务所在的时间Linux系统处于不工作状态那我们能不能在Linux启动后的一段时间内将没有做的计划任务给补上呢?档案是肯定的我们使用anacrond命令来是以这一功能

Anacron的命令格式 day min 说明信息 run-parts /etc/cron.daiy

Day 指过去多长时间没有执行过命令 min 指启动后多长时间执行

如 1 65 run-parts /etc/cron.daily 指一天没有运行过时 启动后65分钟后执行任务计划

(责任编辑:IT教学网)

更多

推荐服务器空间文章