⑴ 如何用批處理腳本檢查日誌文件並發郵件
我們寫的腳本不一定在你的機器上使用是正常的,這裡面涉及到操作系專統,系統日期等環屬境變數的問題,如果要規范化的話,代碼可能會很長,我建議你如下操作:
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的配置不再贅述,主要就是設置跑批程序的執行時間,以及一些其他參數。