本文目录:
Linux NFS挂载,实现异地文件备份
最近做了一个文件的异地备份,采用网络挂载的方式,效果比之前用sync拷贝要方便的多。
也比之前简单的多,其实也就是几件事情。
首先是,需要备份的服务器和备份的服务器都装上nfs。
yum install nfs-utils
有的可能还需要单独安装一下rpcbind
那就
yum install rpcbind
接着在被挂载服务器编写配置文件
vim /etc/exports
/root/work 192.168.0.3(rw,no_root_squash,no_all_squash,async)
/root/work 192.168.0.16(rw,no_root_squash,no_all_squash,async)
如像这样,授权了本地的/root/work 目录可以被两个服务器访问,权限是读写(rw)
这一部分就完成了。
接下来是需要备份的服务器:
安装玩nfs以后,在/mnt目录下建一个目录(通常都是在这个目录下,别问为什么?问就是通用习惯。)
cd /mnt
mkdir backserver
这就完成了目录创建
接着也是最重要的一步
mount -t nfs 192.168.0.18:root/work/backup /mnt/backserver/
这条命令的意思是挂载192.168.0.18:root/work/backup目录到本机的/mnt/backserver/
-t 是指定挂载类型,nfs,就是网络文件系统的简称。
这样之后,本机的/mnt/backserver/存的文件实际上是存在192.168.0.18:root/work/backup目录下的。
接下来就是一个见的文件拷贝命令。
rsync -avz /usr/local/nginx /usr/local/tomcat /mnt/backserver/09back
就把文件备份到192.168.0.18:root/work/backup目录下了。
实现自动备份就更简单了,直接把刚才的命令写入shell脚本
保存为backup.sh
然后加入系统定时计划
crontab -e
30 3 * * * sh /root/work/work/backup.sh
意思是每天三点执行一次脚本,就完成了自动异地备份。
整个过程还是很简答的,其中涉及一个cs的模式。
需要知道:
1,是客户端挂载到服务端。
2,服务端需要授予客户端访问权限。
win7使用nfs挂载
1、win7系统中打开命令提示符,确认网络配置没有问题,能ping通对方的IP;
2.可能会遇到没有权限创建目录和文件,解决方法如下:
通过修改注册表将windows访问NFS时的UID和GID改成0即可,步骤如下
1) 在运行中输入regedit,打开注册表编辑器;
2) 进入HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default条目;
3) 选择新建—-QWORD64值,新建AnonymousUid,AnonymousGid两个值,值为0.
3、打开控制面板,找到程序找到打开或关闭windows功能;
4、找到NFS服务并勾选安装;
5、回到命令提示符,输入showmount -e +服务器IP地址来确认挂载点;
6、然后用mount命令来挂载,后面那个Z:是分配的盘符
7、这样进到计算机里面就可以看到网络共享目录了。
NFS挂载(ubuntu win10 demoboard)
一:安装 NFS 服务器
sudo apt-get install nfs-kernel-server
二:配置该服务器
sudo vi /etc/exports
在打开的空的文件中,添加想要共享的目录
/srv/share *(rw,sync,no_subtree_squash)
这里: /srv/share 是 ubuntu 给其他平台 ( 开发板,其他远程终端等 ) 提供的共享目录;
* 表示所有客户机都可以挂载上述共享目录,
rw 表示挂接此目录的客户机对该目录有读写的权力,
sync 同步写磁盘
no_root_squash 表示客户端root用户对该目录具备写权限
no_subtree_squash 表示允许挂接此目录的客户机享有该主机的 subtree 身份。
三:启动 NFS 服务
sudo /etc/init.d/nfs-kernel-server start
有同学会出现这个情况:
exportfs :scandir /etc/exports.d no such file or directory
解决办法:sudo mkdir /etc/exports.d
启动NFS服务器成功后会出现:
*Exporting directories for NFS kernel daemon… [OK]
*Starting NFS kernel daemon [OK]
然后,在开发板上做如下设置:
四:打开超级终端或者 DNW ,保持串口处于通信状态
五:通过交叉网线连接 PC 和开发板。这一步千万不能忘, NFS 靠的就是这根线啊,线路都不通了,如何能够配置成功?
六:确保 ubuntu 下的 IP 地址与开发板的 IP 地址在同一网段。二者皆可以通过 ifconfig 查询,以及通过它设置 IP 地址。如果不在同一网段,请手动设置为同一网段。
ifconfig eth0 192.168.149.10
这时,开发板的 IP 就设置成 192.168.149.10 了。
ping一下网络,看是否能ping通。
以上六步已经配置好 NFS 了,下面具体测试是否通信正常:
七:在开发板的 linux 启动后的命令行里输入如下指令:
mount –t nfs –o nolock 192.168.1.103:/srv/share /mnt
其中 192.168.149.7 为 PC 端 ubuntu 的 IP 地址。
前面的挂载命令将会把 PC 端的 ubuntu 下的 /srv/share 目录挂载到开发板的 /mnt 目录。当然,前提是开发板的 linux 系统必须具备这个目录了。
试试先在 ubuntu 的 /srv/share路径放个文件,然后在开发板的命令行终端敲入 ls /mnt ,是不是看到刚才所放的文件了。
八:如果第七步没有成功,请仔细检查以上七步,重复一到七步!
一、安装hane win nfs server,版本1169(官方最新版1223经试验不成功)。
二、设置如下:
三、在-输出-编辑表文件-添加你的目录,选择访问方式和别名-文件-选择保存-退出该软件
d:\nfs_folder -public -name:pc_nfs ip192.168.1.101(ip可加可不加)
四、以管理员身份重启服务(注:软件界面上“重启服务”按钮无效,在安装目录下找到重启服务):
五、若发现还是没有相关的目录出现,重启电脑
六、在开发板的Linux上对nfs目录进行挂载:
1.需将电脑的IP与开发板上的Ip设置在同一网段
2.在embed linux(开发板)输入以下命令:
mount -t nfs -o nolock 192.168.1.103:/pc_nfs_folder /mnt
电脑的IP 目录的别名 开发板上的目录
3.cd 到mnt文件夹下
ls 可以看到pc中该目录对应内容
showmount -e 192.168.1.200
若提示没有showmount这个命令,则安装nfs-common
sudo apt install nfs-common
可以看到在nfs server中挂载的文件夹,如下图所示。
sudo mkdir nfsfolder
挂载文件夹。
mount -e nfs 192.168.1.200:/video /home/nfsfolder
此时,win10和ubuntu即实现了文件夹的共享,win10或ubuntu均可以对该文件夹进行操作。
LINUX怎么挂载NFS?
在linux客户端挂接(mount)NFS磁盘共享之前,必须先配置好NFS服务端。\x0d\x0a1、Solaris系统NFS服务端配置方法如下:\x0d\x0a (1)修改 /etc/dfs/dfstab, 增加共享目录\x0d\x0ashare -F nfs -o rw /export/home/sunky\x0d\x0a (2)启动nfs服务\x0d\x0a# /etc/init.d/nfs.server start\x0d\x0a (3)NFS服务启动以后,也可以使用下面的命令增加新的共享\x0d\x0a# share /export/home/sunky1\x0d\x0a# share /export/home/sunky2\x0d\x0a 注:/export/home/sunky和/export/home/sunky1是准备共享的目录\x0d\x0a\x0d\x0a2、linux系统NFS服务端配置方法如下:\x0d\x0a (1)修改 /etc/exports,增加共享目录\x0d\x0a/export/home/sunky 10.140.133.23(rw)\x0d\x0a/export/home/sunky1 *(rw)\x0d\x0a/export/home/sunky2 linux-client(rw)\x0d\x0a 注:/export/home/目录下的sunky、sunky1、sunky2是准备共享的目录,10.140.133.23、*、 linux-client是被允许挂接此共享linux客户机的IP地址或主机名。如果要使用主机名linux-client必须在服务端主机 /etc/hosts文件里增加linux-client主机ip定义。格式如下:\x0d\x0a 10.140.133.23 linux-client\x0d\x0a (2)启动与停止NFS服务\x0d\x0a /etc/rc.d/init.d/portmap start (在REDHAT中PORTMAP是默认启动的)\x0d\x0a /etc/rc.d/init.d/nfs start 启动NFS服务\x0d\x0a /etc/rc.d/init.d/nfs stop 停止NFS服务\x0d\x0a 注:若修改/etc/export文件增加新的共享,应先停止NFS服务,再启动NFS服务方能使新增加的共享起作用。使用命令exportfs -rv也可以达到同样的效果。\x0d\x0a3、linux客户端挂接(mount)其他linux系统或UNIX系统的NFS共享\x0d\x0a # mkdir _p /mnt/nfs\x0d\x0a 注:建立一个目录用来作挂接点(mount point)\x0d\x0a #mount -t nfs -o rw 10.140.133.9:/export/home/sunky /mnt/nfs\x0d\x0a 注:这里我们假设10.140.133.9是NFS服务端的主机IP地址,当然这里也可以使用主机名,但必须在本机/etc/hosts文件里增加服务端ip定义。/export/home/sunky为服务端共享的目录。\x0d\x0a如此就可以在linux客户端通过/mnt/nfs来访问其它linux系统或UNIX系统以NFS方式共享出来的文件了。以上操作在 redhat as server 3、redflag server4.1、suse server 9以及Solaris 7、Solaris 8、Solaris 9 for x86sparc环境下测试通过。\x0d\x0a权限问题:\x0d\x0a假设 server 端的使用者 jack, user id 为 1818, gid 为 1818, client 端也有一个使用者 jack,但是 uid 及 gid 是 1818。client 端的 jack 希望能完全读写 server 端的 /home/jack 这个目录。server 端的 /etc/exports 是\x0d\x0a这样写的:\x0d\x0a /home/jack *(rw,all_squash,anonuid=1818,anongid=1818)\x0d\x0a这个的设定档的意思是,所有 client 端的使用者存取 server 端 /home/jack 这\x0d\x0a目录时,都会 map 成 server 端的 jack (uid,gid=1818)。我 mount 的结果是\x0d\x0a1. client 端的 root 可以完全存取该目录, 包括读、写、杀??等\x0d\x0a2. client 端的 jack (uid,gid=1818) 我可以做:\x0d\x0a rm -rf server_jack/*\x0d\x0a cp something server_jack/\x0d\x0a mkdir server_jack/a
【nfs系统挂载】的内容来源于互联网,如引用不当,请联系我们修改。