⑴ 如何用批处理脚本检查日志文件并发邮件
我们写的脚本不一定在你的机器上使用是正常的,这里面涉及到操作系专统,系统日期等环属境变量的问题,如果要规范化的话,代码可能会很长,我建议你如下操作:
1:确定20101026.log这样的文件 是否是每天生成一个,如果是的话,可以使用
echo %date% 等来取出文件名来等于当天。(%date% 格式如果不等于 20101026的话你 要将格式改过来
2:判断日志文件里面有没有SUCCESSFUL单词 最 简单的方法 可以使用下面格式
type c:\aaaa.txt|find /i "SUCCESSFUL"
if "%errorlevel%"=="0" (echo 日志里面还真有这个SUCCESSFUL 单词) else (echo 日志里面没有你所说的单词)
pause
其中c:\aaaa.txt就是你的日志文件,
3:至于发邮件,嘿嘿,这个先保留
4:写入文本文件的话你将:echo 日志里面还真有这个SUCCESSFUL 单词 改成 echo 日志里面还真有这个SUCCESSFUL 单词>>c:\abc.txt 就行
⑵ 如何用脚本自动监控日志文件alert.log
脚本工作
定义志文件LOGFILE
定义志序列号文件_LOGSEQ
定义志函数
log()
{
#检查否存志文件存则检查文件否(20M)
#切换文件并目前志序列号保存_LOGSEQ
if [ -f $LOGFILE ];then
LogFileLen=`ls -l ${LOGFILE} | awk '{print $5}'`
if [ $LogFileLen -gt 20971520 ]; then
if [ -f ${_LOGSEQ} ] ; then
_OrgSeq="`cat ${_LOGSEQ}`"
if [ $_OrgSeq -gt 98 ];then
LogFileSeq=0
else
LogFileSeq=`expr ${_OrgSeq} + 1`
fi
else
LogFileSeq=0
fi
echo "${LogFileSeq}" > ${_LOGSEQ}
mv $LOGFILE ${LOGFILE}.${LogFileSeq}
fi
fi
_LogInfo=$1
echo `date +20'%y-%m-%d %H:%M:%S'`" ${_LogInfo} " >> ${LOGFILE} 2>&1
}
需要打志调用log函数即
⑶ 如何用shell脚本实现读取多台主机监控日志
推荐个监控软件zabbix,如果你不嫌麻烦就用脚本监控系统性能?
这个只能根据实际环境写,搜集系统性能后生成报告ftp到日志服务器。
或者scp 或者 rsync...
⑷ 用Lua脚本来扫描一个日志文件,找出里面的关键字
逐行读取进行匹配
local file = io.open("log.txt","r") --打开log
for l in file:lines() do --逐行读取
if string.match(l,"error") then --如果存在字符串‘error’
print(l) --输出
end
end
file:close()
⑸ 编辑一个linux 的shell脚本,达到查找系统中的log文件并删除
find dir -iregex ".*\.log" | xargs rm -rf.
先用find命令找到指定目录下以log结尾的所有文件的全路径,然后用xargs把结回果传递给rm命令的输入参数答,然后用rm命令删除就可以了。
⑹ 求一个分析日志的shell脚本
大致如下:主要要查看好日志中的字段,方便中$n对应,下面的如果有问题,微调一下即可。日志文件路径是假定。
#!/bin/bash
Log_file="/var/log/http.log"
Total_Num=`cat$Log_file|awk'/来源IP/{print}'|wc-l`
User_Num=`cat$Log_file|awk'{a[$1]++}END{for(jina)printa[j],j}'|wc-l`
Access_Num=`cat$Log_file|awk'{a[$14]++}END{for(jina)printa[j],j}'|sorn-n|head10`
Url_Num=`cat$Log_file|awk'{a[$17]++}END{for(jina)printa[j],j}'|sorn-n|head10`
Src_Num=`cat$Log_file|awk'{a[$1]++}END{for(jina)printa[j],j}'|sorn-n|head10`
Status_Num=`cat$Log_file|awk'{a[$6]++}END{for(jina)printa[j],j}'|sorn-n|head10`
echo"总访问数:$Total_Num"
echo"独立问数:$User_Num"
echo"访问IP:$Access_Num"
echo"访问url统计:$Url_Num"
echo"来源统计:$Src_Num"
echo"状态码统计:$Status_Num"
⑺ 我想用写个shell脚本,每30秒查看一次cpu使用率并记录在a.log日志文件中,有没大侠知道如何写呢
应该用crontab。
⑻ 如何编写自己的web日志分析脚本
脚本:写剧本的人,也叫故事构成。
脚本英文为。实际上脚本就是程序,一般都是有应用程序提供的编程语言。应用程序包括浏览器(JavaScript、VBScript)、多媒体创作工具,应用程序的宏和创作系统的批处理语言也可以归入脚本之类。脚本同我们平时使用的VB、C语言的区别主要是:
1、脚本语法比较简单,比较容易掌握;
2、脚本与应用程序密切相关,所以包括相对应用程序自身的功能;
3、脚本一般不具备通用性,所能处理的问题范围有限。
脚本,英文名为Script,简单地说,脚本就是指通过记事本程序或其它文本编辑器(如Windows Script Editor,EditPlus等)创建,并保存为特定扩展名(如.reg , .vbs, .js, .inf等)的文件,对于注册表脚本文件就是利用特定的格式编辑的.reg文件;对于VBScript脚本编程语言来说,脚本文件扩展名就是.vbs;对于JScript脚本编程语言来说,脚本文件扩展名就是.js;另外,.wsf格式是Microsoft定义的一种脚本文件格式,即Window Script File.
具体地说,脚本通过利用应用程序或工具的规则和语法来表达指令,以控制应用程序(包括注册表程序)中各种元素的反应,也可以由简单的控制结构(例如循环语句和If/Then语句)组成,这些应用程序或工具包括网页浏览器(支持VBScript,Jscript),多媒体制作工具,应用程序的宏(比如Office的宏)以及我们熟悉的注册表工具(regedit.exe)等.操作系统中的批处理也可以归入脚本之列,批处理程序也经常由Windows环境中的"脚本"替换,所以又称脚本是"Windows时代的批处理".
脚本的作用在每一种应用程序中起的作用都是不一样的,比如在网页中可以实现各种动态效果,各种特效处理,实现各种HTML不能实现的功能.而在Office组件中,我们会经常看到"宏"这个工具,它其实就是一系列命令和指令可以实现任务执行的自动化.
脚本多以“vbs”、“bat”结尾。可以用“记事本”或“按键精灵”编辑。
⑼ 定期清理linux服务器日志文件的几个思路
定期清理linux服务器日志文件的几个思路
1,在跑批程序中,用java代码调用shell脚本;
2,在跑批程序中,用纯java代码实现,也就是使用java的文件操作类File;
3,纯shell脚本方式,使用linux服务器的调度程序调用shell脚本;
结合最近的项目,这里提供一个示例。首先,我们是在跑批项目中实现的定期清理日志功能,
因为我们有跑批项目,使用的是Control M进行调度,所以这种方式还是很方便的。
第一步:写shell脚本
find /home/logs/ -mtime +30 -name "*.log" -exec rm -rf {} ;
脚本其实很简单,一行代码就够了,把这个代码放在一个shell文件中,然后放在服务器的
指定目录下,等待java程序调用。
第二步:写java代码,调用shell脚本,示例代码仅提供思路,请大家自己调试
// 设置可执行权限
String commond = "chmod 777 clearLogFileOnTime.sh";
Process proc = Runtime.getRuntime().exec(commond);
proc.waitFor();
// 执行shell脚本
commond = "bash clearLogFileOnTime.sh";
proc = Runtime.getRuntime().exec(commond);
第三步:配置Control M,进行作业调度
关于Control M的配置不再赘述,主要就是设置跑批程序的执行时间,以及一些其他参数。