部署思路:
1)sftp高可用環境部署,參考:
2)rsync+inotify實時同步環境部署,參考:
3)防篡改做法:當檔案被首次實時同步到應用伺服器上後,立馬使用chattr命令將其鎖定,即禁止寫入!可以在應用伺服器上寫乙個鎖定檔案的指令碼,實時執行的!
sftp的上傳目錄是/data/test,實時同步到應用伺服器上的目錄也是/data/test,那麼應用伺服器上的鎖定檔案的指令碼為:
[root@centos6-05 ~]# vim /root/chattr_test.sh#!/bin/bash
while [ "1" = "1" ]
dofor a in `ls -l /data/test/|grep -v total|awk ''`;do
/usr/bin/chattr +ai /data/test/$
done
done
實時執行改指令碼:
root 5684 9769 0 21:33 pts/0 00:00:00 grep chattr_test.sh
root 28227 9769 37 18:36 pts/0 01:05:48 sh -x chattr_test.sh
上面指令碼針對的是上傳目錄/data/test下全是檔案,沒有子目錄。如果/data/test 下面有子目錄,那麼就在指令碼中新增find命令查詢對應子目錄下的檔案進行chattr鎖定。
測試效果:
sftp上傳乙個新檔案a,該檔案會實時同步到應用伺服器/data/test 目錄下,接著修改a檔案並上傳覆蓋到sftp目錄下,則該檔案不會覆蓋到應用伺服器的同名檔案了。
監控目錄下的檔案操作與實時同步
若有個需求 要求記錄下某個目錄下的所有操作,包括建立檔案 修改檔案 重新命名 刪除檔案的操作,將以上所有的操作全部記錄到日誌中,或者做其他操作。net提供了乙個方法叫做 system.io.filesystemwatcher 方便powershell來呼叫。具體使用方法,我慢慢解釋。folder c...
Delphi關於記錄檔案的操作 轉
本例子幾個變數的說明 tfilerec record 記錄定義 day integer 其他定義 end f file of tfilerec 標準的輸入 輸出檔案 filrec tfilerec 記錄資料 filename 記錄檔案的名稱 關於記錄檔案的相關操作 1 記錄檔案的開啟 2 記錄檔案的...
Delphi關於記錄檔案的操作 轉
本例子幾個變數的說明 tfilerec record 記錄定義 day integer 其他定義 end f file of tfilerec 標準的輸入 輸出檔案 filrec tfilerec 記錄資料 filename 記錄檔案的名稱 關於記錄檔案的相關操作 1 記錄檔案的開啟 2 記錄檔案的...