2012-01-25 68 views
1

我需要改進我的方法,甚至完全更改它,以便將專用網絡上的文件從多臺Windows計算機複製到中央Linux計算機。這是如何工作的,我運行下面的腳本作爲cron作業,每隔5分鐘將所有10臺Windows計算機的數據(全部使用共享文件夾)複製到每天收集的中央Linux計算機上。因此,從理論上講,Linux機器在一天結束時應該擁有Windows機器上已更改的所有數據。Linux到Windows複製網絡腳本

#!/bin/sh 
USER='/home/user/Documents/user.ip' 
IPADDY=$USER 
USERNAME=$USER 
while read IPADDY USERNAME; do 
mkdir /mnt/$USERNAME 
mkdir /home/user/Documents/$USERNAME 
smbmount //$IPADDY/$USERNAME /mnt/$USERNAME -o username=usera,password=password,rw,uid=user 
rsync -zrv --progress --include='*.pdf' --include='*.txt' --include='issues' --exclude='*' /mnt/$USERNAME/ /home/user/Documents/$USERNAME/ 
done < $USER 

該腳本工作正常,但似乎並沒有是最好的方法,很多時候數據的不被複制或跨越並非所有的數據被正確地複製。

您認爲這是最好的方法,還是有人能指出我更好的解決方案?

+0

數據沒有被正確複製?對於拉數據'rsync'是個不錯的選擇。我假設你不想在其他客戶端上安裝其他軟件? –

+0

使用這些信息元素可能有助於編輯您的問題。 1.什麼是你正在拉動的'數據'類型。 2.創建它的過程是否不斷運行? 3.如果是這樣,那麼你的組合數據不好的原因是同步問題? 4.如果這樣繼續下去,您是否可以讓每個單獨的進程在每天的特定時間停止運行,以便知道數據「系統」是否安靜?祝你好運。 – shellter

回答

1

git倉庫怎麼樣?它會不會更容易?您也可以輕鬆地跟蹤更改。

+0

+1爲備用眼睛的問題';-) – shellter

+0

GIT的工作方式,它會幫助我從不同的筆記本電腦收集文件,並確保所有的數據被複制!? – Grimlockz

+0

@Grimlockz:是的。你可以這樣使用git。從git的角度來看,您可以擁有一個主分支和許多其他從主分支創建的分支。然後,您需要將每個分支的更改合併到主分支。 –