Linux下快速迁移海量文件的操作记录
?
有這么一種遷移海量文件的運維場景:由于現(xiàn)有網(wǎng)站服務器配置不夠,需要做網(wǎng)站遷移(就是遷移到另一臺高配置服務器上跑著),站點目錄下有海量的小文件,大概100G左右,圖片文件居多。目測直接拷貝過去的話,要好幾天的時間。那么問題來了,這種情況下的網(wǎng)站數(shù)據(jù)要怎么遷移呢?另外,此網(wǎng)站還在運行中,白天是斷然不能停止了,只能運行深夜停掉幾個小時。
可以采用的方案如下:
1.利用rsync進行同步。這種方法速度會慢,不過好在支持續(xù)傳,在帶寬不高或網(wǎng)站不穩(wěn)定的情況下強烈建議用此方法:
1)先修改一下舊站上傳圖片的功能,確保新上傳的圖片保存到另一個新的目錄地址下;
2)用rsync把舊圖片同步到新的機器上;rsync可限速,同步操作時不會影響網(wǎng)站的對外服務。
3)可以寫個rsync同步腳本,在夜里定時執(zhí)行(比如凌晨1點執(zhí)行,6點結束同步),100G的文件,要不了幾個晚上就能搞定。
4)待舊站圖片全都同步過去了,再一次性把新上傳的圖片rsync同步過去。并遷移網(wǎng)站代碼。
2.如果網(wǎng)速快,網(wǎng)絡穩(wěn)定,可以考慮tar打包(壓縮)后傳輸。不過打包后,要在一個停站周期內完成遷移,對于100G的量的文件傳輸,這種方法不太靠譜。
3.可以分塊打包,比如根據(jù)圖片大小適當?shù)姆謮K篩選(find)打包,然后再傳輸。
4.如果數(shù)據(jù)不重要,通過HTTP(wget)傳輸會更快些。
5.直接把舊站服務器的硬盤拿下來,然后將硬盤掛載到新站服務器上,再在新服務器上將nginx站點目錄指向新掛載的硬盤。
實例說明:
比如本機站點目錄/var/www/html下有100多萬個小文件,需要將這些文件遷移到遠程服務器192.168.1.101的/var/www/html目錄下。
操作思路:
直接用rsync把文件一個一個的遷移過去,因為文件數(shù)量比較大,如果一下子在循環(huán)腳本里操作,會非常慢。
所以決定用分批操作,采用化整為零的方法。
為了試驗效果,可以先在/var/www/html目錄下造數(shù)
[root@bastion-IDC ~]# cd /var/www/html
[root@bastion-IDC ~]# for i in `seq 1 1000000`;do touch test$i;done
1)采用rsync同步方法
[root@bastion-IDC ~]# cat /root/rsync.sh
#!/bin/bash home=/var/www/html cd $homeif [ `pwd` == $home ];thena="1 100000 200000 300000 400000 500000 600000 700000 800000 900000" //比100萬低一級單位,即10萬的單位for b in $adoc=`expr $b + 10000` //比10萬低一級單位for loop in $(ls -l|sed -n "$b,$c"p|awk -F" " '{print $9}')dorsync $loop 192.168.1.101:$homedonedonefi[root@bastion-IDC ~]# chmod 755 /root/rsync.sh
[root@bastion-IDC ~]# /bin/bash /root/rsync.sh
2)采用wget方式(假設本機ip為192.168.1.99)
[root@bastion-IDC ~]# cat /root/rsync.sh #!/bin/bash home=/var/www/html cd $homeif [ `pwd` == $home ];thena="1 100000 200000 300000 400000 500000 600000 700000 800000 900000" for b in $adoc=`expr $b + 10000` for loop in $(ls -l|sed -n "$b,$c"p|awk -F" " '{print $9}')do/usr/bin/ssh root@192.168.1.101 "/usr/bin/wget http://192.168.1.99/$loop -P /var/www/html"donedonefi轉載于:https://www.cnblogs.com/kevingrace/p/6245488.html
總結
以上是生活随笔為你收集整理的Linux下快速迁移海量文件的操作记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2017元旦,你被闰秒吓到了吗? - 闰
- 下一篇: 玩转spring boot——结合red