|
主機(jī)內(nèi)部和主機(jī)之間的數(shù)據(jù)備份和轉(zhuǎn)移是我們最長做的事情了,如果有web server那么可以 直接 wget http://www./x.zip即可,如果有ftp server時,可以使用ftp命令上傳下載,如果二者都沒有的話,scp命令就有用武之地了。
scp命令基本格式
常用參數(shù)
常用方法
執(zhí)行后,系統(tǒng)會要求輸入遠(yuǎn)程SSH的登錄密碼(ps:上面命令中,遠(yuǎn)程用戶名@,可以省略,這樣執(zhí)行后系統(tǒng)就是要求輸入用戶名和密碼),同樣可以使用密匙對的方式登錄,方法參照Windows下Puty SSH公鑰驗證實現(xiàn)免密碼登陸詳細(xì)圖文教程 將生成的公鑰id_rsa.pub改名為authorized_keys,并上傳到遠(yuǎn)程服務(wù)器的~/.ssh/下,私鑰留著本地服務(wù)器。這樣在執(zhí)行上面命令后,就不需要密碼了 定時備份方法 在建立密匙對方式登錄后,我們可以在腳本中利用scp命令進(jìn)行備份,利用crontab來定時執(zhí)行
====================================================================================== ==========================================bash============================================ ====================================================================================== 網(wǎng)站數(shù)據(jù)是一個網(wǎng)站的最重要的一部分,因為保護(hù)好我們的網(wǎng)站數(shù)據(jù)成為建站規(guī)劃的首要任務(wù)。godaddy的名費空間由于一個超大的廣告,很少有人用來做站,不過我們可以把網(wǎng)站數(shù)據(jù)上傳到這個免費空間。 1、登錄SSH,創(chuàng)建文件backup.sh vi /root/backup.sh 2、粘貼以下代碼到backup.sh,并保存。 #!/bin/bash 3、為backup.sh添加執(zhí)行權(quán)限。 chmod +x /root/backup.sh 添加腳本至crontab(自動啟動程序) 執(zhí)行命令crontab -e,添加每天0點10分啟動代碼 10 00 * * * /root/backup.sh 測試腳本 執(zhí)行腳本backup.sh ./backup.sh 稍等片刻,登錄godaddy免費空間的FTP,看是否已經(jīng)成功上傳了備份文件,如果存在,證明腳本已經(jīng)設(shè)置正確。否則,認(rèn)真檢查FTP信息是否設(shè)置正確。 這個腳本可以設(shè)置刪除多少天前的數(shù)據(jù),所以就不用擔(dān)心免費空間的容量不足的問題。 轉(zhuǎn)載請標(biāo)明文章來源:《http://www./2011/03/vps-auto-backup-godaddy/》 ====== ===================================================================================================
文章開始之前,先問下各位站長一個問題:什么東西對于站長是十分重要的?其實對于站長而言,很多東西都是很重要的。但我們現(xiàn)在排除外在因素,把范圍縮小到網(wǎng)站系統(tǒng)本身,哪些是非常重要的呢?網(wǎng)站數(shù)據(jù)就是其中之一了。 網(wǎng)站數(shù)據(jù)包括程序文件本身、網(wǎng)站運(yùn)行過程中不斷產(chǎn)生的附件數(shù)據(jù)(圖片、文檔、視頻等)以及數(shù)據(jù)庫文件,三大塊總括為網(wǎng)站數(shù)據(jù)。 以自己為例,在這兩年多的站長經(jīng)歷來看,最讓我痛苦的就是某一天起床,一直苦心經(jīng)營的網(wǎng)站打不開了,檢查過DNS也正常,最后詢問空間運(yùn)營商發(fā)生什么事了,獲知的結(jié)果系:服務(wù)器硬盤損壞,所有數(shù)據(jù)無法恢復(fù)(在這備注下:一般小站長買的機(jī)器或者空間都很低配置的,所以別想有什么數(shù)據(jù)備份服務(wù),要就加錢買),結(jié)果就是一陣陣的失落。如果網(wǎng)站剛上線運(yùn)行不久就發(fā)生這樣的事或者還不會那么心痛,從頭再來也不難。假如是一個運(yùn)行若干年的網(wǎng)站,突然發(fā)生這么一次意外就可以說是重重一擊。 剛成為站長的前幾個月,我對數(shù)據(jù)備份這個事情壓根沒考慮過,直到有一天在群里看到有位群友痛心的經(jīng)歷——網(wǎng)站徹底崩潰,數(shù)據(jù)全沒?。∧鞘墙?jīng)營了3年多的一個老站,就么倒下了,真是聞?wù)邆穆犝呗錅I(有點夸張了)。 我看到了這樣活生生的樣板,不做數(shù)據(jù)備份的后果很嚴(yán)重。所以我現(xiàn)在總結(jié)出一個經(jīng)驗:如果真要用心做一個網(wǎng)站,就一定要做好數(shù)據(jù)備份工作,而且最好能異地備份,有些朋友以為在機(jī)器本地做了備份就樂了,放心了,那就大錯。對于備份數(shù)據(jù),又要面臨一個實際的問題:每次都自己上服務(wù)器把相關(guān)的數(shù)據(jù)打包,然后再用FTP下載回來嗎?這樣時間長了就會累,所以今天就以Linux(Centos 5.5)環(huán)境講講如何實現(xiàn)全自動遠(yuǎn)程(異地)對全站數(shù)據(jù)進(jìn)行備份。 要實現(xiàn)自動遠(yuǎn)程備份功能需要的關(guān)軟件有:服務(wù)器(本地環(huán)境)要安裝lftp,遠(yuǎn)程端要開啟FTP服務(wù),對登錄的目錄有讀寫權(quán)限,具備以上2個條件即可。 如果機(jī)器上沒有安裝lftp這個工具,可以通過以下命令完成: #yum install lftp 假設(shè)把相關(guān)的腳本文件存放在/apps/script目錄下 #vi /apps/script/autobackup.sh //輸入以下內(nèi)容 #!/bin/bash #author: www. echo 'backup job start' #設(shè)置要備份的網(wǎng)站目錄,即是網(wǎng)站的根目錄 file=/apps/wwwdata #設(shè)置本地備份目錄,用于存放打包后的文件 backpath=/apps/bkdata/ dbuser=數(shù)據(jù)庫用戶名 #數(shù)據(jù)密碼,要記得用單引號將把整個密碼引起來,如果密碼中有單引號就用雙引號,嘿嘿 dbpwd='數(shù)據(jù)庫密碼' dbname=數(shù)據(jù)庫名稱 domain=遠(yuǎn)程端的域名或者IP地址 user=FTP用戶名 userpwd='FTP用戶密碼' bkdate=$(date +%Y%m%d) sqlfile_sql=${dbname}_${bkdate}.sql sqlfile_gz=${dbname}_${bkdate}.tar.gz sqlfp=${backpath}${bkdate}/$sqlfile_sql if [ -e $backpath${bkdate} ] then echo $backpath is exists. else mkdir -p $backpath${bkdate} fi #執(zhí)行數(shù)據(jù)庫備份,/apps/mysql/bin/mysqldump修改為你實際環(huán)境的路徑 /apps/mysql/bin/mysqldump -u $dbuser -p$dbpwd $dbname > ${sqlfp} #對備份之后的數(shù)據(jù)庫文件壓縮,或者在數(shù)據(jù)庫備份時通過加入?yún)?shù)直接進(jìn)行壓縮 tar zcf $backpath${bkdate}/$sqlfile_gz -C ${backpath}${bkdate} ${sqlfile_sql} #刪除未壓縮SQL的文件 rm -f ${sqlfp} #生成的文件名格式:web_網(wǎng)站目錄名_20130419.tar.gz fn=web_${file##*/}_${bkdate}.tar.gz tar zcf $backpath${bkdate}/$fn -C ${file%/*} ${file##*/} #以下操作為FTP自動連接并把本地文件上傳到異地服務(wù)器上 /usr/bin/lftp ${domain} << END user ${user} ${userpwd} lcd ${backpath} mirror -R ${bkdate} exit END echo 'backup job done' ------------分隔線-------------- 保存退出之后,為該腳本增加執(zhí)行權(quán)限 #chmod +x /apps/script/autobackup.sh #crontab –e //添加定時任務(wù),根據(jù)具體需求設(shè)定備份間隔 #0 4 1,16 * * /apps/script/autobackup.sh 我設(shè)定為每月的1日,16日的零辰4點鐘執(zhí)行備份任務(wù)。最好不要在大白天做這些操作,因為會讓整個系統(tǒng)明顯變慢的。 經(jīng)過以上配置,站長們就不用再愁數(shù)據(jù)備份的煩惱了,可以說是一勞永逸。以上僅為個人實際應(yīng)用寫,跟其各自的需求可能不大一樣,但本質(zhì)不變,只要稍作修改即可,如果有其它疑問歡迎大家留言交流學(xué)習(xí)。 |
|
|