unbuffer(1) 和 stdbuf(1) 之间有区别吗?从我收集的信息来看,unbuffer 不仅仅是在开始时调用 libc 函数 set(X)buf 的“最大努力”,然后让事情发生?
当你调用ping name.domain,它通过两个 /etc/hosts和DNS解析器来获取IP。它可以是硬编码在 中的 IP /etc/hosts,也可以是来自 DNS 服务器的 IP 。当然,它是通过调用 getaddrinfo() 或等价物来实现的,而不是直接调用。
我如何getaddrinfo()从shell调用?如何重现“普通”网络实用程序从地址获取 IP 的效果?
这不是关于使用dig/host只通过 DNS,或者getent只通过hosts. 我想ping在收到需要解析的名称时重现常见的应用程序行为(例如)。还有其他关于dig/ 的问题host。这个问题不是那些的重复。
更新:这是我的发现(部分基于其他问题的答案)
gethostip -d name.domain来自syslinux.perl -MSocket -le 'print inet_ntoa inet_aton shift' name.domain 工作可靠并且比接受的答案更简洁。getent 也可能有效:getent ahostsv4 name.domain | grep STREAM | head -1 | cut -f1 -d' '这似乎是最好的办法。
我想启动一个与网络断开连接的程序(因为它在启动后立即尝试下载大量数据,这可以通过在稳定下来后立即更改设置来防止)。但是,我真的不想为这个程序实际关闭网络。
是否有一些 LD_PRELOAD 或类似的东西给程序一个网络关闭的印象?我宁愿不创建虚拟机。
zip 本身可以刷新存档以反映当前的文件系统(例如-FS)。它仅更新具有过时时间戳的 zip 条目。
是否有一种工具可以更新2.zip文件,使其1.zip与底层内容相同,且 I/O 最少?它应该忽略具有最新时间戳的条目。
当然,rsync可以做到这一点,但代价是实际完全读取两个档案(可能是千兆字节),即使大多数相应的条目具有相同的时间戳 - 而且rsync无法识别以不同方式压缩的相同条目。
或者,是否有其他存档格式/工具可以按照我描述的方式促进增量备份?
注意:我知道的另一个明显的解决方案是使用一些基于 FUSE 的文件系统挂载 1.zip,并运行类似zip -r -FS 2.zip /mnt/zip/.