天天看点

定时任务

目录

定时任务

1、计划任务基本概述

2、格式(分、时、日、月、周)

3、计划任务编写实践

4、秒级任务

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- 张贺,多年互联网行业工作经验,担任过网络工程师、系统集成工程师、linux系统运维工程师 个人网站:www.zhanghehe.cn

什么是crond?

crond服务就是用来执行计划任务的服务,类型于闹钟,定点执行。

为什么用crond

做周期性的任务,减少人力成本,比如凌晨三点备份数据,12点打开抢购入口等。

计划任务为分两种:

系统级别的定时任务:无需人工干预,作用是用于文件的清理、日志的切割、系统信息的采集。

用户级别的定时任务:运维人员进行定义。

<code>/etc/crontab</code>文件里面记载了定时任务书写的格式,格式就是:分、时、日、月、周

note:“日”并不是比周小,所以在设置“周”的时候“日”并不用有所体现。

注意事项:

给定时任务加注释 将需要定期执行的任务写入shell脚本中,避免直接使用命令无法执行的情况。 定时任务的结尾一定要有&amp;&gt;/dev/null 。 如果一定要用命令,命令必须使用绝对路径。

crond如何备份?

通过查看<code>/var/log/cron</code>中执行的记录,去推算任务执行的时间 定时的备份<code>/var/spool/cron/{username}</code>

crond如何拒绝某个用户使用

计划任务调度的注意点

先调整成每分钟执行,看看效果 通过查看/var/log/cron日志,可以看到执行的结果,方便后续的调试。 注意环境变量的问题 命令先在终端试一试,试成功了再复制到脚本当中,尽量少用手打。

通过<code>crontab</code>编写<code>cron</code>定时任务

参数

含义

-e

编辑

-l

查看

例0:每天凌晨3点做一次备份,备份/etc/目录到/backup下面

将备份命令写入到一个脚本中,每天备份文件名要求格式:当前时时间_文件名_tar.gz,不输出任何信息,存放的备份内容只存放三天的数据

例1:每4个小时备份一次/etc/目录到/bakup目录当中,保存的文件名格式为“etc-yyyy-mm-dd-hh.tar.xz”

例2:每周2,4,7备份/var/log/messages文件至至/backup目录中,文件名形如”messages-yyyymmdd.tar,gz”

例3:每两个小时取出当前系统/proc/meminfo文件中以s或m开头的信息追加至/tmp/meminfo.txt文件中

例4:工作日时间内,每小时执行一次ip addr show 命令

例5:每3分钟执行一个echo how are you?

例6:每周2,4,6备份/etc/目录到backup目录中,备份的文件名的当etc_开头并跟上当日的日期文件名

例7: 每天的6,9,12,15,18时查看一下当前系统挂载的文件系统,并将查看结果追加到/tmp/mounts.txt文件

例8: 每天每两个小时取当前系统内存空间余量,将其保存到/stats/memory.txt文件下

怎样使用crond运行秒级任务,想要在crond当中运行秒级任务的话,必需结果其他的方法,比如for循环和while循环.

例1:每20秒打印hello!

这就代表每分钟,一分钟到了之后i就等于0,然后就运行echo hello!运行完成之后就睡20秒,20秒睡完了,i又等于1了,然后再打印,然后再睡20秒,然后i等于3,再打印,再睡着.............从而实现每隔20秒打印一次的效果。

例2;每秒打印一次hello!

解释:一分种到了之后,i先等于1之后就echo,然后睡一秒,i又等于2了,再echo ...............,一分种有60个一秒。

定时任务