❶ 伺服器數據怎樣備份
對於伺服器而言,它承擔的使命是7x24小時不間斷的對外提供稿襲服務,但它面臨的風險也是很大的,無論是人為誤操作、硬體損壞還是黑客攻擊,難免有數據損壞丟失的時候。一旦發生數據損壞、丟失現象後,如果沒有備份數據,那損失就大了,所以對於任何一台伺服器而言,數據的備份機制是不可缺少的。
伺服器根據提供的服務不同,大致可為分:資料庫伺服器、應用伺服器、文件伺服器。不同伺服器的備份機制還是有所區別的,我們分別來看下:
文件伺服器備份方案有哪些?
1、純敬鋒Rsync+Inotify實時增量備份
藉助Linux的Inotify特性可以監測文件系統變化,一旦發現變化則通知Rsync去同步數據,這樣就實現了增量備份,而且性能和及時性都很高。
2、通過伺服器定時任務每日凌晨執行備份任務
這種只適合對重要的數據進行日切備份,大概思路就是:Crontab+shell腳本來定時備份。
3、雲伺服器可藉助快照功能來全盤備份
資料庫伺服器備份方案
對於資料庫而言建議部署「主從同步」來實現數據備份,這樣做的好處就是:一方面存在數據副本,另外一方面多節點可以緩解資料庫做晌壓力。
當然了,現在主流資料庫也提供全量備份的功能,但如果在數據量大的情況下可能會影響資料庫的性能。
1、以主流的Mysql資料庫為例,備份方案主要有:
binlog備份
mysqlmp全庫備份
2、SQLServer也支持完全備份、事務日誌備份、差異備份等:
以上就是我的觀點,對於這個問題大家是怎麼看待的呢?❷ 編寫一個shell腳本每天16:30備份mysql數據並壓縮打包(打包文件按照當天日期命名)放到/root/data下
#!/bin/bash
date=$(date-d'+0days''+%Y-%m-%d')#聲明一個變數,並賦值當天日期
cd/root/data#進入目錄
mkdir$date#創建目錄
mysqlmp-uusername-ppassworddb_name>$date"db_name.sql"#資料庫備份,修改用戶名密碼,還有要備份資料庫
tar-zcf$date".tar.gz"$date#壓縮打包
rm-rf$date#刪除源數據
保存為bak.sh,每天16:30備份定時任務,沒有crontab命令:yum install vixie-cron
chmod +x /.../bak.sh
crontab -e
30 16 * * * /.../bak.sh
❸ 設計一個shell腳本程序,要求有如下功能: 實現自動備份功能和清理備份等
#!/bin/bash
TIME=`date+%Y%m%d|cut-b3-8`
#question1
tar-zcvf/home/bak/VAR_$TIME_BAK.gzip/var
#question2
ls-l/var>>/home/bak/VAR_$TIME_BAK.log
#question3
find/home/bak-name'*gzip'-mtime+1|xargsrm-rf
腳本名字backup.sh,放到/root下,然後用root創建cronjob
0 12 * * * /root/backup.sh
#question 4 (以redhat為例)
echo " /root/backup.sh " >> /etc/rc.local
#question 5
把下列代碼寫入cronjob中
#!/bin/bash
TIME=`date+%Y"/"%m"/"%d""%H":"%m`
if[-f/home/shell.log]
then
echo"$TIMErunning">/home/tmp.log
cat/home/shell.log>>/home/tmp.log
mv/home/tmp.log/home/shell.log
else
touch/home/shell.log
fi
腳本名字status.sh,放到/root下 (寫的有點小問題,功能執行沒問題)
0 * * * * /root/status.sh