我想使用 NFS 从工作中连接到我的家庭服务器。我试过 sshfs 但有人说它不如 NFS 可靠。
我知道 sshfs 流量是加密的。但是 NFS 呢?有人可以嗅探我的流量并查看我正在复制的文件吗?
我在 LAN 中使用 NFSv4,效果很好。
对于SysV的init,我需要/etc/inittab重生的getty项目中,/sbin/init二进制,二进制文件和共享库的外壳,login的getty,的PAM /安全性/阴影的东西,和一些设备文件。
因为upstart我需要几乎相同的要求,但不是/etc/inittab,我在下面有几个*.conf文件/etc/init:一个 *.confstart on startup设置运行级别telinit,每个 tty 的 *.confgetty在适当的运行级别上在该 tty 上启动/重新生成.
我需要什么配置和二进制文件systemd init?
我发现的所有文档似乎都集中在如何使用已安装的系统来启动和停止服务。
从正在运行的Arch或fedora安装中复制的最小文件列表(内核/initrd 除外)就可以了,但我似乎找不到关于systemd.
我想知道的是,systemd在 initramfsswitch_root调用systemd /sbin/init.
例如upstart,二进制文件和两个*.conf文件:
文件/etc/init/whatever.conf:
启动时开始 发出运行级别 任务 脚本 telinit 2 结束脚本
文件/etc/init/tty1.conf:
从运行级别开始 [12345] 重生 exec /sbin/agetty …
任何人都知道一种基于非行的工具以某种内存高效的方式“二进制”搜索/替换字符串?也看到这个问题。
我有一个 +2GB 的文本文件,我想对其进行处理,类似于以下内容:
sed -e 's/>\n/>/g'
Run Code Online (Sandbox Code Playgroud)
这意味着,我想删除在 a 之后出现的所有换行符>,而不是其他任何地方,因此排除tr -d.
这个命令(我从一个类似问题的答案中得到的)失败了couldn't re-allocate memory:
sed --unbuffered ':a;N;$!ba;s/>\n/>/g'
Run Code Online (Sandbox Code Playgroud)
那么,有没有其他不求助于C的方法呢?我讨厌 perl,但我愿意在这种情况下破例 :-)
我不确定数据中没有出现任何字符,所以\n如果可能的话,我想避免用另一个字符临时替换。
任何好主意,任何人?
当然,测试文件是否为空的标准方法是使用test -s FILE,但我们的一个客户收到了一个包含如下测试的脚本:
RETVAL=`ls -s ./log/cr_trig.log | awk '{print $1}'`
if test $RETVAL -ne 0
then
echo "Badness: Log not empty"
exit 25
fi
Run Code Online (Sandbox Code Playgroud)
供应商声称它可以在他们测试过的两种环境中工作。不用说,它在我测试的两个地方都失败了。
所以,我很好奇。什么时候ls -s打印0空文件?
这是我到目前为止的发现:
我还没有检查过网络文件系统。
问题:我如何优雅地向其他人解释他们的脚本是错误的?
在我看来,“正确”的版本是:
if test ! -s ./log/cr_trig.log
then
echo "Badness: Log not empty"
exit 25
fi
Run Code Online (Sandbox Code Playgroud) 我最近问了一个问题,如果换行符出现在另一个特定字符之后,如何删除它。
Unix 文本处理工具非常强大,但几乎所有这些工具都处理文本行,当输入适合可用内存时,这在大多数情况下都很好。
但是如果我想替换一个不包含任何换行符的大文件中的文本序列,我该怎么办?
例如<foobar>,在\n<foobar>不逐行读取输入的情况下替换为?(因为只有一行,而且长度为 2.5G 个字符)。
我在 VirtualBox 虚拟机中安装了 Fedora 20。
现在它通知我“操作系统更新”,“包括所有用户的性能、稳定性和安全性改进”,我可以选择“重新启动和安装”。
但是,单击“操作系统更新”会显示“操作系统更新”的内容,但在要更新的软件包列表中找不到新的内核、libc 或 systemd。
那么,是什么要求重启呢?
这些包在我发出时列出sudo yum update:
================================================== ============================== 更新: chkconfig x86_64 1.3.62-1.fc20 更新 172 k chrony x86_64 1.30-2.fc20 更新 262 k emacs 文件系统 noarch 1:24.3-24.fc20 更新 58 k 文件 x86_64 5.19-4.fc20 更新 59 k 文件库 x86_64 5.19-4.fc20 更新 401 k gdb x86_64 7.7.1-18.fc20 更新 2.6 M ghostscript x86_64 9.14-4.fc20 更新 4.4 M hwdata noarch 0.269-1.fc20 更新 1.3 M libndp x86_64 1.4-1.fc20 更新 30 k libreport x86_64 2.2.3-2.fc20 更新 405 k libreport-anaconda …
如果/proc/config.gz不可用,我怎么知道正在运行的内核能够在压缩文件上使用哪些解压缩算法cpio initramfs?
gzip算法是否始终可用,即使在构建内核时CONFIG_DECOMPRESS_GZIP不可用y?
我有一个集群,其中包含一堆服务器,共享磁盘包含所有节点同时访问的 GFS 全局文件系统。
集群中的每个节点都运行相同的程序(一个 shell 脚本是主要的核心)。系统处理出现在几个输入目录中的文件,它的工作方式如下:
这一切都很好,但我想知道是否有更便宜(不太复杂)的解决方案也可以使用。我可能在考虑 NFS 或 SMB。
我使用 GFS 的原因有两个:
我像这样创建锁文件:
date '+%s:'${unid} > ${currlock}.${unid}
ln ${currlock}.${unid} ${currlock}
lockrc=$?
rm -f ${currlock}.${unid}
Run Code Online (Sandbox Code Playgroud)
其中$unid是唯一的会话标识符,$currlock是/gfs/tmp/lock.${file_to_process}
的美妙之ln处在于它是原子的,因此除了同时尝试同一件事的人之外,其他所有人都失败了。
所以,我想我要问的是:NFS 能满足我的需求吗?ln在 NFS 和 GFS 上是否以相同的方式可靠地工作?
在 linux 中,从/proc/PID/stat,我可以获得start_time(22:nd) 字段,该字段表示内核启动后进程启动的时间。
将其转换为自纪元以来的秒数格式的好方法是什么?它添加到btime的/proc/stat?
基本上,我正在寻找过程的年龄,而不是它开始的确切时间。我的第一种方法是将start_time正在调查的进程start_time的 与当前进程的 进行比较(假设它没有运行很长时间)。
当然必须有更好的方法。
在查看https://www.kernel.org/doc/Documentation/filesystems/proc.txt时,我没有发现任何明显的与年龄相关的参数
所以,我目前拥有的是:
process age = (current_utime - ([kernel]btime + [process]start_time))
Run Code Online (Sandbox Code Playgroud)
任何在 shell 脚本中更有效的替代方法?(理想情况下跨 DST 更改是正确的)
我有几个 CentOS GFS 集群(全局文件系统中的 GFS),使用光纤通道 SAN 中的共享磁盘。他们现在已经成熟了,是时候开始计划更换他们了。
它们是奇数个节点(3 或 5),并使用 APC (PDU) 电源开关设置故障节点的隔离。节点全部处于活动状态,并且在同一共享文件系统上同时读写。文件系统很小,目前还不到 1 TB,并且永远不会增长到超过商用硬盘驱动器的大小。
我有两个专有的 IP 地址资源,当节点关闭时它们会重新定位。(3 节点集群上为 1)。一切都运行良好,但当活动较多时,性能不是很好。
那么,我可以在下一代集群中做哪些不同的事情呢?
我需要的是服务正常运行时间和数据可用性。也可能具有可扩展性,但可能不会。我预计负载不会增加太多。我还需要能够像常规文件系统上的常规文件一样读写文件。不需要配额或 ACL。只是常规的 unix 权限、所有权、mtime、字节大小,以及以在除 1 个节点之外的所有节点上失败的方式创建锁定文件的能力ln(如果他们同时尝试的话)。
我不想增加物理服务器的数量(这意味着我想使用实际服务器本身的存储)。
这不是强制性的,但我认为如果我不依赖共享磁盘,那就太好了。在过去的 5 年里,我经历了两起企业级 SAN 存储不可用的事件,因此无论这种情况多么不可能,我都希望能领先一步。
由于正常运行时间非常重要,因此 1 台物理服务器和 1 个正在运行的内核太少了。虚拟机依赖于我们环境中的 SAN。
到目前为止我的想法:
ln按照我期望的方式工作吗?那么 NFS 服务器是什么?)如您所见,我对分布式存储感兴趣,但需要经验丰富的专家的建议。特别欢迎有关 Ceph 或 XtreemFS 的建议或建议。这不是具有疯狂带宽需求的 HPC。只需要旧解决方案的可用性和可靠性,并希望具有灵活性,最好是比当前解决方案“更好”的配置。
编辑(参见 Nils 评论) 我考虑更换此解决方案的主要原因是我想看看是否可以消除 SAN 存储柜的单点故障。或者我应该使用 LVM 镜像将数据保存在同一 SAN 结构中的两个不同存储系统上?我认为两个 FC-HBA 和双交换机应该足够了。
nfs ×3
shell-script ×2
systemd ×2
boot ×1
cluster ×1
compression ×1
concurrency ×1
fedora ×1
filesystems ×1
gfs ×1
initramfs ×1
linux ×1
linux-kernel ×1
ln ×1
lock ×1
ls ×1
newlines ×1
proc ×1
reboot ×1
security ×1
sed ×1
sysfs ×1