暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

linux系统定时任务crond介绍

爱婷如命一生一世 2017-06-29
408


在分享linux系统定时任务crond技术点之前,我之前已经分享过了很多linux基础的内容:如命令,文件权限,目录结构,文件属性。

因为今天要分享的crond的任务服务,既然是服务,在linux的守护进程中有很多服务,所以,我今天要用命令去实现一些服务进程。

既然要讲服务程序进程,所有我要对程序和进程的概念先简单的介绍一下,以便日后理解:

程序:简单的说我们在linux系统上使用的命令叫做程序。

比如QQ,微信,linux系统也是 程序。

程序的基本特征:一堆代码,一个文件,一个命令。程序是静态的,在电脑中没有被运行。

程序会被存储在磁盘中。


 进程:简单的说把系统中的程序使其运行起来。

而进程被存储在内存中。

所谓的进程(processes)就是指现在的系统正在执行的程序,每当输入一个命令时,shell也会同时启动一个进程。当每个进程启动时,系统会指定一个唯一的数字给每个进程,而这个数字称之为进程ID。

在以后运维工作中想关闭某个进程就可以指定某个进程ID即可。

用Kill + J进程号就可以结束进程:

每个进程都可能以两种方式存在:一个前台和一个后台。

一般的系统/网络服务都是以后台方式存在的,通常都会常驻在系统中,直到关机,或者主动进程杀死才结束(称之为守护进程),例如:sshd。

图中表示sshd进程还在运行。

如何重启这个ssh的进程呢?如图:

我们还可以通过命令查看sshd的端口,对外提供的网络服务大多都是由端口的。(这些都是必须要掌握的。)




linux中的Crond (crondtab)也属于后台守护进程。


crond是什么呢?

Crond是linux系统中用来定期执行命令或者指定程序任务的一种服务或者软件。(类似于现实生活中的闹钟一样)

一般在我们安装完Centos5/6 crond就会默认存在的。Crond默认情况下,每分钟会检查系统中是否有需要执行的定时任务,如果有的话,就会按照事先定义好的规则来执行这个定时任务。


注意:如果是秒级任务,crond自身就无能为力,我们可以通过自己写个守护进程shell循环来实现(这里我还没有玩的特别明白,以后等研究透了,会分享出来。)还有Quartz也可以实现秒级任务。


我先来看下咱们linux系统开机时的自启动服务:是不是有crond呢、!


那么在企业生产环境下,为什么需要定时任务呢?

在机房中运行业务系统的服务器都是7*24小时提供业务服务。

重要的客户/业务数据:严格的网站(淘宝什么的)实时备份;而在一般大中型企业里一般每天都要备份而且严格点还需要增量备份。而在白天时间的网站/业务系统访问流量又是巨大的,如果运维人员在白天备份的话,又会严重的占用网络资源,造成正常的业务访问受影响,所以建议要在深夜备份.......正是遇到这样的情况,定时任务就因此产生,定时到深夜让系统自身触发到这个备份执行任务,定时任务可以实现帮助我们自动备份数据并以邮件通知。


在Windows系统下:我以win10为例,搜索任务计划然后根据你的需求定义就可以了,很简单的一路下一步。

比如,你不想让某个程序老定时任务搞乱你的PC计划,我这里是禁用搜狗程序进行定时更新:


在linux下的定时任务分类:

  1. 系统自身的定期执行任务

    比如自动轮询的日志:典型的如下图,其实还有很多

    系统自动执行的任务在哪里设置呢?

    一般系统自带的定时任务管理都在如下图:这些都是系统管理的



2.用户执行的任务:只不过我这台模拟的服务器上并没有执行定时任务。(这个是重点要学习的)

-l :查看定时任务,这个到后面我会详细介绍。




配置用户的执行定时任务不要去系统自带的定时任务中去。一定要区分开来。


下面我要详细的介绍下linux的定时任务分类:

  1. at 适合执行一次就结束的调度任务(不常用),突发性的任务,依赖于atd服务,readhat认证考试中有考过,了解即可

  2. anacron:适合于非7*24小时开机的服务器准备的。以天为周期,或者系统开机之后执行工作;检测停机期间没有执行的任务,在开机后一次性执行一遍。(也不符合现实环境,不常用)


3.crond(在企业运维工作中常用的服务):默认情况(每分钟),会检查系统中是否有需要执行的定时任务,如果有就会根据事先定义好的规则来执行这个定时任务。cron依赖的服务时crond,并保持开机后开启的状态。


注:我们所的crond 是一个定时任务的守护进程,而crontab命令是用户用来设置定时任务规则的命令。





crontab使用说明 (还是依靠强大的Man 和 --help)

-u :指定用户,在这个用户下面指定定时任务,如果不指定就指的是当前用户。

-l : 查看定时任务。(常用)

-r :删除任务

-e :修改,编辑。(常用)

-i :提示,确认的意思。



Crondtab的使用格式:(书写格式比较简单)

用户的定时任务规则一般分为6个段,(每个段通过空格来分隔)

系统的定时任务为/etc/crontab分为8个段,(每个段通过空格来分割),前五段为时间的设定段,第六段为所要执行的命令或脚本任务段。

我先举例一个系统的定时任务:(时间关系,下次再说)


基本格式如下:

01 * * * *cmd

02 * * * *cmd

03 * * * *cmd


注:1.cmd代表为要执行的命令或脚本,例如/bin/sh /serverscripts/

       2.每个列之间必须要有一个空格。










































文章转载自爱婷如命一生一世,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论