心得:

能夠將資料變為資訊,讓大眾閱讀的文字檔

如果有稽核事項的工作,算是整理資料的好幫手

例子:

抓取 ossec alerts.log 透過 ossec-reportd 整理排序

# cat /var/ossec/logs/alerts/alerts.log | ossec-reportd -n example -f group authentication_success -f location lab -s
-n example

報告上的描述,紅字部份可自訂

-f group authentication_success

過濾 group 下的屬於 authentication_success 相關訊息,紅字部份可自訂

以下為 filter 可用參數:group, rule, level, location, user, srcip, filename

-f location lab

如上,指定主機為 lab 的相關訊息

-s

顯示出訊息的詳細內容

-r

顯示關聯性,例如 user 與 filename 的關聯報告

輸出報告:

這邊一直想導出文字檔,卻發現一直沒有辦法….

最後才知道原來是 stderr 的原因

如果你需要將其輸出成文字檔,必須像以下:

# cat /var/ossec/logs/alerts/alerts.log | ossec-reportd -n example -f group authentication_success -f location lab -s > lab.txt 2>&1

2>&1 主要是把 stderr 放到 stdout,2>&1 一定要在後面

有點像是"> /dev/null 2>&1″的概念

意思是告訴 shell 我要將輸出內容放到 /dev/null,包含 stderr 的訊息

但如果變成了"2>&1 > /dev/null",你會發現 stderr 沒辦法寫到檔案中

說明:

個人理解是因為,2>&1 主要作用是把 stderr 導向到 stdout

如果放到前面,會導致 stderr 依然在 console

原因在於 stdout 還沒有被告知要輸出到檔案

就會變成 stderr > stdout > console,stdout > file

因為必須放在前面才會變成

stdout > file,stderr > stdout >file

其中最簡單的思考方式,或許可以將 2>&1 看成並不是加法,而是取代的概念

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s