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