# shell腳本-入侵檢測與告警 ## 原理 利用inotifywait命令對一些重要的目錄作一個實施監控,例如:當/root 、/usr/bin 等目錄發生改變的,利用inotifywait看可以對其作一個監控作用。 ## inotifywait ### 介紹 inotifywait 是一個 L ...
shell腳本-入侵檢測與告警
原理
利用inotifywait命令對一些重要的目錄作一個實施監控,例如:當/root 、/usr/bin 等目錄發生改變的,利用inotifywait看可以對其作一個監控作用。
inotifywait
介紹
inotifywait 是一個 Linux 下的命令行工具,用於監視文件系統的變化。它基於 inotify 機制,可以實時監控文件或目錄的變化,併在發生變化時觸發相應的動作。它可以監控文件的創建、刪除、修改、移動等操作,並提供了豐富的選項和參數,可以根據需要進行定製化配置。inotifywait 可以用於實時監控日誌文件、備份文件、配置文件等,可以方便地進行文件同步、備份、自動化處理等任務。
安裝
yum install inotifywait -y
常用參數
--timefmt 時間格式
%y年 %m月 %d日 %H小時 %M分鐘
--format 輸出格式
%T時間 %w路徑 %f文件名 %e狀態
-m 始終保持監聽狀態,預設觸發事件即退出
-r 遞歸查詢目錄
-q 減少不必要的輸出(只列印事件信息)
-e 定義監控的事件,可用參數:
open 打開文件
access 訪問文件
modify 修改文件
delete 刪除文件
create 新建文件
attrib 屬性變更
--exclude <pattern> 指定要排除監控的文件/目錄
示例
inotifywait /usr/local -r --timefmt '%d/%m/%y %H:%M' --format "%T %f" -e MODIFY --exclude '^.*.swp$'
shell腳本
#!/bin/bash
MON_DIR=/opt/scripts
inotifywait -mqr --format %f -e create $MON_DIR | \
while read files; do
echo "`date +%F_%T` _$files" >> file_mon.log
done
推薦使用採用email通知shell腳本:
#!/bin/bash
MON_DIR=/opt/scripts
inotifywait -mqr --format %f -e create $MON_DIR | \
while read files; do
# 實時同步
rsync -avz /opt/scripts /tmp/
# 發送郵件通知
echo "`date +'%F_%T '`$files" | mail -s "inotifywait" [email protected]
done
腳本運行測試:
1.bash 18.sh
2.再開一個終端,去/opt/scripts/文件下創建文件
touch test.txt
3.檢查郵箱
這裡如果採用郵箱通知需要先做好配置 可以查看文章使用Mailx發送郵件 - FouroFour - 博客園 (cnblogs.com)