shell执行mysql写入日志_将shell脚本执行情况写入Rsyslog日志服务器

本文介绍了如何在运维工作中通过编写脚本并利用logger命令将执行情况记录到日志服务器,实现日志的集中收集和管理。通过在脚本中结合if判断和logger命令,可以将不同执行状态的信息按预设的日志级别写入系统日志,进一步通过Rsyslog服务器将这些信息转发到中央日志服务器,从而简化了多服务器日志检查的复杂性。
摘要由CSDN通过智能技术生成

在运维工作中,免不了编写一些脚本交由计划任务(cron)去定时执行完成一些日常工作,实现运维工作自动化。比如在我的日常工作中备份数据是一项重要的工作,需要定时将数据备份到备份服器和一些其他的备份介质中。其中大部分的备份工作都是写到脚本当中,并编辑/etc/crontab去定时完成备份任务。这样节省了不少日常工作的压力。

为了监控脚本的执行情况,在编写脚本的时候将执行情况的情况追加写入到本地指定的日志文件当中,定期去查看这些文件来确保任务被正确的执行。

但是,随着需要备份的服务器的增多,执行查看日志的工作就变成了一种负担。通常是需要逐个登录每台服务器去检查日志文件。

为了解决上述问题,我打算将所有的备份日志写入到一台备份服务器当中,这样就可以实现日志的集中收集管理和查看了。为些我在前几天搭建了一台日志服务器用来收集每台服务器的日志信息(请参见:CentOS 6.7搭建Rsyslog日志服务器)。

日志服务器也搭建完了,问题也出现了,如何将脚本中的执行情况写入到日志服务器中呢?其实,由于日志服务器已经搭建完成,只需要将需要记录信息写入到本地日志系统,那么本地rsyslog服务就会将日志信息同时写入到远端的日志服务器数据库中。

将自定义的信息写入到本地日志系统需要用到:logger 命令

logger 是一个shell 命令接口,可以通过该接口使用Syslog的系统日志模块,还可以从命令行直接向系统日志文件写入一行信息。

使用方法举例:

logger -it error -p local5.info "hello world"

-i 在每行都记录进程ID

-t 日志中的每一行都加一个error标签

-p 指定自定义的日志设备和日志级别,相关内容参见文章附录

最后一个参数中的双引号(“”)中的文本内容就是自定义日志信息。在脚本中针对命令的执行结果(echo $?)进行if判断,然后使用logger输出不同的日志信息即可。如:

umount -l /mnt

if [ `echo $?` -eq 0 ]; then

logger -p local3.info "Umount /dev/sdd1 is OK!"

else

logger -p local3.err "Umount /dev/sdd1 is Failure!"

fi

上面的脚本是卸载U盘或者移动硬盘时用到的角本。根据 echo $? 的返回值,将 info 或者 err级别的自定义日志信息写入到系统日志中。配合Rsyslog服务器使用就可以实现shell脚本执行情况的集中收集与管理了。

附:日志类型和日志级别

日志类型

日志类型说明

auth

pam产生的日志

authpriv

ssh,ftp等登录信息的验证信息

cron

时间任务相关

kern

内核

lpr

打印

mail

邮件

mark(syslog)

rsyslog服务内部的信息,时间标识

news

新闻组

user

用户程序产生的相关信息

uucp

unix to unix copy, unix主机之间相关的通讯

local1~7

自定义的日志设备

日志级别

从上到下,级别从低到高,记录的信息越来越少 详细的可以查看手册: man 3 syslog

级别说明级别值

debug

有调式信息的,日志信息最多

7

info

一般信息的日志,最常用

notice

最具有重要性的普通条件的信息

warning

警告级别

4

err

错误级别,阻止某个功能或者模块不能正常工作的信息

crit

严重级别,阻止整个系统或者整个软件不能正常工作的信息

alert

需要立刻修改的信息

emerg

内核崩溃等严重信息

none

什么都不记录

--------------------------------------分割线 --------------------------------------

--------------------------------------分割线 --------------------------------------

Rsyslog 的详细介绍:请点这里

Rsyslog 的下载地址:请点这里

0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值