linux运维笔记:Linux定时任务

1-定时任务crond介绍

Crond是linux系统中用来定期执行命令/脚本或指定程序任务的一种服务或软件,一般情况下,我们安装完Centos5/6 linux操作系统之后,默认便会启动Crond任务调度服务,在我们前面的系统安装及开机启动优化的设置中,我们也设置保留了Crond开机自启动,Crond服务会定期(默认每分钟检查一次)检查系统中是否有要执行的任务工作,如果有,便会根据其预先设定的定时任务规则自动执行该定时任务工作,这个crond定时任务服务就相当于我们平时早起使用的闹钟一样。

2-为什么要使用crond 定时任务?

我们举个例子说明:例如,我们的数据库或者代码程序需要每天晚上0点做一次全备份,这样每天夜里都需要执行的周期性工作,如果要让人操作的话,就得每天半夜爬起来,然后登录系统执行任务,执行完接着睡觉。另外,执行任务的过程也可能持续几个小时,这样一来,一个晚上我们就都不用睡觉了,这样显然是不行的。那么有什么办法来解决这个周期性的执行任务需求呢?

这就是linux系统的定时任务Crond,这相当于我们平时生活中的闹钟功能,每天晚上提前设置定时,早晨按时叫醒你。

3-开机必须最低保留的启动服务

crond:定时任务服务

network:网络服务

rsyslog:日志服务

sshd:远程链接服务

sysstat:系统监控服务(涉及一系列监控工具)

4-linux系统的定时任务

linux系统中定时任务调度的工作可以分为以下两种情况:

一,linux系统自身定期执行的任务工作:系统周期性自行执行的任务工作,如轮询系统日志,备份系统数据,清理系统缓存等,这些任务无需我们人为干预。

[root@ningjiancheng1 ~]# ls -l /var/log/messages*  #系统的日志

-rw-------. 1 root root    4680 Feb  4 07:41 /var/log/messages

-rw-------. 1 root root  191470 Dec 25 05:44 /var/log/messages-20161225

-rw-------. 1 root root 1492005 Jan  2 06:51 /var/log/messages-20170102

-rw-------. 1 root root  633737 Jan  8 08:02 /var/log/messages-20170108

-rw-------. 1 root root 1594144 Feb  4 04:25 /var/log/messages-20170204

[root@ningjiancheng1 ~]# ls -l /var/log/secure*  #用户登录日志

-rw-------. 1 root root   872 Feb  4 07:13 /var/log/secure

-rw-------. 1 root root  5254 Dec 25 05:44 /var/log/secure-20161225

-rw-------. 1 root root 64822 Jan  2 06:27 /var/log/secure-20170102

-rw-------. 1 root root 14187 Jan  8 07:22 /var/log/secure-20170108

-rw-------. 1 root root 13540 Jan 12 00:17 /var/log/secure-20170204

二,用户执行的任务工作:某个用户或系统管理员定期要做的任务工作,例如每隔5分钟和互联网上时间服务器进行时间同步(这是安装系统基础优化部分的内容),每天晚上0点备份网站站点数据及数据库数据,一般这些工作需要由每个运维自行设置才行。

服务器时间同步:

[root@ningjiancheng1 ~]# crontab -l

*/5 * * * * /sbin/ntpdate time.windows.com >/dev/null 2>&1

系统的定时任务分类文件:

/etc/cron.hourly

/etc/cron.daily

/etc/cron.monthly

/etc/cron.weekly

/etc/cron.deny

/etc/crontab系统定时任务的配置文件之一

系统定时任务+logrotate命令 完成对日志的切割/日志轮询

轮询的日志(日志轮询):周期性切割日志

系统的定时任务+logrotate

[root@chensiqi1 ~]# cat /etc/cron.daily/logrotate

#!/bin/sh

/usr/sbin/logrotate /etc/logrotate.conf

EXITVALUE=$?

if [ $EXITVALUE != 0 ]; then

    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"

fi

exit 0

5-linux系统下定时任务软件的种类

严格的说,linux系统下的定时任务软件还真不少,例如:at,crontab,anacron

假如:某天晚上需要处理一个任务,仅仅是这一天的晚上,属于突发性的工作任务。要执行at命令,还需要启动一个名为atd的服务才行,在实际工作中,还真没碰到需要用到它的时候。因此,建议大家不要深入研究了,到此我们讲解到这里为止即可。

crontab(命令):正如前面所说的这个命令可以周期性的执行任务工作,例如:每五分钟做一次服务器时间同步。

要执行crontab这个命令,也需要启动一个服务crond才行,这个crontab命令是生产工作中最常用到的命令,请大家务必掌握。

定时任务依赖的软件(服务)是否能用:

1、查看定时任务当前是否运行

/etc/init.d/crond status

ps -ef|grep crond

2、查看定时任务是否开机启动(crond)

chkconfig |grep crond

1,开机自启动crond服务

[root@ningjiancheng1 ~]# chkconfig --list | grep crond

crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off

[root@ningjiancheng1 ~]#

2,此时此刻服务的状态(查看,开启,关闭)

[root@ningjiancheng1 ~]# /etc/init.d/crond status

crond (pid  1139) is running...

[root@ningjiancheng1 ~]#

/etc/init.d 服务启动命令(脚本)

3,如何查看进程

ps -ef | grep crond

anacron:这个命令主要用于非7*24小时开机的服务器准备的,anacron并不能指定具体时间执行任务工作,而是以天为周期或者在系统每次开机后执行的任务工作。

它会检测服务器停机期间应该执行,但是并没有进行的任务工作,并将该任务执行一遍。

小结:

1,我们所说的crond服务是运行的程序,而crontab是用来管理用户的定时任务(规则)的命令

2,crond服务是企业生产工作中常用的重要服务,at和anacron很少用,可以忽略

3,几乎每个服务器都会用到crond服务

4,上千服务器可以开发分布式定时任务项目方案(批量管理ansible/saltstack)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好知识传播者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值