91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何編寫一個監控LINUX目錄和文件變化的Shell腳本

發布時間:2021-09-29 17:14:41 來源:億速云 閱讀:259 作者:iii 欄目:開發技術

本篇內容主要講解“如何編寫一個監控LINUX目錄和文件變化的Shell腳本”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何編寫一個監控LINUX目錄和文件變化的Shell腳本”吧!

腳本1:將需要監控的目錄的原始狀態保存到LOG日志
腳本2:將腳本1的原始狀態與本腳本比對,如果目錄文件發生變化,則將變化的內容保存到日志。

注:原理實際上利用的是du -sb輸出值來判斷文件的變化,再利用diff進行比對。

1.在執行腳本前要保存原始的狀態:

# vi initial.sh

代碼如下:


#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin/:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
# 監控的目錄
DIR=/root
# 臨時文件
TMP_A=/tmp/a.txt
# 遍歷指定目錄下的文件大小及路徑并重定向到日志文件
find $DIR -print0 | xargs -0 du -sb  > $TMP_A


2.執行監控腳本
# vi monitor.sh

代碼如下:


#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin/:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
# 監控的目錄
DIR=/root
# 日期變量
DATE=`date +%F_%H:%M`
# 臨時文件
TMP_A=/tmp/a.txt
TMP_B=/tmp/b.txt
TMP_C=/tmp/c.txt
# 日志文件
LOG=/var/log/filemodify.log
# 遍歷指定目錄下的文件大小及路徑并重定向到日志文件
find $DIR -print0 | xargs -0 du -sb  > $TMP_B
# 比較目錄變化,并將變化的文件寫入日志
DIFF=$(diff $TMP_A $TMP_B)
if [[ -z $DIFF ]];
 then
   echo "Nothing change" >> $LOG
 else
   echo "Here is the change" >> $LOG
   echo "" >> $LOG
   echo "$DIFF" |awk '{print $3}'|sort -k2n |uniq |sed '/^$/d' |tee $TMP_C >> $LOG
   if [ -s $TMP_C ];
     then
       echo "" >> $LOG
       echo "It modified at $DATE" >> $LOG
# 將當前監控的目錄結構覆蓋為初始狀態
       find $DIR -print0 | xargs -0 du -sb  > $TMP_A
   fi
fi
echo "====================================" >> $LOG
#清理臨時文件
rm -rf $TMP_B $TMP_C

到此,相信大家對“如何編寫一個監控LINUX目錄和文件變化的Shell腳本”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

凤庆县| 高唐县| 孝感市| 孟连| 馆陶县| 墨玉县| 扶绥县| 淅川县| 长春市| 江达县| 咸宁市| 临西县| 广安市| 集贤县| 平果县| 泰顺县| 罗甸县| 柯坪县| 上虞市| 县级市| 阿城市| 石门县| 武隆县| 眉山市| 蓬安县| 岚皋县| 永平县| 彭州市| 岗巴县| 孟州市| 修水县| 天台县| 达拉特旗| 和林格尔县| 四川省| 监利县| 新余市| 台东县| 临海市| 错那县| 五原县|