公司Android Team在旧金山做了一个release的远程共享:
\\dfs.guyongqiangx.com\projects\android_releases
现在想将这个release的内容通过rsync同步到本地,那样就不用每次去代码都远涉重洋进行copy了。
我不知道Ubuntu上如何通过rsync将远程共享同步到本地,所以第一步就是要将这个远程共享mount到本地,然后再在本地的文件夹之间进行同步。
如何mount呢?
mount的方式有两个,smbfs
和cifs
,但是由于smbfs
同Samba
工具(如smb.conf
,smbmount
等)的耦合性很高,所以逐渐就被cifs
替代了,但是出于兼容性的原因,现在在某些系统上还能通过smbfs
选项进行挂载。建议采用cifs
方式挂载远程共享文件夹。
关于cifs
挂载,在Samba Wiki
上有一篇很详细的文章来介绍,如下:
Mounting samba shares from a unix client
以下是我的挂载记录:
Ubuntu 14.04
默认不支持mount.cifs
文件系统,需要安装cifs-utils
组件:
ygu@stbszx-bld-6:/local/public$ sudo mount -t cifs //dfs.guyongqiangx.com/projects/android_releases /mnt
mount: wrong fs type, bad option, bad superblock on //dfs.guyongqiangx.com/projects/android_releases,
missing codepage or helper program, or other error
(for several filesystems (e.g. nfs, cifs) you might
need a /sbin/mount.<type> helper program)
In some cases useful info is found in syslog - try
dmesg | tail or so
ygu@stbszx-bld-6:/local/public$ sudo apt-get install cifs-utils
以只读方式挂载远程共享目录到本地:
ygu@stbszx-bld-6:/local/public$ sudo mount -t cifs //dfs.guyongqiangx.com/projects/android_releases android --verbose -o username=rg935739,ro
Password for rg935739@//dfs.guyongqiangx.com/projects/android_releases:
mount.cifs kernel mount options: ip=10.10.10.10,unc=\\dfs.guyongqiangx.com\projects,user=rg935739,prefixpath=android_RO,pass=********
由于这里选项中只提供了username
选项,所以随后会提示输入密码,也可以直接将username=xxx,password=xxx
写到mount
命令上。
挂载好后就可以通过rsync
命令来将数据同步到本地了。
以下是挂载成功后的df -h
输出信息:
ygu@stbszx-bld-6:/local/public$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 63G 4.0K 63G 1% /dev
tmpfs 13G 31M 13G 1% /run
/dev/dm-1 53G 9.8G 41G 20% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
none 5.0M 0 5.0M 0% /run/lock
none 63G 0 63G 0% /run/shm
none 100M 0 100M 0% /run/user
/dev/sda2 465M 85M 353M 20% /boot
/dev/mapper/vg00-home 80G 8.9G 67G 12% /home
/dev/mapper/vg00-local 5.2T 4.9T 245G 96% /local
//dfs.guyongqiangx.com/projects/android_releases 1.2P 916T 249T 79% /local/public/android
仔细一看,远程容量竟然有1.2P
,我去,1.2P
是个什么概念?