伺服器怎樣遷移—伺服器遷移篇(WindowsServer2008SVN伺服器遷移到Linux)
由于公司Windows伺服器不太穩定,最近又被黑客攻擊,于是進行資料遷移
我們準備把WindowsServer2008上的資料都遷移到CentOS7上
由于資料量太大以及平台相容性,我們舍棄部分軟體,遷移一些核心的東西
由于我們的某些項目是部署在SVN上面的,于是乎,我們先來遷移SVN伺服器
svn導出資料指令如下,其中 “D:\data\svndata\system”代表SVN倉庫
例如:svnadmin dump “D:\data\svndata\system” > D:\backup\system.dump
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL5FlaOFzaq50dRpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL3gDOxUDOyEjM0EzMwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
由于項目很多,不想一條一條執行浪費時間,于是編寫如下自動化batch腳本
命名為dump.bat
該腳本放在SVN倉庫下執行
::create Joker
::time 03/13
@echo off
set dump=.dump
md C:\dump
for /d %%c in (*) do (
echo ===========start============
echo Working on files:
echo %cd%\%%c
:: svnadmin dump “D:\data\svndata\system” > D:\backup\system.dump
:: 由于當時安裝SVN伺服器的時候沒有配置環境變量 導出時使用svnadmin的絕對路徑
"D:\Program Files (x86)\VisualSVN Server\bin\svnadmin.exe" dump %cd%\%%c > C:\dump\%%c%dump%
echo %cd%\%%c%dump% >> dump.txt
echo Complete!
echo ============end=============
)
echo Success!!
pause
等執行完成之後顯示如下(項目多要好久好久)
我們上面是導出到C:\dump下
導出完畢後本來想在Linux伺服器上搭建一個Samba或者ftp傳檔案的,由于是阿裡雲伺服器,不像麻煩管理者開端口,于是下載下傳xhell和xftp,直接使用xftp傳檔案了,由于檔案大,果然傳了半天(髒話***)
傳完之後如下
在Linux中安裝SVN
yum install subversion -y
進入前面從windows上傳過來的那個目錄編寫如下shell腳本
命名為load.sh
使用chmod u+x load.sh給予執行權限
#!/bin/bash
# create Joker
# time 03/14
dumpfilelist=`ls *.dump`
count=0
datapath=/root/svn/svndata/
mkdir $datapath -p
starttime=`date +"%Y-%m-%d %H:%M:%S"`
echo starttime:$starttime
for dumpfile in $dumpfilelist;
do
echo =======start========
echo "Being implemented:"$dumpfile"!"
# svnadmin load /data/svndata/system < /data/backup/system.dump
# svnadmin load /svn/data/$file < $dumpfile
file=`echo $dumpfile | awk -F '.' '{ print $1 }'`
let count+=1
echo Count:$count,BeingCreate:$file!
#svnadmin create /data/svndata/system
svnadmin create $datapath$file
svnadmin load $datapath$file < $dumpfile
echo $datapath$file
echo Complete!!!
echo ========end=========
done
endtime=`date +"%Y-%m-%d %H:%M:%S"`
echo endtime$endtime
tart_seconds=$(date --date="$starttime" +%s);
end_seconds=$(date --date="$endtime" +%s);
echo "SumTime: "$((end_seconds-start_seconds))"s"
echo Success!!!
./load.sh執行,顯示如下
慢慢的資料就導過來來了
當然也可以使用
nohup ./load.sh &
背景執行然後睡覺第二天再處理後續操作
大概一個半小時資料全部導入了
設定版本庫啟動SVN
好了,我隻負責遷移,其他權重限什麼的就不歸我管了,去遷移其他資料了,其餘的步驟部落客就在此省略了,可以自行去搜尋SVN for Linux去看看具體怎麼配置的
如果有人對我寫的腳本有疑問可以通過下面方式聯系
QQ:2351147520
或發郵件到
[email protected]