linux 下檔案同步複製__linux

來源:互聯網
上載者:User

           linux 下檔案同步複製
1. 採用方式
在一台機器上建立一個臨時存放目錄,存放檔案,從這個臨時目錄向多台
伺服器傳送檔案。對於該臨時目錄下傳送後的檔案,徹底刪除。
 
/root/tempplay :臨時目錄
/root/play     :播放檔案存放目錄
並假定IP  地址如圖所示。
                   |----------------------------|
                   |機器A(192.168.0.1)          |
                   |----------------------------|
                   |/root/tempplay              |
                   |----------------------------|
                   |/root/play                  |
                   |----------------------------|

|-----------------------------|  
|機器B1(192.168.0.2)          |
|-----------------------------|
|/root/play                   |
|-----------------------------| 
機器 B2,B3 和  B1 的目錄結構一致。

圖中的機器 A 就是我們的資料來源機器,源機器上 /root/tempplay 目錄就是
我們的臨時目錄,需要從 /root/tempplay 向所有機器的 /root/play 目錄傳送檔案。/
2. 步驟
以下為了方便操作,全部採用 root 使用者在在 red  linux 上測試通過。
2.1 臨時目錄建立
在 A 上
mkdir /root/tempplay
2.2 建立播放目錄
在所有機器上
mkdir /root/play

2.3 搞定認證,產生密鑰
在 A 上
cd ~/.ssh
#產生公開金鑰檔案(id_dsa.pub)和私密金鑰檔案(id_dsa), 類型DSA, 長度1024 bits
#注意詢問passphrase的時候直接斷行符號
ssh-keygen -t dsa -b 1024
#將公開金鑰(id_dsa.pub)複製到遠端B1,B2,B3三台伺服器去,命名為 id_dsa.pub.client

2.4 確認認證
在 B1,B2,B3 上執行下面操作
cd ~/.ssh
#將Client的公開金鑰放入Server的信任清單
cat id_dsa.pub.client >> authorized_keys
#更新許可權,很重要
chmod 700 $HOME/.ssh
chmod 600 $HOME/.ssh/authorized_keys
chmod g-w $HOME $HOME/.ssh $HOME/.ssh/authorized_keys

2.5 編寫複製檔案指令檔 synchfile.sh,內容如下:
#bin/bash
# 拷貝尾碼名稱是 mp4 的檔案
scp  -p –q  /root/tempplay/*.mp4 root/play /
scp  -p –q  /root/tempplay/*.mp4 root@192.168.0.2:/root/play /
scp  -p –q  /root/tempplay/*.mp4 root@192.168.0.3:/root/play /
scp  -p –q  /root/tempplay/*.mp4 root@192.168.0.4:/root/play /
# 結束後刪除臨時目錄下檔案
rm –f –r  /root/tempplay/*.mp4

2.6 指令碼部署
在 A 上,複製檔案synchfile.sh 到 /root 下
chmod a+x /root/synchfile.sh


2.7 定時執行
在 A 上,
#產生定時執行檔案 /root/mycron,
crontab -l > /root/mycron
編輯檔案 /root/mycron,增加如下內容(表示15 分鐘執行一次)
*/15 * * * * /root/synchfile.sh

#crontab 命令配置定時執行 synchfile.sh
crontab  /root/mycron –u root

#重新引導
/etc/rc.d/init.d/crond restart

2.8 弊端
以上的部署不能保證你向 /root/tempplay 目錄拷貝檔案的時候,同時腳
本也在執行拷貝該目錄下的檔案到 /root/play 目錄,這樣會衝突,引起檔案的不完整。所以拷貝指令碼正在執行的時候,不要向 /root/tempplay 下放需要被複製到其他機器的檔案。
可以使用 ps –e –f |grep scp 命令查看 拷貝指令碼是否在運行。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.