天天看點

伺服器怎樣遷移---伺服器遷移篇(WindowsServer2008SVN伺服器遷移到Linux)伺服器怎樣遷移—伺服器遷移篇(WindowsServer2008SVN伺服器遷移到Linux)

伺服器怎樣遷移—伺服器遷移篇(WindowsServer2008SVN伺服器遷移到Linux)

由于公司Windows伺服器不太穩定,最近又被黑客攻擊,于是進行資料遷移

我們準備把WindowsServer2008上的資料都遷移到CentOS7上

由于資料量太大以及平台相容性,我們舍棄部分軟體,遷移一些核心的東西

由于我們的某些項目是部署在SVN上面的,于是乎,我們先來遷移SVN伺服器

svn導出資料指令如下,其中 “D:\data\svndata\system”代表SVN倉庫

例如:svnadmin dump “D:\data\svndata\system” > D:\backup\system.dump

伺服器怎樣遷移---伺服器遷移篇(WindowsServer2008SVN伺服器遷移到Linux)伺服器怎樣遷移—伺服器遷移篇(WindowsServer2008SVN伺服器遷移到Linux)

由于項目很多,不想一條一條執行浪費時間,于是編寫如下自動化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
           

等執行完成之後顯示如下(項目多要好久好久)

伺服器怎樣遷移---伺服器遷移篇(WindowsServer2008SVN伺服器遷移到Linux)伺服器怎樣遷移—伺服器遷移篇(WindowsServer2008SVN伺服器遷移到Linux)

我們上面是導出到C:\dump下

伺服器怎樣遷移---伺服器遷移篇(WindowsServer2008SVN伺服器遷移到Linux)伺服器怎樣遷移—伺服器遷移篇(WindowsServer2008SVN伺服器遷移到Linux)

導出完畢後本來想在Linux伺服器上搭建一個Samba或者ftp傳檔案的,由于是阿裡雲伺服器,不像麻煩管理者開端口,于是下載下傳xhell和xftp,直接使用xftp傳檔案了,由于檔案大,果然傳了半天(髒話***)

傳完之後如下

伺服器怎樣遷移---伺服器遷移篇(WindowsServer2008SVN伺服器遷移到Linux)伺服器怎樣遷移—伺服器遷移篇(WindowsServer2008SVN伺服器遷移到Linux)
伺服器怎樣遷移---伺服器遷移篇(WindowsServer2008SVN伺服器遷移到Linux)伺服器怎樣遷移—伺服器遷移篇(WindowsServer2008SVN伺服器遷移到Linux)

在Linux中安裝SVN

yum install subversion -y

伺服器怎樣遷移---伺服器遷移篇(WindowsServer2008SVN伺服器遷移到Linux)伺服器怎樣遷移—伺服器遷移篇(WindowsServer2008SVN伺服器遷移到Linux)

進入前面從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!!!
           
伺服器怎樣遷移---伺服器遷移篇(WindowsServer2008SVN伺服器遷移到Linux)伺服器怎樣遷移—伺服器遷移篇(WindowsServer2008SVN伺服器遷移到Linux)

./load.sh執行,顯示如下

伺服器怎樣遷移---伺服器遷移篇(WindowsServer2008SVN伺服器遷移到Linux)伺服器怎樣遷移—伺服器遷移篇(WindowsServer2008SVN伺服器遷移到Linux)

慢慢的資料就導過來來了

當然也可以使用

nohup ./load.sh &

背景執行然後睡覺第二天再處理後續操作

伺服器怎樣遷移---伺服器遷移篇(WindowsServer2008SVN伺服器遷移到Linux)伺服器怎樣遷移—伺服器遷移篇(WindowsServer2008SVN伺服器遷移到Linux)

大概一個半小時資料全部導入了

伺服器怎樣遷移---伺服器遷移篇(WindowsServer2008SVN伺服器遷移到Linux)伺服器怎樣遷移—伺服器遷移篇(WindowsServer2008SVN伺服器遷移到Linux)

設定版本庫啟動SVN

伺服器怎樣遷移---伺服器遷移篇(WindowsServer2008SVN伺服器遷移到Linux)伺服器怎樣遷移—伺服器遷移篇(WindowsServer2008SVN伺服器遷移到Linux)

好了,我隻負責遷移,其他權重限什麼的就不歸我管了,去遷移其他資料了,其餘的步驟部落客就在此省略了,可以自行去搜尋SVN for Linux去看看具體怎麼配置的

如果有人對我寫的腳本有疑問可以通過下面方式聯系

QQ:2351147520

或發郵件到

[email protected]

繼續閱讀