将shell脚本运行情况写入Rsyslog日志server
在运维工作中,免不了编写一些脚本交由计划任务(cron)去定时运行完毕一些日常工作,实现运维工作自己主动化。比方在我的日常工作中备份数据是一项重要的工作,须要定时将数据备份到备份服器和一些其它的备份介质中。
其中大部分的备份工作都是写到脚本其中,并编辑/etc/crontab去定时完毕备份任务。这样节省了不少日常工作的压力。
为了监控脚本的运行情况。在编写脚本的时候将运行情况的情况追加写入到本地指定的日志文件其中,定期去查看这些文件来确保任务被正确的运行。
可是,随着须要备份的server的增多,运行查看日志的工作就变成了一种负担。一般是须要逐个登录每台server去检查日志文件。
为了解决上述问题,我打算将全部的备份日志写入到一台备份server其中,这样就能够实现日志的集中收集管理和查看了。
为些我在前几天搭建了一台日志server用来收集每台server的日志信息(请參见:Centos6.7搭建Rsyslog日志server)。
日志server也搭建完了。问题也出现了,怎样将脚本中的运行情况写入到日志server中呢?事实上。因为日志server已经搭建完毕,仅仅须要将须要记录信息写入到本地日志系统,那么本地rsyslog服务就会将日志信息同一时候写入到远端的日志server数据库中。
将自己定义的信息写入到本地日志系统须要用到: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级别的自己定义日志信息写入到系统日志中。
配合Rsyslogserver使用就能够实现shell脚本运行情况的集中收集与管理了。
附:日志类型和日志级别
日志类型
| 日志类型 | 说明 |
|---|---|
| auth | pam产生的日志 |
| authpriv | ssh,ftp等登录信息的验证信息 |
| cron | 时间任务相关 |
| kern | 内核 |
| lpr | 打印 |
| 邮件 | |
| 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 | 什么都不记录 |
将shell脚本运行情况写入Rsyslog日志server的更多相关文章
- Linux下Shell脚本运行程序不输出日志到终端
使用: 脚本路径/脚本名 >/dev/>& 说明: 可以简单的理解/dev/null是Linux下的回收站 >默认是把标准输出重定向 2>&1是把出错输出也定向 ...
- IDEA部署项目,并结合Shell脚本运行Java程序
一.概述 在实际开发中,我们写好的代码,往往打成war包或jar包,通过winscp或其他软件将其上传至服务器,然而这样非常大的一个弊端就是不利于开发,为什么这么说呢?假如我们刚刚将springboo ...
- 基于sparksql调用shell脚本运行SQL
[Author]: kwu 基于sparksql调用shell脚本运行SQL,sparksql提供了类似hive中的 -e , -f ,-i的选项 1.定时调用脚本 #!/bin/sh # uplo ...
- 利用shell脚本实现nginx 的logs日志分割
Nginx 是一个非常轻量的 Web 服务器,体积小.性能高.速度快等诸多优点.但不足的是也存在缺点,比如其产生的访问日志文件一直就是一个,不会自动地进行切割,如果访问量很大的话,将 导致日志文件容量 ...
- SHELL脚本运行的几种方法以及区别
#1 给脚本加上执行权限chmod u+x a.sh, 而后就可以直接用全路径来执行脚本了,比如当前文件夹下用./a.sh,如果如果脚本所在目录在PATH环境变量之中, 则直接用a.sh即可(这和运行 ...
- Ubuntu下shell脚本运行异常:bash和dash的区别
Ubuntu下我用bash到语法写了一个shell脚本(准确的说是把书上的脚本敲进电脑),在ubuntu下,用sh test.sh来运行,但是出现了意料之外到结果,比如echo -e "\n ...
- shell脚本运行java程序jar
在UBuntu上部署项目的时候,我们往往通过一段shell来启动程序,甚至是通过crontab定时任务来定时的调用java程序,但是很奇怪的一个问题就是,比如我写了一个如下的shell脚本: #!/b ...
- buntu下shell脚本运行异常:bash和…
转载于:http://www.51testing.com/?uid-225738-action-viewspace-itemid-208702 我用bash到语法写了一个shell脚本(准确的说是把书 ...
- Shell脚本运行报错Bad substitution解决办法
环境Ubuntu18.4.02 脚本运行报错 # sh test.sh test.sh: 2: test.sh: Bad substitution 原因 从 ubuntu 6.10 开始,ubuntu ...
随机推荐
- hdu5791 TWO
hdu5791 TWO 题意 给你两个数串 问你两个数串有多少子串一致 子串不一定是连续的 解法 我们设 \(dp[i][j]\) 表示A串匹配到 i 位,B串匹配到 j 位,一致的子串数.那么我们有 ...
- LeetCode 856 递归思路详解
题目描述 给定一个平衡括号字符串 S,按下述规则计算该字符串的分数: () 得 1 分. AB 得 A + B 分,其中 A 和 B 是平衡括号字符串. (A) 得 2 * A 分,其中 A 是平衡括 ...
- SUSE Linux Enterprise 11 SP4系统安装过程 字符界面
首先开启虚拟机之后显示这个界面: (1) 进入之后显示下面界面,点击Installation安装. (2)进入Welcome界面,选择语言,默认Einglish(US)不需要改动:点击I Agree ...
- 论文阅读《ActiveStereoNet:End-to-End Self-Supervised Learning for Active Stereo Systems》
本文出自谷歌与普林斯顿大学研究人员之手并发表于计算机视觉顶会ECCV2018.本文首次提出了应用于主动双目立体视觉的深度学习解决方案,并引入了一种新的重构误差,采用自监督的方法来解决缺少ground ...
- VUE:计算属性和监视
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Java 中关于default 访问权限的讨论
Java中关于成员变量访问权限问题一般书中会给出如下表格: 简单地描述一下表中的内容:用private 修饰的成员变量只能在类内部访问:用default修饰的成员变量可以再内部访问,也可以被同个包(同 ...
- CSS隐藏overflow默认滚动条同时保留滚动效果
主要应用于移动端场景,仿移动端滚动效果.对于隐藏滚动条,众所周知overflow:hidden,但是想要的滚动效果也没了. 所以对于移动端webkit内核提供一个伪类选择器: .element::-w ...
- QT5 OpenGL (六, 键盘事件, 开关灯,放大缩小综合运用)
概要 实例效果图 立体图放大图 立体图缩小图 不加矢量开灯图 不加矢量关灯图 加矢量关灯图1 加矢量关灯图2 部分代码展示 主要内容解析 QT键盘事件 立体图形的放大和缩小 上下左右键以及A键D争键控 ...
- OEM12C(12.1.0.5)安装插件监控mysql(linux)
目录结构: 文章参考论坛:https://blog.csdn.net/u010719917/article/details/78128200 环境说明: oms:12.1.0.5 os:centos ...
- ibatis annotations 注解方式返回刚插入的自增长主键ID的值--转
原文地址:http://www.blogs8.cn/posts/WWpt35l mybatis提供了注解方式编写sql,省去了配置并编写xml mapper文件的麻烦,今天遇到了获取自增长主键返回值的 ...