導航:首頁 > 程序命令 > 查看日誌shell命令

查看日誌shell命令

發布時間:2022-07-11 01:08:12

① 怎麼查看linux伺服器系統日誌

last

-a 把從何處登入系統的主機名稱或ip地址,顯示在最後一行。
-d 指定記錄文件。指定記錄文件。將IP地址轉換成主機名稱。
-f <記錄文件> 指定記錄文件。

-n <顯示列數>或-<顯示列數> 設置列出名單的顯示列數。

-R 不顯示登入系統的主機名稱或IP地址。
-x 顯示系統關機,重新開機,以及執行等級的改變等信息
以下看所有的重啟、關機記錄
last | grep rebootlast | grep shutdown

history

列出所有的歷史記錄:
[zzs@Linux] # history

只列出最近10條記錄:
[zzs@linux] # history 10 (注,history和10中間有空格)

使用命令記錄號碼執行命令,執行歷史清單中的第99條命令
[zzs@linux] #!99 (!和99中間沒有空格)

重復執行上一個命令
[zzs@linux] #!!

執行最後一次以rpm開頭的命令(!? ?代表的是字元串,這個String可以隨便輸,Shell會從最後一條歷史命令向前搜索,最先匹配的一條命令將會得到執行。)
[zzs@linux] #!rpm

逐屏列出所有的歷史記錄:
[zzs@linux]# history | more

立即清空history當前所有歷史命令的記錄
[zzs@linux] #history -c

cat, tail 和 watch

系統所有的日誌都在 /var/log 下面自己看(具體用途可以自己查,附錄列出一些常用的日誌)
cat /var/log/syslog 等
cat /var/log/*.log

tail -f
如果日誌在更新,如何實時查看 tail -f /var/log/messages
還可以使用 watch -d -n 1 cat /var/log/messages
-d表示高亮不同的地方,-n表示多少秒刷新一次。
該指令,不會直接返回命令行,而是實時列印日誌文件中新增加的內容,
這一特性,對於查看日誌是非常有效的。如果想終止輸出,按 Ctrl+C 即可。
除此之外還有more,less,dmesg|more,這里就不作一一列舉了,因為命令太多了,關鍵看個人喜好和業務需求.個人常用的就是以上那些.《Linux就該這么學》一起學習linux
linux日誌文件說明
/var/log/message 系統啟動後的信息和錯誤日誌,是Red Hat Linux中最常用的日誌之一
/var/log/secure 與安全相關的日誌信息
/var/log/maillog 與郵件相關的日誌信息
/var/log/cron 與定時任務相關的日誌信息
/var/log/spooler 與UUCP和news設備相關的日誌信息
/var/log/boot.log 守護進程啟動和停止相關的日誌消息
/var/log/wtmp 該日誌文件永久記錄每個用戶登錄、注銷及系統的啟動、停機的事件

② 如何shell命令編寫自己的Web日誌分析腳本

一、讀取文件
按照上面的思路,先解決讀取問題。這里我用了判斷語句,起初我是想寫出類似於 access=more
/usr/access*.*,將這個路徑全部加到變數里,方便判斷,因為在shell里,只能將固定文件、文件夾作為變數,變數中不能加*號(我是沒找到別的方法,有知道大牛請提點下小弟),所以就想了個笨辦法,用匹配關鍵詞的方式來判斷特定目錄下,是apache日誌,還是weblogic日誌,還是IIS日誌,具體判斷方法如下:
if ls -l /usr/ | egrep "access";then
more /usr/access*.* | egrep "多個關鍵詞"
else
more /usr/ex*.log | egrep 「多個關鍵詞」
fi
這樣的方式來進行判斷,但是這樣判斷有個缺點,就是中間件日誌在/usr/目錄下,只能存在一種,比如同時存在apache和IIS的日誌,就會優先判斷apache的,進而不會執行IIS日誌分析的語句。而且,為了不跟之前的歷史數據混亂,在腳本執行開始,清空了下數據。
file=/usr/nmgxy/
if [ -e "$file" ];then
echo "日誌目錄存在,跳過創建過程,該操作會清空/usr/nmgxy/目錄下所有數據"
echo "按回車鍵開始清空數據,結束請點擊Ctrl+c"
read key
rm -r /usr/nmgxy/*
mkdir -p /usr/nmgxy/LFI/ /usr/nmgxy/exp/ /usr/nmgxy/sql/ /usr/nmgxy/scan/ /usr/nmgxy/xss/ /usr/nmgxy/getshell/ /usr/nmgxy/dir/
else
mkdir -p /usr/nmgxy/ /usr/nmgxy/LFI/ /usr/nmgxy/exp/ /usr/nmgxy/sql/
/usr/nmgxy/scan/ /usr/nmgxy/xss/ /usr/nmgxy/getshell/ /usr/nmgxy/dir/
fi
echo "分析結果日誌保存在/usr/nmgxy/目錄下"
echo ---------------------日誌目標文件---------------------------
if ls -l /usr/ | egrep "access";then
echo --------------------統計出現次數最多的前20個IP地址-----------------
cat /usr/access*.* |awk '{print $1}' |sort |uniq -c |sort -rn |head -20 >/usr/nmgxy/top20.log
echo "統計完成"
二、定義攻擊特徵
日誌讀取的問題解決了,接下來就是定義攻擊特徵的事兒了,攻擊特徵比較好定義。例如,SQL注入攻擊的判斷:
echo ------------------------SQL注入攻擊sql.log----------------
echo "開始分析存在SQL注入的攻擊行為,並將結果保存在/usr/nmgxy/sql/目錄下"
more /usr/access*.* |egrep
"%20select%20|%20and%201=1|%20and%201=2|%20exec|%27exec|
information_schema.tables|%20information_schema.tables|%20where%20|%20union%20|%20SELECT%20|%2ctable_name%20|cmdshell|%20table_schema"
>/usr/nmgxy/sql/sql.log
echo "分析結束"
awk '{print "共檢測到SQL注入攻擊" NR"次"}' /usr/nmgxy/sql/sql.log|tail -n1
echo "開始統計SQL注入攻擊事件中,出現頻率最多的前20個IP地址"
cat /usr/nmgxy/sql/sql.log |awk -F "[" '{print $1}' |sort |uniq -c |sort -rn |head -20 >/usr/nmgxy/sql/top20.log
echo ----------------------------------------------------------
more /usr/nmgxy/sql/top20.log
echo "統計結束"
我把一些常見的SQL注入攻擊的特徵寫到了裡面,去掉了MSSQL資料庫存儲過程以及MSSQL資料庫才會出現的一些注入語句。
三、輸出匹配到的含有攻擊特徵的記錄
將匹配到的攻擊特徵內容,重新輸出到了另外一個log裡面,相當於做了一次篩選/usr/nmgxy/sql/sql.log
more /usr/access*.* |egrep
"%20select%20|%20and%201=1|%20and%201=2|%20exec|%27exec|
information_schema.tables|%20information_schema.tables|%20where%20|%20union%20|%20SELECT%20|%2ctable_name%20|cmdshell|%20table_schema"
>/usr/nmgxy/sql/sql.log
然後二次分析這個篩選過的文件,統計SQL注入攻擊出現的次數
awk '{print "共檢測到SQL注入攻擊" NR"次"}' /usr/nmgxy/sql/sql.log|tail -n1
輸出完畢後,將攻擊出現最多的前20個IP地址進行統計並顯示到屏幕上
echo "開始統計SQL注入攻擊事件中,出現頻率最多的前20個IP地址"
cat /usr/nmgxy/sql/sql.log |awk -F "[" '{print $1}' |sort |uniq -c |sort -rn |head -20 >/usr/nmgxy/sql/top20.log
echo ----------------------------------------------------------
more /usr/nmgxy/sql/top20.log
echo "統計結束"
四、輸出結果
這個在代碼開頭,創建了一些文件夾,用來存放篩選過的記錄
mkdir -p /usr/nmgxy/LFI/ /usr/nmgxy/exp/ /usr/nmgxy/sql/ /usr/nmgxy/scan/ /usr/nmgxy/xss/ /usr/nmgxy/getshell/ /usr/nmgxy/dir/
中間刪刪改改折騰了好幾次。後來針對特定的攻擊,我們比較關注(重點是比較好寫的= =)的內容做了HTTP響應請求200/500的判斷,並輸出結果。
echo -------------------------getshell-getshell.log----------------
echo "開始分析存在getshell的攻擊行為,並將結果保存在/usr/nmgxy/getshell/目錄下"
more /usr/access*.* |egrep "
eval|%eval|%execute|%3binsert|%20makewebtaski%20|/div.asp|/1.asp|/1.jsp|/1.php|/1.aspx|xiaoma.jsp|tom.jsp|py.jsp|k8cmd.jsp|/k8cmd|ver007.jsp|ver008.jsp|ver007|ver008|%if|\.aar"
>>/usr/nmgxy/getshell/getshell.log
echo "分析結束"
echo "二次分析結果中HTTP響應碼為200和500,結果另存為/usr/nmgxy/getshell/ok.log"
more /usr/nmgxy/getshell/getshell.log | awk '{if($9=200) {print $1" "$2"
"$3" "$4" "$6" "$7" "$8" "$9}}' >/usr/nmgxy/getshell/ok.log
more /usr/nmgxy/getshell/getshell.log | awk '{if($9=500) {print $1" "$2"
"$3" "$4" "$6" "$7" "$8" "$9}}' >>/usr/nmgxy/getshell/ok.log
echo "二次分析結束"
awk '{print "共檢測到getshell行為" NR "次"}' /usr/nmgxy/getshell/getshell.log|tail -n1
echo "開始統計漏洞利用攻擊事件中,出現頻率最多的前20個IP地址"
cat /usr/nmgxy/getshell/getshell.log |awk -F "[" '{print $1}' |sort
|uniq -c |sort -rn |head -20 >/usr/nmgxy/getshell/top20.log
echo ---------------------------------------------------------------
more /usr/nmgxy/getshell/top20.log
echo "統計結束"
統計HTTP響應狀態,IIS和apache有點區別。apache我以默認空格為分隔符,判斷第9個分隔符是否為200或500,如果等於,則輸出全部內容
more /usr/nmgxy/getshell/getshell.log | awk '{if($9=500) {print $1" "$2" "$3" "$4" "$6" "$7" "$8" "$9}}'
而IIS的,我則是用獲取關鍵詞的方式,來進行判斷。
more /usr/nmgxy/getshell/getshell.log | egrep " 200" >/usr/nmgxy/getshell/ok.log
用egrep的方式,關鍵詞為" 200",200前面有個空格,如果不加空格的話,很容易跟其他的參數混起來,那個時候誤報就不是一點點了。例如asp?id=200,所以加入了空格做區分。
IIS和nginx的思路類似,唯一的區別就是特徵碼,稍微有點改動而已,這個就不一一例舉了。思路就是這個思路,其實後期想把報告整體輸出成HTML的方式,估計工作量挺大,這個還是得閑下來的時候,慢慢修改吧。
PS:這個腳本雖然寫的比較粗糙,但是精確度還是有的,測試了幾十次,精確度能達到至少80%以上。
分析1個多G的日誌文件,需要大致約30多秒左右,我是在虛擬機里做的測試。虛擬機ubuntu系統,1G的內存。
不見得能幫上大忙,至少可以給大家在分析日誌時節省點時間。。。。
先貼出apache、weblogic、IIS的腳本代碼,weblogic的從網盤直接下載就好。apache、weblogic、IIS的腳本代碼:

③ 查linux日誌最後幾行 用什麼參數啊

用「tail -n 行數」來實現查詢日誌最後幾行,步驟如下:

1、首先,連接相應linux主機,進入到linux命令行狀態下,等待輸入shell指令。

④ xshell查看日誌亂碼怎麼解決

xshell(xshell5)以及其他終端中文亂碼的原因無非有三種
(1)Linux系統的編碼問題
(2)xshell終端的編碼問題
(3)兩端的語言編碼不一致

1、Linux系統的編碼問題

(1) 執行locale命令查看系統語言

(2)設置系統環境變數LANG為en_US.UTF-8:
export.UTF-8

或者編輯文件:vim /etc/sysconfig/i18n

2、xshell終端的編碼問題

設置為Unicode (UTF-8):

File->Properties

3、兩端的語言編碼不一致

如果上述操作後,還是有中文亂碼問題,比如中文文件名、cat包含中文的文件等,說明屬於第3類問題《Linux就該這么學》一起學習linux

要麼修改Linux環境變數LANG,要麼修改xshell終端編碼:

File->Properties
修改為Chinese Simplified (GB2312)

並確定LANG為en_US.UTF-8 或 en_US

4、如果進行了以上設置,仍然中文顯示亂碼,退出並重新登錄系統,再次進行以上設置,確認更改設置並進行結果驗證。

⑤ Linux伺服器查看日誌的幾種方法

1、通過linux命令行工具(如:xshell4工具),連接到指定伺服器;
2、通過cd
命令進入指定文件目錄,回車;(如:cd
/usr/ibm/websphere/appserver/profiles/emall0202/logs),
3、使用
命令:tail
-f
systemout.log
4、進行動態跟蹤;(注意:跟蹤時,先執行命令,再發http請求,然後回到命令行工具,退出同動態跟蹤(使用ctrl+c))
5、怎麼最快的索引到關鍵字,使用
vi
systemout.log
打開日誌文件;(vi命令等同於windows里的打開視圖編輯器)
6、打開以後,使用「
/

+
」關鍵字「
,回車即可;
小竅門:
1、當輸入一個已有的文件/文件目錄的首字母,然後按tab鍵,會自動索引對應的文件名或提示);
2、cd
..
為回退到父文件夾命令,中間有個空格;
3、ls
命令列出文件夾下的所有文件;
4、linux
的vi編輯器退出方法。
先esc
:
q
在未作修改的情況下退出!
:
q!
放棄所有修改,退出編輯程序!

⑥ 如何用shell腳本實現讀取多台主機監控日誌

  1. 通過free,top命令查看cpu、內存使用信息,把結果輸入到一個文本裡面;

  2. 把上述結果上傳在你說的其中一台主機(這個上面要有ftp服務)裡面,ftp腳本就很簡單了

#!/bin/bash
top>>/home/info
free-m>>/home/${date+%F}info
ftp-i-nhost<<ok
useusernamepasswd
binary
put/home/${date+%F}info
bye
ok
exit

在這里機器上設置成定時任務,就可以定時收集信息了。

⑦ shell日誌查詢腳本怎麼寫

shell日誌處理一般可以利用grep,awk命令就可以進行查詢了。一般利用grep命令篩選要統計的選項,然後利用awk把篩選出的數據進行最後統計。

⑧ 在linux中怎麼查看錯誤日誌

1、連接上相應的linux主機,進入到等待輸入shell指令的linux命令行狀態下。

⑨ 怎麼在shell 中查看日誌輸出

興來每獨往,勝事空自知。

閱讀全文

與查看日誌shell命令相關的資料

熱點內容
熱水器水量伺服器是什麼意思 瀏覽:115
stk衛星編譯 瀏覽:477
對後台程序員的要求 瀏覽:758
ios大文件夾圖標 瀏覽:624
生的計劃pdf 瀏覽:711
oppoa93加密便簽在哪查找 瀏覽:18
兩個數字的加減乘除運算編程 瀏覽:227
給手機加密碼忘記了怎麼辦 瀏覽:601
單片機運算符 瀏覽:297
移動端微信商城源碼 瀏覽:443
編程貓下一個背景在哪裡 瀏覽:358
javaclasstype 瀏覽:238
樂高編程和樂高課的延伸 瀏覽:356
蘋果手機怎麼切換app美國賬號 瀏覽:865
編譯程序輸入一個字元串 瀏覽:407
圓命令畫法 瀏覽:308
如果給電腦e盤文件加密 瀏覽:802
javaswing項目 瀏覽:778
androidsdksetup 瀏覽:1005
pdf怎麼設置中文 瀏覽:128