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