linux 下同步方案以及站點檔案的防篡改(偽)
linux 下同步方案以及站點檔案的防篡改(偽)
通道: 使用ssh協議通訊,利用ssh的 authorized_keys
特性,使用ssh-keygen生成不帶有密碼的金鑰。
執行: crond來設定執行週期
注: 下面 local 指本地,server指同步的伺服器,pwd 指當前目錄路徑
安全方面, 使用普通非登入(nologin)使用者進行資料的交換。
靜態檔案同步 - rsync
視訊檔案和圖片檔案比較大,不適合監控具體內容,利用 rsync 同步資料夾,可以快速計算資料夾對比索引同步。
rsync --log-file="/local/rsync.log" -az --delete -e ssh user@ssh-server-ip:/server/pwd /local/pwd
不使用同步刪除時,去除
--delete
即可。
站點中心同步 - git 防篡改
使用git自動管理中心站點程式碼,檢測站點檔案變動,防止客戶端的檔案篡改以及新增刪除等。
A-server:中心端
在站點根目錄中新增過濾列表檔案 .gitignore
*.log
*.html
upload/
log/
cache/
則在檢測變動的時候,可以過濾 所有 log,html字尾和 upload,log,cache等變動的資料夾。
如果沒有庫索引則建立git庫
$ git init
$ git add .
$ git commit -a -m "site source init"
建議 建立分支
develop
開發分支,本地執行成功後推送到伺服器,然後合併到master
供同步端拉取
B-client: 同步端
拷貝站點
$ git clone user@ip:/pwd/.git
每5m 更新下拉 master 分支 檔案資料。
流程:
指令碼功能實現
- 檢測檔案變動
- 無有變動則拉取伺服器A的變動內容
- 有變動的時候則將變動檔案提交到臨時git分支中,並刪除。 之後拉取伺服器A的變動內容
- 同時將被篡改的內容部分寫入到日誌檔案中去。
#!/bin/bash
# file : /pwd/shell/gitpull.sh
# 修改地址
cd `pwd`
# 修改日誌地址
gitlog='/pwd/git.log'
today=`date +%Y%m%d`
gitstatus=`git status`
echo '檢測庫狀態'
if [[ $gitstatus == *"working directory clean"* ]];then
echo '無任何改變'
echo '拉取'
git pull >> $gitlog
else
echo '有檔案變動'
echo '將改變提交到分支 '$today
git checkout -b $today
echo '寫入日誌'
touch $gitlog
echo " " >> $gitlog
date '+%Y-%m-%d %H:%M' >> $gitlog
echo "==========================================" >> $gitlog
git diff >> $gitlog
echo "==========================================" >> $gitlog
echo " " >> $gitlog
git add .
git commit -a -m 'its change'
echo '回到 master'
git checkout master
echo '刪除分支'
git branch -D $today
echo '拉取'
git pull >> $gitlog
fi
新增執行
$ crontab -e
*/5 * * * * /pwd/shell/gitpull.sh
會產生5m的時間差。
mysql 檔案備份
非均衡負載,可查閱mysql 主從同步
#!/bin/bash
# filename: bakmysql.sh
# set path 檔案儲存位置
bakpath='/pwd/backup/'
logfile='/pwd/backup/bak.log'
themonth=${bakpath}`date +%y%m`'/'
theday=${themonth}`date +%d`'/'
thetime=${theday}`date +%Y%m%d%H%M`'.dbname.sql.bak'
declare -i month=`date +%y%m`
month=$month-2
echo '' >> $logfile
echo `date +%D\ %T` >> $logfile
for i in `ls -F $bakpath`; do
if [[ -d $bakpath$i ]]; then
if [[ $i < $month ]]; then
echo 'delete out 2 month '$i >> $logfile
rm -rf ${bakpath}$i
fi
fi
done
if [[ -d $themonth ]]; then
echo $themonth 'is exist;' >> $logfile
else
echo 'makedir ' $theday >> $logfile
mkdir -p $theday
fi
if [[ -d $theday ]]; then
echo $theday 'is exist;' >> $logfile
else
echo 'makedir ' $theday >> $logfile
mkdir $theday
fi
echo 'bakup mysqldatabase dbname - '${thetime} >> $logfile
mysqldump -uroot -p123456 dbname > $thtime
# -h host
新增每 30m 執行
$ crontab -e
*/30 * * * * /pwd/shell/mysqlbak.sh
相關文章
- 檔案實時同步後防篡改的操作記錄
- Linux伺服器下如何建立檔案防篡改規則Linux伺服器
- Linux 伺服器下如何建立檔案防篡改規則Linux伺服器
- 網站被篡改了_網站被篡改了怎麼辦_防網站篡改了網站
- 南京銘岱網路提供網站防篡改解決方案 (inforguard)網站
- 網易易盾推出政企網站安全方案 主打主動治理、防篡改網站
- linux下兩臺伺服器檔案實時同步方案實現Linux伺服器
- Java中的偽共享以及應對方案Java
- 網站防篡改的方法有哪些?這些技巧不能忘!網站
- JavaScript防篡改物件JavaScript物件
- API的防篡改和防重放機制API
- Linux Shell 下載網站指定檔案Linux網站
- ssh,下載檔案遇到的埠號別篡改的問題
- Django中如何防範CSRF跨站點請求偽造攻擊Django
- Laravel 入口檔案被篡改Laravel
- Cookie防篡改機制Cookie
- Linux下日誌檔案過大解決方案Linux
- 多執行緒下載nginx站點目錄下檔案執行緒Nginx
- 區塊鏈溯源-防偽溯源解決方案區塊鏈
- Linux-檔案寫入和檔案同步Linux
- 企業網站被攻擊篡改的安全維護方案網站
- iGuard和NFS檔案同步的解決方案NFS
- 區塊鏈防偽溯源+商品溯源解決方案區塊鏈
- 區塊鏈商品溯源-有效防偽解決方案區塊鏈
- 區塊鏈商品溯源,溯源防偽解決方案區塊鏈
- LINUX下的檔案加密Linux加密
- Linux 檔案同步工具之 rsyncLinux
- PHP檔案上傳漏洞原理以及防禦姿勢PHP
- HttpHandler的一個應用,aspx站點偽裝為php站點薦HTTPPHP
- MYSQL 什麼時候同步binlog檔案以及它的臨時檔案在哪裡?MySql
- Linux下的檔案及檔案字尾名Linux
- 區塊鏈商品溯源+商品溯源防偽解決方案區塊鏈
- Linux系統下systemctl常用命令以及service檔案配置Linux
- linux下的檔案結構Linux
- linux下檔案的校驗Linux
- linux下的檔案共享(轉)Linux
- linux 修改hosts檔案以及修改hostnameLinux
- nginx偽靜態檔案Nginx