您的位置:时时app平台注册网站 > 时时app平台注册网站 > 职总计划【时时app平台注册网站

职总计划【时时app平台注册网站

2019-11-08 02:04

计划任务的命令

  计划命令分一次性计划周期性计划
at    安排作业在某一时刻执行一次
batch 安排作业在系统负载不重时执行一次
cron 安排周期性运行的作业

一次性计划at和batch

@rebootRun once after reboot.

为什么要设置计划任务

  我们在系统的管理中,很多时候不是及时的去操作,比如对某一网站数据的备份,备份的过程需要占用大量的系统资源,凌晨三四点的时候系统访问用户最少,系统最空闲。但我们的系统的系统管理员总不能老那个时间爬起来操作吧。

### cronie:

计划任务

/etc/cron.weekly/脚本

batch命令

作用:
  安排一个或多个命令在系统负载较轻进运行一次(一般情况下负载较轻指平均负载降到0.8以下)

使用方法同at

## 注释行以# 开头

时时app平台注册网站 1

# 时间表示法:

at命令

删除at计划任务
 at -d

查看at计划任务
ls /var/spool/at/

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

周期性计划命令crontab

  作用:用于生成cron进程所需要的crontab文件

crontab命令:

crontab[-u user] [-l | -r | -e] [-i]

-l: 列出所有任务;

-e: 编辑任务;

-r: 移除所有任务;

-i:同-r一同使用,以交互式模式移除指定任务

-u user: 仅root可运行,指定用户管理cron任务

crontab命令定义,每个用户都有专用的cron任务文件:/var/spool/cron/USERNAME

 

注意:运行结果的标准输出和错误以邮件通知给相关用户

 centos7 # systemctl status atd crond开机时需启动服务

                 systemctl enable atd crond  重启还是启动的

centos6 # service crond atd start开机时需启动服务

                 chkconfig --list atd crond开机启动确保为on状态

/var/spool/cron/ :存放用户的任务计划

 

/etc/cron.{allow,deny}  :控制用户创建任务计划黑白名单,同at原理一样

 

/var/log/cron :日志文件

 

/etc/cron.hourly/ :每小时执行的脚本

 

/etc/cron.daily/ :每天执行的脚本

 

/etc/cron.weekly/ :每周执行的脚本

 

/etc/cron.monthly/ :每个月执行脚本

 

时时app平台注册网站 2

时时app平台注册网站 3

[root@rhel6 ~]# cat /etc/crontab #配置文件
SHELL=/bin/bash #执行任务命令的shell类型
PATH=/sbin:/bin:/usr/sbin:/usr/bin  #执行任务的环境变量
MAILTO=root  #执行任务的用户
HOME=/  #家目录

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

时时app平台注册网站 4

时时app平台注册网站 5

 

时间通配表示:

 

  • *:对应时间的所有有效取值,每
  • ,:离散时间点,和
  • -:连续时间点,到
  • /:对应取值范围内多久一次,每隔

 

时时app平台注册网站 6

时时app平台注册网站 7

@reboot     :系统启动后执行
@yearly  0 0 1 1 * :每年的1月1号00:00执行一次任务
@annually 0 0 1 1 * :每年的1月1号00:00执行一次任务
@monthly 0 0 1 * * :每月的1号00:00执行一次任务
@weekly  0 0 * * 0 :每周日的00:00执行一次任务
@daily  0 0 * * * :每天的00:00执行一次任务
@hourly  0 * * * * :每小时执行一次任务

时时app平台注册网站 8

时时app平台注册网站 9

 

 

 

对于cron任务来讲,%有特殊用途;如果在命令中要使用%,则需要转义;不过,如果把%放置于单引号中,也可以不用转义

思考:如何在秒级别运行任务?

  由于crontab最小时间单位为分钟,所以我们需要借用sleep命令使其“睡一会”,来实现秒级别,及不能整除时间单位的计划任务。

## TIME:

sleep命令:

 sleep NUMBER [SUFFIX]...

   SUFFIX:

    s: 秒, 默认

    m: 分

    h: 小时

    d: 天

如:每20秒执行一次

1
<span style="font-family: 宋体; font-size: 16px">* * * * *  for min in 0 1 2; do ech

时时app平台注册网站 10

练习

①每12小时备份一次/etc目录至/backups目录中,保存文件名称格式为“/etc-yyyy-mm-dd-hh.tar.gz”

# crontab -e
0 */12 * * * tar -zcf  /backups/etc-`date  %F-%H`.tar.gz  /etc


②每周2,4,7备份/var/log/secure文件至/logs目录中,文件名格式为“secure-yyyymmdd”;

# crontab -e 
 * * * * 2,4,7  cp -r /var/log/secure  /logs/secre-`date  %F`


③每两个小时取出当前系统/proc/meminfo文件中以S或M开头的行信息追加至/tmp/meminfo.txt文件中;

# crontab -e
  0 */2 * * * grep "^[SM].*"/proc/meminfo >> /tmp/meminfo.txt


④四月的第一个星期日早晨1点59分运行a.sh

# crontab -e
 59 1 1-7 4 * test `date  %w` -eq 0 && bash a.sh
⑤工作日时间,每10分钟执行一次磁盘空间检查,一旦发现任何分区利用率高于80%,就执行wall警报

# vim /testdir/disk.sh
#!/bin/bash
a=`df | grep  "^/dev/sd" | tr -s ‘ ‘ ‘%‘| cut -d% -f5 | sort -n  | tail -1`
if [ $a -gt 80 ];then
wall "The disk will be full"
fi
# chmod  x disk.sh
# crontab -e 
*/10 * * * 1-5 /testdir/disk.sh

时时app平台注册网站 11

## 控制用户执行计划任务:

 

/etc/cron.d/ 配置文件

-m:当任务被完成之后,将给用户发送邮件,即使没有标准输出(at -f file 12:11)

# .----------------minute (0 -59)

##  执行方式:

-u user: 仅root可运行,指定用户管理cron任务(crontab -e -u wang)

## 相关的程序包:

@weekly0 0 * * 0

@daily0 0 * * *

# at任务

now #{minutes,hours,days, OR weeks}

17:20 tomorrow

给定时间点上有效取值范围内的所有值

(2) COMMAND &> /dev/null

## 注意

-l: 列出所有任务;

## 依赖与atd服务,需要启动才能实现at任务

给定时间点有效取值范围内的值

-f /path/from/somefile:从指定的文件中读取任务

/etc/cron.hourly/ 脚本

systemctl status crond

crontab 默认默认打开为vi ,可用 export EDITOR=vim 更改

# 周期性任务计划cron

systemctlstatus crond

白名单:/etc/at.allow默认不存在,只有该文件中的用户才能执行at命令

10 21 * * *centos /bin/echo "Howdy!"

-d: 删除指定的作业;相当于atrm

启动时若没安装则用yum安装

## 日志:/var/log/cron

@yearly0 0 1 1 *

主程序包,提供crond守护进程及相关辅助工具

时时app平台注册网站 12

## 确保crond守护处于运行状态:

# attention:

# | | | | |

-V 显示版本信息:

Example of job definition:

service crondstatus

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

# | | .----------day of month (1 -31)

# 时间格式

# * * * * * user-name command to be executed

在今日的HH:MM 进行,若该时刻已过,则明天此时执行任务

## 5

-e: 编辑任务;

#-#

1.

如果两个文件都不存在,只有root 可以执行at 命令

定义出什么时候进行at 这项任务的时间

yum install cronie

规定在某年某月的某一天的特殊时刻进行该项任务

@annually0 0 1 1 *

黑名单:/etc/at.deny默认存在,拒绝该文件中用户执行at命令,而没有在at.deny文件中的使用者则可执行

在/etc/crontab中,只有星期和日期是取并集的,其他都是取交集。

## 4.

系统cron任务:系统维护作业

04pm March 17

-c: 查看具体作业任务

/etc/cron.daily/脚本

### crontabs:

(1) COMMAND > /dev/null

#,#,#

# | | | .-------month (1 -12) OR jan,feb,mar,apr...

![image]()

## HH:MM YYYY-MM-DD 02:00 2016-09-20

例如:晚上9点10分运行echo命令

## /etc/at.{allow,deny}控制用户是否能执行at任务

##  1.

/var/spool/cron/USERNAME

HH:MM [YYYY-mm-dd]

# 用户 cron:    (带有suid权限)

## 周期性任务计划:cron

02pm 3 days

:作业执行命令的结果中的标准输出和错误以邮件通知给相关用户

/etc/crontab

@hourly0 * * * *

noon, midnight, teatime(4pm)

# | .-------------hour (0 -23)

1)交互式2)输入重定向3)at –f 文件

包含CentOS提供系统维护任务

•(3) 离散取值

now 5 minutes

## 常用选项:

tomorrow

0 */3 * * * centos /bin/echo “howdy”;/usr/bin/wall “welcome to Magedu!”

### cronie-anacron:cronie的补充程序

2.计划任务一般不会在标准输出上显示,会以邮件的形式发送。/var/spool/mail/root (在脚本中计划任务会生成很多垃圾邮件,占内存所有在脚本中一般将其重定向到/dev/null中)

在某个时间点再加几个时间后才进行该项任务

## HH:MM 02:00

## 详情参见man 5 crontab

CentOS 7:

/etc/cron.{allow,deny}

##  2.

3.白名单的优先级大于黑名单,若是有白名单存在黑名单则失效。

    注意:运行结果的标准输出和错误以邮件通知给相关用户

•(2) *

systemctl is-enabled crond

## 3.

用于监控cronie任务执行状况,如cronie中的任务在过去该运行的时间点未能正常运行,则anacron会随后启动一次此任务(非服务器环境)

-i:同-r一同使用,以交互式模式移除指定任务

-r: 移除所有任务;

## at队列存放在/var/spool/at目录中

@monthly0 0 1 * *

/etc/crontab

用户cron任务:

## at命令:at [option] TIME

## crontab命令:

/etc/cron.monthly/脚本

示例:每3小时echo和wall命令

/#: #即为步长

systemctl enable crond

•(4) 连续取值

CentOS 6:

crontab命令

# 系统cron任务:/etc/crontab

•(5) 在指定时间范围上,定义步长

## 计划周期性执行的任务提交给crond,到指定时间会自动运行

安装完成后需确认该服务启动,且确认是否开机自启

# 任务计划

-l: 列出指定队列中等待运行的作业;相当于atq

## crontab命令定义,每个用户都有专用的cron任务文:

# | | | | .----day of week (0 -6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

crontab[-u user] [-l | -r | -e] [-i]

表示“每...”

## 系统的计划任务:

# attention:

## 包:at

# 计划任务:

•(1) 特定值

本文由时时app平台注册网站发布于时时app平台注册网站,转载请注明出处: 职总计划【时时app平台注册网站

关键词: