很多时候我们需要在多个服务器之间迁移数据,现在文件非常大,如果使用putty执行scp,需要保持putty不断线,否则文件拷贝就会被中断。下面是我的一次数据迁移经历。
1. 将需要处理的文件夹打成tar包。
tar zcvf data.tar.gz excel photo quwei
2.将tar包拆分成200M一个的小文件
split -b 200m data.tar.gz part
3.在目标服务器上创建shell文件执行scp
vi cp.sh
cp.sh内容如下:
#!/bin/bash
cd /data/photo
scp git@xxx.xxx.xxx.xxx:/data/part* .
修改cp.sh为可执行,后台启动。
chmod 755 cp.sh
nohup ./cp.sh &
本来以为服务器之间连接应该很稳定,只需要等它慢慢传完就好了,结果发现传了2个多G内容后,连接就断了。没办法只好重新修改cp.sh文件,让它可以拷贝指定文件。
#!/bin/bash
cd /data/photo
for part in 'partak' 'partal' 'partam' 'partan' 'partao' 'partap' 'partaq' 'partar' 'partas' 'partat' 'partau' 'partav' 'partaw' 'partax' 'partay' 'partaz' 'partba' 'partbb' 'partbc' 'partbd' 'partbe' 'partbf' 'partbg' 'partbh' 'partbi'
do
scp git@112.74.113.127:/data/$part .
done
4.将小文件合并成大文件
cat part*>data.tar.gz
tar zxvf data.tar.gz
网友评论