2013-01-04 63 views
4

我在尋找一個bash腳本,它將檢查文件是否在過去一小時內被修改過,並在修改後發送電子郵件警報。該腳本將在Solaris和Ubuntu中使用。我確信這並不難,但我不是Linux管理員。有人可以幫忙嗎?檢查文件修改日期和電子郵件,如果它已更改

+0

瞭解更多關於'發現(1)'命令。或者也許支付專業的系統管理員或開發人員.... –

+3

那麼,這是粗魯的。 – SueS

回答

9

這個怎麼樣?

#!/bin/bash 

[[ -z `find /home/spatel/ -mmin -60` ]] 

if [ $? -eq 0 ] 
then 
    echo -e "nothing has changed" 
else 
    mail -s "file has been changed" [email protected] 
fi 

將這個腳本每小時cron作業

01 * * * * /path/to/myscript 
+0

看起來不錯!我會給它一個鏡頭,讓你知道!非常感謝!! – SueS

+0

不要忘記評分答案,這將有助於我們:) – Satish

1

Linux支持的inotify命令。您可以使用它來監控文件活動 - 文件更改,文件創建,無論您想要什麼,只要您想要。

以上給出的查找命令不適用於開箱即用的solaris。對於linux來說很好。你必須在Solaris兩種選擇:

  1. 去www.sunfreeware.com和下載GNU的coreutils,這將在/usr/local/bin

  2. 編寫一個腳本,使用安裝GNU查找(FIND以上版本)觸摸命令,等待超過60分鐘然後測試文件,唯一的問題是這個腳本永遠在後臺運行,如果你知道一些perl產生適合於touch -t [time string]的時間字符串以創建一個具有時間的文件小時過去 這是永久運行版本:

    而真正

    do 
        touch dummy 
    
        sleep 3615 # 1 hour 15 seconds 
    

    [file_i_want_to_test -nt假] & &回聲 '等等改變文件' | 的mailx -s '文件更改' [email protected]

    done 
    
+0

非常感謝!這是非常有用的信息。 – SueS