安装
sudo apt-get install nfs-kernel-server
安装时候会提示
Not starting NFS kernel daemon: no exports
这是说没有对 /etc/exports进行配置,不用管
服务端
配置
主要配置/etc/exports
格式
共享目录 允许访问的电脑 options
例如
/opt/XXXX/ *(insecure,rw,sync,no_root_squash,no_subtree_check)
/opt/XXXX/ 共享目录
* 允许所有IP访问
设置的选项(insecure,rw,sync,no_root_squash,no_subtree_check)
其中
(1) rw //读写。客户端拥有读写的权限。
(2) ro //只读 客户端只有读的权限。
(3) no_root_squash //root用户可访问,不变成匿名用户,即root用户可以以root用户的权限访问NFS服务器的共享资源。
(4) root_squash //root用户变成匿名用户
(5) all_squash //所有用户都变成匿名用户
(6) anonuid
(7) anongid //所有匿名用户的UID或组ID都变为后面设定的UID或GID的权限。因为所有在NFS服务器用户列表中没有用户名的都会匿名用户,这里设定这些匿名用户的用户权限。
(8) sync //同步到硬盘
(9) async //数据存放到内存而不是直接写到硬盘
(10)insecure 允许从这台机器过来的非授权访问
启动
service rpcbind start
sudo service nfs-kernel-server start
客户端
安装之后建立需要同步的文件夹,之后挂载
mount option 服务端IP:路径 客户端路径
例如
sudo mount -t nfs X.X.X.X:/opt/XXX/ /opt/a_credit/recv/nfs/ -nolock
就挂载上了,这时候可以发现当服务端路径文件改变的时候,客户端对应路径也同步改变。
rsync
有时候会有服务端和客户端不可以互通的情况,例如一端可以ping通另一端,而另一端无法反向寻址。这时候可以使用rsync
rsync的好处是基于增量算法,不会像scp一样传整个文件,而是传输增量部分,可以用于文件同步
安装
sudo apt-get install rsync xinetd
设置ssh免密登录
在~/.ssh中生成ssh秘钥
ssh-keygen
之后将公钥(.pub)文件复制,粘贴到要访问的机器中的
~/.ssh/authorized_keys
此时就可以在第一台中免密访问第二台服务器啦
免密登录之后可以直接用rsync传文件,还可以写到脚本或者crontab定时任务里,由于不用人为输入密码,十分方便
语句格式
rsync option ssh source:/sour_dir/ /des_dir/
rsync -ave ssh someone@x.x.x.x:/opt/a/service* /opt/b/