Questions tagged «nfs»

由Sun Microsystems创建的nfs(网络文件系统)。NFS允许客户端系统像访问本地文件一样访问网络文件。

13
正确锁定外壳脚本?
有时,您必须确保同时运行一个Shell脚本实例。 例如,通过crond执行的cron作业本身并不提供锁定(例如,默认的Solaris crond)。 实施锁定的常见模式是这样的代码: #!/bin/sh LOCK=/var/tmp/mylock if [ -f $LOCK ]; then # 'test' -> race begin echo Job is already running\! exit 6 fi touch $LOCK # 'set' -> race end # do some work rm $LOCK 当然,这样的代码具有竞争条件。在一个时间窗口中,两个实例的执行都可以在第3行之后在一个实例能够触摸$LOCK文件之前进行。 对于cron作业,这通常不是问题,因为两次调用之间的间隔为几分钟。 但是事情可能会出错(例如,当锁文件位于NFS服务器上时)会挂起。在这种情况下,几个cron作业可以在第3行上阻塞并排队。如果NFS服务器再次处于活动状态,那么您将听到大量并行运行的作业。 在网上搜索时,我发现了锁运行工具,这似乎是解决该问题的好方法。使用它可以运行需要锁定的脚本,如下所示: $ lockrun --lockfile=/var/tmp/mylock myscript.sh 您可以将其放入包装器中,也可以从crontab中使用它。 lockf()如果可用,它将使用(POSIX),然后回退到flock()(BSD)。并lockf()支持NFS上应该是比较普遍的。 有替代品lockrun吗? 那其他的cron守护程序呢?有普通的crond支持健全的锁定吗?快速浏览Vixie …

14
mount.nfs:在Ubuntu机器上挂载时服务器拒绝访问?
我有三台机器正在生产- machineA 10.66.136.129 machineB 10.66.138.181 machineC 10.66.138.183 所有这些机器都安装了Ubuntu 12.04,并且我具有对这三台机器的root访问权。 现在我应该在上面的机器中做下面的事情- Create mount point /opt/exhibitor/conf Mount the directory in all servers. sudo mount <NFS-SERVER>:/opt/exhibitor/conf /opt/exhibitor/conf/ /opt/exhibitor/conf如上所述,我已经在所有这三台计算机上创建了目录。 现在,我试图创建一个挂载点。所以我遵循以下过程- 在以上三台机器上安装NFS支持文件和NFS内核服务器 $ sudo apt-get install nfs-common nfs-kernel-server 在以上三台机器上创建共享目录 $ mkdir /opt/exhibitor/conf/ 编辑了,/etc/exports并在上述所有三台机器中添加了这样的条目- # /etc/exports: the access control list for filesystems which may be exported …
64 linux  ubuntu  mount  nfs 

9
如何删除此不可删除的目录?
我未解压的腐败tar文件,并成功地结束了一些目录,我不能删除,如果我尝试删除它,好像它不能被发现,但ls显示了它的存在,都与bash和与Python,我得到类似的行为,只是在我尝试使用删除它之后rm -rf, ls抱怨找不到它,然后列出了它(请参阅下文rm -rf)。该find命令显示该文件存在,但是我仍然想不出一种删除它的方法。 这是我的尝试: 在这里,您可以看到这两者,ls并find同意我们有一个目录, rl]$ ls mikeaâ??cnt rl]$ find -maxdepth 1 -type d -empty -print0 ./mikeaâcnt 但我无法删除它: rl]$ find -maxdepth 1 -type d -empty -print0 | xargs -0 rm -f -v rm: cannot remove `./mikeaâ\302\201\302\204cnt': Is a directory rl]$ ls mikeaâ??cnt 我可以cd,但它是空的: rl]$ cd mikeaâ^Á^Äcnt/ mikeaâ^Á^Äcnt]$ ls mikeaâ^Á^Äcnt]$ …
40 files  directory  nfs  rm 

5
如何确定NFS挂载是作为v3还是v4挂载的?
当我安装Red Hat 5/6时,它说的是nfs类型,我想知道如何确定安装选项或fstab中未列出的版本。请不要说使用version选项重新安装它,我想知道如何确定当前安装的NFS版本。我猜它会默认基于NFS服务器/客户端设置,但是如何确定当前是什么?我很确定这是NFS v3,因为似乎不支持nfs4_setfacl。
40 linux  mount  nfs  acl 

4
在Linux上使用“ >>”时,bash是否会在O_APPEND中打开文件?
如果使用,echo 1234 >> some-file则说明文档将附加输出。 我的猜测是,如果某些文件不存在,则O_CREAT将创建一个新文件。如果>已使用,则O_TRUNC将截断现有文件。 在以下情况下>>:是否将文件以O_WRONLY(或O_RDWR)打开并试图结束并模拟O_APPEND来完成写入操作?还是将文件以O_APPEND的形式打开,然后将其留在内核中以确保追加? 我之所以这样问是因为,当输出文件来自NFS挂载点时,conserver进程会覆盖通过echo插入的一些标记,并且NFS Documentation说服务器上不支持O_APPEND,因此客户端内核将不得不处理它。我猜服务器进程正在使用O_APPEND,但是不确定>>Linux上的bash ,因此在这里提出问题。
38 linux  files  nfs  glibc 

3
为什么在内核中而不是用户空间中实现Linux NFS服务器?
我只是想知道为什么Linux NFS服务器是在内核中而不是在用户空间应用程序中实现的? 我知道一个用户空间NFS守护程序存在,但这不是提供NFS服务器服务的标准方法。 我认为将NFS服务器作为用户空间应用程序运行将是首选方法,因为它可以通过在用户空间而不是内核中运行守护程序来提供更高的安全性。它也适合做一件事情并做得很好的通用Linux原理(并且守护程序不应成为内核的工作)。 实际上,我能想到的在内核中运行的唯一好处是上下文切换可以提高性能(这是有争议的原因)。 那么,有没有任何成文的理由说明为什么按原样实施?我尝试四处搜寻,但找不到任何东西。 似乎有很多混乱,请注意,我不是在问有关挂载文件系统的问题,我是在问有关提供网络文件系统的服务器端的问题。有一个非常明显的区别。在本地挂载文件系统需要在内核中支持文件系统(如果没有)(例如samba或unfs3)。
33 linux  kernel  nfs 

1
NFS服务器在/ etc / exports文件中所做的更改需要服务重启吗?
我有NFSv4服务器(在RHELv6.4上)和NFS客户端(在CentOSv6.4上)。让我们说/etc/exports: /shares/website1 <ip-client-1>(rw,sync,no_subtree_check,no_root_squash) /shares/website2 <ip-client-2>(rw,sync,no_subtree_check,no_root_squash) 然后,只要我对此进行了一些更改(例如,仅针对进行更改client-2),例如: /shares/website1 <ip-client-1>(rw,sync,no_subtree_check,no_root_squash) /shares/xxxxxxxx <ip-client-2>(rw,sync,no_subtree_check,no_root_squash) 然后我总是service nfs restart。然后最终..上的安装点client-1没有响应 (无法打开其文件,等等)。(为什么?由于重新启动?) 但是如上所述,我仅修改了该行client-2。的所有内容client-1均未更改。 所以我的问题是: 每当我修改时/etc/exports,restart该服务还是什么? 如果是i service nfs restart,为什么其他客户端上的Mount-Point最终会受到影响?(对于未对其进行任何更改的客户端计算机/etc/exports。) 这意味着,每当我做出改变/etc/exports和restart服务,我将需要去重新mount上的目录EVERY CLIENTS导出列表中,以具有安装点再次合作。 有什么主意吗?
30 mount  nfs  services 

3
有人可以通过互联网嗅探NFS吗?
我想从工作中使用NFS连接到我的家庭服务器。我尝试过sshfs,但有人说它不如NFS可靠。 我知道sshfs流量已加密。但是NFS呢?有人可以嗅探我的流量并查看我正在复制的文件吗? 我在局域网中使用NFSv4,效果很好。
27 security  nfs 

3
在LAN上复制大文件的快速方法
我在使用NFS时遇到了一些麻烦,我想尝试仅使用普通的旧TCP。 不过,我不知道从哪里开始。 在硬件方面,我正在使用以太网交叉电缆将两个上网本联网。 要联网,我输入 $ sudo ifconfig eth0 192.168.1.1 up && ping -c 10 -s 10 192.168.1.2 && sudo /etc/init.d/nfs-kernel-server start 在第一个上网本上 $ sudo ifconfig eth0 192.168.1.2 up $ ping -c 10 -s 10 192.168.1.1 $ mount /mnt/network1 在第二 其中/mnt/network1在/ etc / fstab中作为被指定 192.168.1.1:/home /mnt/network1 nfs noauto,user,exec,soft,nfsvers=2 0 0 以及/etc/exports第一个上网本中的内容(使用该文件的语法)。 …

2
防止断开的NFS连接冻结客户端系统
我们有一个NFS 4共享,可以在多个服务器(NFS服务器和所有Debian 8的客户端)之间共享卷。最近,我们遇到了一些问题,其中网络中断会冻结客户端系统。 我们的NFS选项几乎是最小的rw(默认值hard是fg,等等)。 我现在正在尝试使用这些选项,但没有达到我期望的行为: rw,soft,bg,retrans=6,timeo=150 (我增加了重新交易以抵消部分软风险) 我要测试的过程是: 开机机 cd 至 /mnt/mountpoint 验证NFS连接正常 cd / 杀死网络 ifdown eth0 cd 至 /mnt/mountpoint ls 此时命令行冻结,我无法中断它。 一段时间后,消息“ nfs:服务器[服务器名称]没有响应,超时”,似乎每分钟重复一次(不确定地)。 我希望/期望发生什么操作失败,并返回控制权。 请有人能告诉我这些设置哪里出问题了吗? (PS:我也尝试使用autofs进行挂载,但行为类似) 谢谢
21 nfs 

5
如何正确导出和导入具有子目录作为挂载点的NFS共享?
服务器通过带有选项的NFS A导出目录。内的子目录,是一个使用NFS服务器上的其他位置安装点的选择,像/srvnohide/srv/srv/foo--bind server# mount --bind /bar/foo/ /srv/foo/ 客户端使用NFS B导入A:/srv并安装它/mnt/srv。的内容/mnt/srv是的内容A:/srv。 问题是它/mnt/srv/foo是空的,而我希望看到A:/bar/foo/那里的内容。 如何正确导出和导入具有子目录作为挂载点的NFS共享?
21 mount  nfs 

1
chmod为什么需要磁盘空间?非原位算法?
我尝试chmod一些文件,但出现错误“超出磁盘配额”: 的确,在使用chmod的文件系统中,我没有多少空间,无论是字节数还是inode数nfs.mit.edu:/export/evodesign/beatdb(这是一个NFS): 但是为什么chmod需要更多空间? 我使用Ubuntu 12.04。 编辑:评论后的更多信息: 1)我不知道NFS服务器的操作系统(nmap -O nfs-server-ip什么都不返回) 2)挂载的NFS文件系统使用的NFS协议是NFSv3: 3)quota -v: 4)我没有任何/var/log/messages日志,我有一些/var/log/syslog日志,但是那里看起来并不奇怪。
19 nfs  chmod  quota 

4
NFS上的flock(2)与fcntl(2)
Perl 5.x文档指出,其flock(..)的实现将使用以下本机调用之一,从1开始,如果不可用,则朝3努力: 羊群(2) fcntl(2) 锁f(3) 没关系。但是,您可能已经注意到他们的免责声明,即不应在NFS上使用flock(2)。该文档建议使用-Ud_flock标志强制Perl使用flock(2)。flock(2)的手册页(在Redhat上)声明了有关NFS问题的类似免责声明。 我的问题是,为什么!?!?我似乎找不到更深入的文章,或者对WHY flock(2)的解释在NFS上并不安全。 我在Redhat(正在使用flock(2))和Solaris(正在使用fcntl(2))上用C和Perl编写了几个测试脚本。我运行strace / truss以确保Perl确实确实分别使用了flock(2)和fcntl(2)。我无法复制任何无法兑现锁的问题!是什么赋予了??
19 nfs  system-calls 

2
NFS:mount.nfs:不支持协议
我想挂载Zyxel NSA310s NAS的NFS共享。在客户端计算机上调用的Showmount显示共享: $ showmount 10.0.0.100 -e Export list for 10.0.0.100: /i-data/7fd943bf/nfs/zyxelNFS * 客户端的/ etc / fstab包含以下行: 10.0.0.100:/i-data/7fd943bf/nfs/zyxelNFS /media/nasNFS nfs rw 0 0 但是安装不起作用: sudo mount /media/nasNFS/ -v mount.nfs: timeout set for Mon May 25 17:34:46 2015 mount.nfs: trying text-based options 'vers=4,addr=10.0.0.100,clientaddr=10.0.0.2' mount.nfs: mount(2): Protocol not supported mount.nfs: trying text-based …
18 mount  nfs  fstab 

4
automount nfs:不可靠服务器的autofs超时设置-如何避免挂断?
我正在为小型共享服务器运行一台小型服务器。它主要是带有一些其他服务的文件服务器。客户端是Linux计算机(主要是Ubuntu,但也有其他Distros)和介于两者之间的Mac(-Book)(但对于这个问题而言,它们并不重要)。该服务器正在运行Ubuntu 11.10(Oneiric Ocelot)“服务器版”,我从中进行设置和测试的系统将运行11.10“桌面版”。我们在相当长的一段时间内与Samba(我们比较熟悉)一起运行共享,但是随后又迁移到NFS(因为我们在LAN中没有Windows用户并想尝试一下),到目前为止一切正常。 现在,我想使用autofs设置自动挂载,以简化操作(到目前为止,每个人都在需要时手动挂载共享)。自动安装似乎也可以。问题是我们的“服务器”不能全天候运行以节省能源(如果有人需要服务器提供的东西,他会打开电源并随后将其关闭,因此每天仅运行几个小时)。但是由于设置了autofs,因此当服务器不运行时,客户端经常挂断退出。 即使服务器没有运行,我也可以启动所有客户端。 但是,当我想显示一个目录(在终端或鹦鹉螺中)时,该目录包含/nfs服务器未运行时指向共享的符号链接,它会挂起至少两分钟(因为autofs无法连接到服务器但会保持我想尝试)。 有办法避免这种情况吗?这样安装将被延迟,直到更改目录或访问该目录的内容为止?不是在“看”下指向股票的链接时/nfs?我认为不是,但是也许有可能不尝试这么长时间访问它?只需给我一个空目录或“找不到/连接到该目录”之类的东西。 服务器运行时,一切正常。 但是,当服务器关闭时,在卸载共享之前,工具(如df或ll)挂起(假设因为他们认为共享仍在,但服务器不再响应)。 当连接丢失时,是否可以自动卸载共享? 此外,当服务器关闭并且客户端仍然挂载共享时,客户端不会关闭或重新启动。它们挂在“ 杀死剩余的进程 ” (看起来无限)上,似乎什么也没有发生。 我认为这全都归结为用于挂载和卸载的整齐超时值。并且可能在与服务器的连接丢失时删除所有共享。 所以我的问题是:如何处理?还有一个额外的好处:是否有一个很好的方法可以链接内部/nfs而不需要挂载真实共享(一个autofs选项,或者可以使用一个伪FS,/nfs在挂载发生时会被替换为FS 或类似的东西)? 我的设定 在NFS设置是非常基本的,但我们很好,到目前为止(使用服务的NFSv4): / etc / default / nfs-common NEED_STATD= STATDOPTS= NEED_IDMAPD=YES NEED_GSSD= /etc/idmapd.conf [General] Verbosity = 0 Pipefs-Directory = /var/lib/nfs/rpc_pipefs Domain = localdomain [Mapping] Nobody-User = nobody Nobody-Group = nogroup / etc / …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.