2012-01-25 53 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的角度来看,您可以拥有一个主分支和许多其他从主分支创建的分支。然后,您需要将每个分支的更改合并到主分支。 –