创建周期性计划任务cron

创建周期性计划任务cron

目 录


一、周期性任务计划: cron

二、系统计划任务

三、用户创建计划任务

四、控制用户执行计划任务

本篇中主要从具体的实例中说明怎样创建计划任务


一、周期性任务计划: cron

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

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

(2)相关的程序包:默认已安装

使用 rpm –qi cronie  查看相关包具体信息

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

cronie-anacron: cronie的补充程序,用于监控cronie任务执行状况,如cronie中的任务在过去该运行的时间点未能正常运行,则anacron会随后启动一次此任务

crontabs:包含CentOS提供系统维护任务

(3)要确保crond守护处于运行状态:查看crond服务是否启动

CentOS 7:

systemctl status crond   查看是否启动

systemctl start  crond   启动方法

CentOS 6:

service crond status查看是否启动

service crond start  启动方法

(4)系统cron任务:系统维护作业

/etc/crontab    将计划任务写入该文件

用户cron任务:

crontab命令     使用crontab命令创建

(5)日志监控计划任务: /var/log/cron    监控计划任务

二、系统计划任务

(1)查看任务  vim  /etc/crontab

(2)例子1:工作日时间,每10分钟执行一次磁盘空间检查,一旦发现任何分区利用率高于80%,就执行wall警报

vim  /etc/crontab

1、解释:第1位 */10 表示每10分钟执行一次(注意,*/#这里#仅限能被60 整除的数,如 */12 表示每12分执行一次)

第2位  * 小时,*代表每个小时都要执行,2代表凌晨两点执行,20代表晚上8点执行(24小时制)

第3位  *日,*代表每天执行,4 表示每月4号执行。20代表每月20号执行(1-31天)

第4位  *月,*代表每月都执行,1代表一月,2代表2月 (1-12月)

第5位  *星期几,*代表任意一天,1表示星期一,(0-7,0和都表示星期日)

第6位   root  表示执行人是root

第7位   /bin/root/checkdisk.sh   执行的操作,可以是一条命令,也可以是脚本名称,注意这里写上完整的路径。

2、注意:这里的第3位:天与第5位:星期几会产生冲突,如第3位写的20 ,第5位写的3 ,而20号这天不是星期三,那么怎样执行呢。这里采取或关系,即20号这天执行,星期三也执行,其他各个位上的关系是与关系。

3、分析:在工作日时间,即周一到周五,可以在第五位写1-5(1,2,3,4,5可以 ;1-3,4,5也可以),但是第3位天上该怎样写呢,两者是或关系,如果第三位写上*代表每一天都执行,包括周六,周日。那总不可能看看日历算一算吧,毕竟每个月都不一样。所以我把每个位上都写了*,那么上面就表示,每天每10分钟root执行一次/bin/root/neicun.sh这个脚本,那么判断星期几可以在脚本中判断,如果是周一到周五,执行任务,如果周六周日,什么也不做,不就满足要求了。

4、代码:

#!/bin/bash
# ------------------------------------------
# Filename:checkdisk.sh
# Revision: 1.0
# Date: 2017-9-9
# Description: check cipan 80%
# ------------------------------------------
# 定义变量以数字方式显示出星期几
week=`date +%w`
# 找出磁盘利用率最大的值
max=`df|egrep "^/dev/sd.*" |egrep -o"[0-9]+%"|cut -d% -f1|sort -nr|head -n1`
#判断星期几的数是否小于6,即周一到周五,如果不是,退出不执行。如果是,则判断磁盘利用率最大的值是否大于80,如果大于,则广播,如果小于则退出
if  [ $week-lt 6 ] ;then
     if [$max -gt 80 ];then
      wall "the diskspace willfull"
     else
         exit
     fi
else
      exit
fi
#释放变量,是个好习惯。
unset week max

注意:(1)没有被重定向的输出会被邮寄给用户

(2)根用户root能够修改其它用户的作业

(3)运行结果的标准输出和错误以邮件通知给相关用户

执行的命令结果最好导入垃圾桶中

COMMAND &> /dev/null

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

建议将执行的操作写入脚本中,不要直接写在/etc/crontab中

(5)命令在写入脚本或者/etc/crontab之前,建议先做测试

(6)这里写完脚本后要把脚本加上执行权限,chmod +x checkdisk.sh(脚本名)

三、用户创建计划任务

(1)用户cron:

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

crontab命令:本身有suid   权限

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

-l: 列出所有任务;

-e: 编辑任务;

* * * * * wall I am

-r: 移除所有任务;

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

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

crontab –e –u wang

(2)例子1:普通用户guan 每分钟广播一次I am guan

切换到guan 用户下 su – guan

切换到root用户下,su – root ,进入/var/spool/cron/ ,可以看到guan用户创建的任务,当然root用户可以修改和删除普通用户的计划任务。

四、控制用户执行计划任务

控制用户执行计划任务:   /etc/cron.{allow,deny}

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

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

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

解释:先看/etc/cron.allow文件,如果有,则只看/etc/cron.allow文件,只有/etc/cron.allow中的用户才能执行,如果没有该文件,则查看/etc/cron.deny文件。除/etc/cron.deny中的用户之外的用户都可以创建cron任务,如果两个文件都不存在,则仅root可以创建cron任务。

时间: 2024-10-27 13:53:37

创建周期性计划任务cron的相关文章

周期性计划任务Cron详解

概述 cron 是Linux 或者类 Unix 系统的作业调度程序.利用它,我们可以配置某些命令或者脚本,让命令和脚本在某个设定的时间内周期性地运行.本文主要以描述了 CentOS 6的cron命令的详细知识. 了解cron组件 cron程序由程序包cronie提供,我们可以通过rpm -qi cronie查看cronie的信息. cron 的组件包括: 1.守护进程本身(crond): 所谓守护进程,即是不间断运行在后台的进程,它随时监听用户的请求,并随时响应并予以执行用户的作业.crond的

周期性计划(一个cron守护进程):

周期性计划(一个cron守护进程): [email protected]:/etc# ps -ef | grep cron root 903 1 0 16:25 ? 00:00:00 /usr/sbin/cron -f root 16162 6459 0 22:08 pts/1 00:00:00 grep --color=auto cron cron是一个可以根据时间,日期,月份,星期的组合的周期性执行的守护进程. (可以停掉和重启) [email protected]:/etc# servic

周期性任务计划与cron

一.邮件收发 服务启动与否状态查看:netstat -nlptu "25"端口  smp服务正常 默认收发邮件仅能在本机上的用户间进行,且只能通过回环接口上的地址进行 mail 收邮件:mail q:退出 N:查看第N封邮件 发邮件给指定用户: mail USERNAME[@HOSTNAME] -s "SUBJECT" echo | mail 二.Linux任务计划  一次性任务计划:at,batch 周期性任务计划:cron at:   at TIME 提交任务:

在Yii2.0中实现计划任务(cron)

以下由我们在信易网络公司开发项目的时候终结出的一些经验 Create console application 创建命令行应用 In advance template there is already a file yii. And there is no need to run it as php, it is Linux script. 在高级模版中的 yii 文件,它是一个 Linux 脚本,不需要使用PHP来运行. Create cron service command 创建计划任务服务命

周期性计划任务

循环性计划任务   周期性计划任务      安装软件        crontabs-1.10-33.el6.noarch        cronie-1.4.4-7.el6.x86_64        查看crontabs软件有无安装        # rpm -qa |grep crontabs 启动服务        # /etc/init.d/crond  start   默认是启动的        # chkconfig |grep crond   默认2 3 4 5 是启动的   

Linux自学笔记——Linux周期性计划任务

未来的某时间点执行一次任务:at,batch 周期性运行某任务:crontab 执行结果:会通过邮件形式发送给用户: 本地邮件服务: smtp:simple mail transmission protocol: pop3:post office procotol: imap4:internet mail access procotol: mail命令: mailx - send and receive Internet mail: MUA:mail user agent,用户收发邮件的工具程序

linux复习周期性计划

计划性任务 1.周期性计划 contab -e -u contab -l -u contab -r -u 2.计划性权限 vim /etc/cron.allow 退出 systemctl restart crond systemctl enable crond

Windows Server 2008 R2: 创建任务计划

task Scheduler 在业务复杂的应用程序中,有时候会要求一个或者多个任务在一定的时间或者一定的时间间隔内计划进行,比如定时备份或同步数据库,定时发送电子邮件等. 创建一个任务计划: 开始Start菜单,在Search programs and files中键入Task Scheduler 在Task Scheduler中,点击Task Scheduler Library,在中间窗口中可以看到所有已创建的Scheduled Tasks. 在Actions Pane中,选择Create T

rhel7 设置计划任务cron

设置计划任务cron [[email protected] /]# crontab-e no crontab for root - using an empty one crontab: installing new crontab [[email protected] /]# crontab-l */1* * * * echo " I love you Baby! " [[email protected] /]# Youhave new mail in /var/spool/mail