运行系统命令而且将输出写到指定日志文件的shell脚本(2)
上一篇是个简单的能够运行而且写入日志的脚本,可是假设放到生产环境上就显得太粗糙了,所以须要进一步的优化:
#! /bin/bash if [ -d "/opt/bmc" ] ; then
if [ -f "/opt/bmc/usysfault.log" ] ; then
{
date +"%Y-%m-%d %H:%M:%S"
/usr/lpp/diagnostics/bin/usysfault #要运行的命令的绝对路径
} > /opt/bmc/usysfault.log #要存放日志文件的绝对路径
else
touch /opt/bmc/usysfault.log
chmod 755 /opt/bmc/usysfault.log
{
date +"%Y-%m-%d %H:%M:%S"
/usr/lpp/diagnostics/bin/usysfault
} > /opt/bmc/usysfault.log
fi
else
if [ -f "/tmp/usysfault.log" ] ; then
{
date +"%Y-%m-%d %H:%M:%S"
/usr/lpp/diagnostics/bin/usysfault
} > /tmp/usysfault.log
else
touch /tmp/usysfault.log
chmod 755 /tmp/usysfault.log
{
date +"%Y-%m-%d %H:%M:%S"
/usr/lpp/diagnostics/bin/usysfault
} > /tmp/usysfault.log
fi
fi
凝视:
- [ -d "xxxx" ] 推断文件夹路径是否存在
- [ -f "xxxx" ] 推断文件是否存在
- touch 命令用于创建空文件。chmod 命令用于赋权。
特别注意:
- shell脚本对空格的要求异常的严格,必须注意空格,否则报错了你查都非常难查。
- if 条件使用结束时必须有fi结尾。不然会报错,也是非常难查了。
最后,这个是单词运行的脚本,假设要循环运行的话加上上一篇写的while true就可以。只是我採用的是类unix系统的计划任务管理器crontab来加入计划任务,让系统按指定的计划时间来运行脚本。
运行系统命令而且将输出写到指定日志文件的shell脚本(2)的更多相关文章
- log4j 输出原始数据到指定日志文件
项目中需要将上传的数据输出到指定的log文件,之前对log4j缺少深入认识,普遍将整个应用的日志到输出到一个文件. 在经理的帮助下,业务数据可以直接输出到指定的log文件,现将配置及使用流程整理一下. ...
- log4j配置输出到多个日志文件
通常我们项目里,有一些重要的日志想单独的输出到指定的文件,而不是全总输出到系统的日志文件中.那么我们log4j为我们提供了这种功能,以下我们来一步一步看是怎么做的.这里以property的配置方式写. ...
- log4j配置输出到多个日志文件(转)
參考资料:http://logging.apache.org/log4j/1.2/manual.html 通常我们项目里,有一些重要的日志想单独的输出到指定的文件,而不是全总输出到系统的日志文件中.那 ...
- log4j2配置文件动态指定日志文件名称
按照习惯性思维,log4j2中xml中取系统属性应该和log4j一样,但是结果却并不是我们想的这样,存在一定的差别,log4j中的配置可参考 log4j配置文件动态指定日志文件名称 . 现在就来看看到 ...
- 使用log4j使某些java类的日志信息输出到指定日志文件中
Log4j 是 Apache 的一个开放源代码项目,通过使用 Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI 组件.甚至是套接口服务器.NT 的事件记录器.UNIX Syslog ...
- log4j输出多个自定义日志文件,动态配置路径
Log4J的配置文件(Configuration File)就是用来设置记录器的级别.存放器和布局的,它可接key=value格式的设置或xml格式的设置信息.通过配置,可以创建出Log4J的运行环境 ...
- 【spring boot logback】日志logback 生成日志文件在本项目下,而不在指定的日志文件目录下/指定日志文件到达最大值后不按照配置进行切割
原本的日志文件配置如下: <?xml version="1.0" encoding="UTF-8"?> <configuration scan ...
- log4j分离日志输出 自定义过滤 自定义日志文件
普通的log4j.properties 定义: ### set log levels ### log4j.rootLogger = debug,D,E ## Disable other log log ...
- log4j输出多个自定义日志文件(转)
如果在实际应用中需要输出独立的日志文件,怎样才能把所需的内容从原有日志中分离,形成单独的日志文件呢? 先看一个常见的log4j.properties文件,它是在控制台和test.log文件中记录日志: ...
随机推荐
- js实现点击上下按钮,图片向上向下循环滚动切换
//popup.js //jquery.1.4.2-min.js (function(p,j){function u(){if(!c.isReady){try{v.documentElement.do ...
- Android集成微信分享功能应用签名生成方法及分享不生效的问题
通过友盟sdk集成微博.微信.qq等分享功能时,微博和qq很顺利,但在做微信集成时一直不成功.主要问题还是之前在微信开放平台申请创建移动应用时,对应用签名没有填写对,走了很多弯路现总结出来,加深记忆避 ...
- Errors reported here must be corrected before the service can be started
场景: 安装.配置Apache24时候,最后会给出提示,如图:Errors reported here must be corrected before the service can be star ...
- Java反射机制实战——字段篇
首先,我们来认识几个类. Class(java.lang.Class) Class对象是一个特殊对象,每一个类都有一个Class对象,用来创建该类的“常规”对象.可以通过对象的getClass()方法 ...
- Fiddler——抓包工具的使用
fiddler安装 pc端安装fiddler,自行从百度下载即可 Fiddler是强大且好用的Web调试工具之一,它能记录客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输 ...
- vue2.0框架认识
虚拟dom和声明式渲染: Vue的编译器在编译模板之后,会把这些模板编译成一个渲染函数 .而函数被调用的时候就会渲染并且返回一个 虚拟DOM的树 .这个树非常轻量,它的职责就是描述当前界面所应处的状态 ...
- ThinkPHP---案例1登录登出和添加部门
配置文件分3类:系统配置文件,分组配置文件,应用配置文件 ①系统配置文件ThinkPHP/Conf/convention.php: ②分组 / 模块 /平台配置文件Home/Conf/config.p ...
- if语句,while语句,do whlie语句,循环语句
总结: 1.定义数组并赋值: var arr=[1,2,3,4]; 2.通过下标访问数组: var str=arr[0]; 3.自定义数组 var arr=new Array(); 4.数组的赋值 a ...
- layer实现窗口抖动效果
function showMsg(msg, icon){ layer.msg(msg, { //1:正确:2:错误:3:询问:4:锁定:5:失败:6:成功:7:警告:16:加载 icon : icon ...
- bootstrap中栅格系统的原理
1.基本结构 Bootstrap采取12列的栅格体系,根据主流设备的尺寸进行分段,每段宽度固定,通过百分比和媒体查询实现响应式布局. Bootstrap划分了四种尺寸:超小屏(手机).小屏(平板竖屏) ...