Linux运维 第二阶段 (十三)计划任务及日志管理-阿里云开发者社区

开发者社区> 开发与运维> 正文

Linux运维 第二阶段 (十三)计划任务及日志管理

简介:

 

一、任务计划(at,batch,cron)

在未来的某个时间点执行一次某任务(at,batch

周期性地执行某个任务(cron

1#at  TIME(指定时间,注意是时间是未来的,命令的执行结果以邮件形式发送给安排任务的用户)

at>COMMAND

at>ctrl+d

 

TIME

HH:MM(绝对时间,时:分)

MM/DD/YYDD.MM.YY(月//年,日..年)

now+NUMBERminutes(相对时间,minutes,hours,days,weeks

noon,midnight,teatime(模糊时间)

 

#batch(同at,不指定时间,仅在系统空闲时间自动执行)

 

例:#at  now+3minutes

at>ls /var

at>cat /etc/fstab

at>ctrl+d

#at -l(显示作业,相当于命令atq

#at -d  AT_JOB_ID(删除作业,相当于命令atrm

 

2cron自身是一个不间断运行的服务,服务名crond

anacroncron的补充,能够实现因cron由于某种原因在过去的时间该执行而未执行的任务再恢复正常执行一次,服务名anacron

/etc/crontab(系统cron任务,格式: * * ** * [USERNAME] COMMAND

/var/spool/cron/USERNAME(用户cron任务,格式: * * * * *COMMAND);

注意:cron有自己的环境变量PATHPATH=/sbin:/bin:/usr/sbin:/usr/bin),每次执行命令都在自己的PATH下去找,写命令时最好写绝对路径,若执行的是脚本也可在脚本中定义(export  PATH=)否则脚本不能正常执行,若执行的是系统cron任务,可编辑文件定义PATH/etc/crontab);

 

格式:

* * * * *分别表示,分    

分(0-59

时(0-23

日(1-31

月(1-12

周(0-707均表示周日)

注意:月和周不要同时使用

时间通配表示:

*(对应的所有有效取值)

,(离散时间点取值)

-(连续时间)

/(对应取值范围每多久一次)

举例:

3 * * * * (每小时的第3分钟)

*/3 * * * * (每3分钟)

3 * * * 7 (每周日且每小时的第3分钟)

13 12 * * * (每天的12:13

13 12 * * 5 (每周512:13

13 12 6 * * (每月6号的12:13

10,40 * * * * (每小时的第10分钟和第40分钟)

10,40 02 * * 2,5 (每周25且凌晨02:10,02,40

10 02 * * 1-5 (周一至周五的02:10

01 */2 * * * (每两小时执行,注意一定要指定具体时间,否则每秒都会执行)

10 04 */2 * * (每2天执行一次,注意一定要指定具体时间,否则每秒都会执行)

 

系统cron任务:

/etc/cron.{hourly,daily,weekly,monthly}/SCRIPT#run-parts依次运行目录下的每个任务,要想靠前运行,脚本名前加0

 

用户cron任务:

/var/spool/cron/USERNAME

$crontab -l|-e|-r-l列出当前用户的所有cron任务,-e编辑任务(完成后可自动检查其语法),-r移除所有任务(若删除某条任务,进入编辑,删除某行即可))

#crontab -u  USERNAME(管理其它用户的cron任务)

 

anacron任务:/etc/anacrontab有四段

1  65  cron.daily      run-parts /etc/cron.daily

7  70  cron.weekly     run-parts /etc/cron.weekly

30 75  cron.monthly        run-parts /etc/cron.monthly

其中第1段表示过去有多少天的任务未执行;第2段表示开机后的多少分钟执行;注意最小操作单位是天,并且确保系统中crondanacron服务正常运行。

 

二、日志管理:

syslogredhat5

syslog-ngnext generation,redhat6

#service syslog  {start|stop|status|restart|condrestart}

 

syslog服务包括:

syslogd,非内核产生的日志信息,如/var/log/messages有系统标准错误日志信息、非内核产生的引导信息、各子系统产生的信息,/var/log/maillog邮件系统产生的日志、/var/log/secure有谁尝试登录过此主机相关日志;

klogd,内核产生的日志信息,如/var/log/dmesg,此信息可用命令#dmesg显示;

 

日志切割:

命令:#logrotate

日志需要滚动,如messages  messages.1  messages.2

/etc/logrotate.conf

/etc/logrotate.d/*

/etc/cron.daily/logrotate

#chkconfig --list  syslog

 

定义格式:

/etc/syslog.conf

facility.priority  actionfacility表示各子系统;priority表示日志级别loglevelaction表示日志记录位置)

 

facility有:

auth(认证相关)

authpriv(权限、授权相关)

cron(任务计划相关)

daemon(守护进程相关)

kern(内核相关)

lpr(打印相关)

mail(邮件相关)

mark(标记相关)

news(新闻相关)

security(安全相关,与authpriv类似)

syslogsyslog自己的)

user(用户相关)

uucpunix to unix cp相关)

local10-local17(用户自定义使用)

*(所有facility

 

prioritylog level)有:

debug

info

notice

warning/warn

error/err

crit

alert

emerg/panic

*

none

 

action有:

系统上的绝对路径,如/var/log/xxx

管道|,交至其它命令处理

终端,如/dev/console

@HOST@10.0.0.1(定义在远程主机上,要事先修改文件/etc/sysconfig/syslog,SYSLOGD_OPTIONS="-r -m 0"

用户,如root

*,登录到系统上的所有用户,一般这样定义emerg级别的日志

 

定义格式举例:

mail.info /var/log/mail.log

auth.=info @10.0.0.1

user.!=error  不包括error级别

user.!error user.error相反

*.info 所有日志信息的info级别

mail.* mail相关的所有级别信息

*.* 

cron.info;mail.info  多个类别别用分号隔开

cron,mail.info  多个类别的另一写法,同上例

mail.*;mail.!=info  mail相关的所有级别但不包括info级别

 

 

 

以上是学习《马哥网络视频》做的笔记。



一、1、在centos6.x中日志服务由rsyslogd取代了syslogd,新特点:基于TCP传输日志信息;更安全的网络传输方式;有日志消息的及时分析框架;后台数据库;配置文件中可写简单的逻辑判断;兼容syslogd

   2、系统中常见的日志文件:/var/log/cron/var/log/btmp等。

二、日志服务:

    1、格式:事件产生的时间 发生事件的服务器 产生事件的服务器名或程序名 事件的具体信息

    2、/etc/rsyslog.conf配置文件格式:服务名称[连接符号]日志等级 日志记录位置

         连接符号:.   只要比后面等级高的(包含该等级)的日志都记录下来,例:cron.info

         .=      代表只记录所需等级的日志,其它等级的都不记录,例:*.=emerg

         .!      代表不等于,除了该等级的日志外,其它等级的日志都记录

         日志等级:debug info notice warning err crit alert emerg 依次按等级由低到高

         日志记录位置:(当前日志输出到哪个日志文件中保存)

         》日志文件的绝对路径,最常见的保存方法,例:/var/log/secure

         》系统设备文件,/dev/lp0代表第一台打印机。

         》转发给远程主机:@192.168.0.210:514(UDP协议发送至514端口,514是日志服务的默认端口);@@192.168.0.210:514(TCP协议发送)

         》用户名,如rootroot要在线才会把日志发送出去;"mail.*  *"会把mail服务产生的所有级别的日志发送给所有在线用户,若发送给多个在线用户,用户名之间用分号隔开;“local3.*   ~”若接受日志的对象是~,代表这个日志不会记录直接丢弃。

         例:定义自己日志

         #vi  /etc/rsyslog.conf

         写入 *.crit             /var/log/alert.log

         #service  rsyslog restart

         #ll  /var/log/alert.log

         日志服务器的设备

         #vi  /etc/rsysylog.conf            (服务端设置

         $Modload  imtcp

         $InputTcpserver Run 514        (取消这两行注释

         #servicersyslog  restart

         #netstat  -tuln | grep 514

         #vi  /etc/rsyslog.conf              (客户端设置

         *.*             @@192.168.210:514

         查看日志服务器是否设置好:

         #useradd  aa         (在客户端)

         #passwd  aa

         #vi  /var/log/secure       (查看发生事件的主机名

三、日志轮替:把旧的日志文件移动并改名,同时建立新的空白日志文件,当旧日志文件超出保存的范围之后,就会进行删除,改名依靠/etc/logrotate.confdateext参数。

         把自己的日志加入日志轮替:

         方一:直接在/etc/logrotate.conf文件中写入轮替策略;

         方二:在/etc/logrotate.d/目录中建立轮替文件。

         例:按方二:#chattr  +a /var/log/alert.log

         #vi  /var/log/alert.log

         /var/log/alert.log{

         weekly

         rotate6

         sharedscripts

         prerotate

                   /usr/bin/chattr  -a /var/log/alert.log

         endscript

         sharescripts

         postrotate

                   /usr/bin/chattr  +a /var/log/alert.log

         endscript

         }

        

         #vi  /etc/cron.daily/logrotate

         /usr/sbin/logrotate  /etc/logrotate.conf  >/dev/null 2>&1         logrotate命令会依据配置文件判断是否已符合日志轮替的条件,日志轮替由cron发起

         #logrotate  选项  配置文件名

         -v      verbose显示过程

         -f       force强制

四、日志分析工具:logwatch

         #cp  /usr/share/logwatch/default.conf/logwatch.conf  /etc/logwatch/conf/logwatch.conf     (注:默认配置/etc/logwatch/conf/logwatch.conf是空的,要手工生成)

         #logwatch

         #mail




本文转自 chaijowin 51CTO博客,原文链接:http://blog.51cto.com/jowin/1651995,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章