背景介紹:
因為備份資料的不斷擴大,需要把現網備份的資料(2t左右)傳回到本地進行異地儲存。但是2t太大了,需要進行壓縮,這裡採用了3g乙個壓縮包的方式。以下是壓縮指令碼
#!/bin/bash
# 此指令碼是全量壓縮mongodb備份的檔案
printf "開始mongodb備份壓縮 $(date +%y%m%d_%a_%z%t)\n"
cd /data_master/backup/
tar czf - picdb | split -b 3072m - picdb.tar.gz
if [ $? != 0 ]
then
printf "mongodb備份壓縮失敗 $(date +%y%m%d_%a_%z%t)\n"
else
printf "mongodb備份壓縮完成 $(date +%y%m%d_%a_%z%t)\n"
fiecho "剩餘容量: `df -h |awk -f '[ ]+' 'nr==7'`"
壓縮完的結果就是上圖一樣,只是個數較多。
接下來的問題是:現網網路頻寬有限,如何把這些壓縮包傳回到本地。這裡採用的 早上6點至晚上10點,進行限速傳(限速500kb/s),晚上10點後至早上6點採取不限速。
#!/bin/bash
# sftp傳輸指令碼
# ip位址
ip=本地ip
# port埠
port=本地埠號
# user使用者名稱
user=本地使用者
# passwd密碼
passwd=使用者密碼
#壓縮包所在目錄
clientdir=/data_master/backup/
severdir=/sftp/data_master/
# 設定當前小時
# xiaoshi=`date +"%y-%m-%d %h:%m.%s"|awk -f "[ :]+" ''`
# file=
while :
doxiaoshi=`date +"%y-%m-%d %h:%m.%s"|awk -f "[ :]+" ''`
if [ $ -ge 6 ] && [ $ -lt 22 ];
then
echo "大於6時並小於22時,應該執行限速"
file=`head -1 /home/lsy/sftp.txt`
printf "開始傳輸壓縮備份 $(date +%y%m%d_%a_%z%t)\n" >>/home/lsy/sftp_file.log
cd $
cd $
lcd $
set net:limit-rate 500000:500000
reput $
byeof
if [ $? -eq 0 ]
then
echo "傳輸成功。下面是檔名" >>/home/lsy/sftp_file.log
echo $ >>/home/lsy/sftp_file.log
sleep 3
else
echo "傳輸失敗。" >>/home/lsy/sftp_file.log
sleep 5
exit 2
fised -i 1d /home/lsy/sftp.txt
printf "傳輸完成 $(date +%y%m%d_%a_%z%t)\n" >>/home/lsy/sftp_file.log
else
echo "取消限速"
file=`head -1 /home/lsy/sftp.txt`
printf "開始傳輸壓縮備份 $(date +%y%m%d_%a_%z%t)\n" >>/home/lsy/sftp_file.log
cd $
lftp -u 使用者,密碼 sftp://本地ip:埠 << eof
cd $
lcd $
reput $
byeof
if [ $? -eq 0 ]
then
echo "傳輸成功。下面是檔名" >>/home/lsy/sftp_file.log
echo $ >>/home/lsy/sftp_file.log
sleep 3
else
echo "傳輸失敗。" >>/home/lsy/sftp_file.log
sleep 5
exit 2
fised -i 1d /home/lsy/sftp.txt
printf "傳輸完成 $(date +%y%m%d_%a_%z%t)\n" >>/home/lsy/sftp_file.log
fidone
在這裡有一點非常需要注意:set net:limit-rate 500000:500000 這個引數就是lftp進行限速的命令。網上找了好多文章,他們在 set net:limit-rate 500000,500000用的是,號 經過我實測和man lftp檢視引數,這裡用的是:希望大家能少採坑。
以上就是我傳輸的過程和指令碼,希望能夠幫助到大家。
傳輸層總結
tcp的特點 面向連線,可靠,時延大,適用於大檔案。udp特點,無連線,不可靠,時延小,適用於小檔案 下面內容,請全文背誦 1.傳輸層的定址與埠 1.復用 應用層所有的應用程序都可以通過傳輸層再傳輸到網路層。2.分用 傳輸層從網路層收到資料後交付給指定的應用程序 復用 就是說 所有的程序,都會經過傳...
ActiveMQ 傳輸協議總結
activemq支援的client broker size large color red b transmission control protocol tcp b color size 這是預設的broker配置,tcp的client監聽埠是61616。在網路傳輸資料前,必須要序列化資料,訊息是...
網路資料(socket)傳輸總結
環境限定 tcp ip下的socket網路傳輸 c c 開發語言,32 64位機。目前有兩種方式對資料進行傳輸 1 字元流形式,即將資料用字串表示 2 結構型方式,即將資料按型別直接傳輸。1 的方式保證所有的資料都是清晰的字串明文,沒有平台不一致問題,但傳輸的資料不定長,復合資料型別 如struct...