我有一个名为 的大目录servers
,其中包含许多由rsnapshot
. 这意味着结构或多或少类似于:
./servers
./servers/daily.0
./servers/daily.0/file1
./servers/daily.0/file2
./servers/daily.0/file3
./servers/daily.1
./servers/daily.1/file1
./servers/daily.1/file2
./servers/daily.1/file3
...
Run Code Online (Sandbox Code Playgroud)
快照是以rsnapshot
节省空间的方式创建的:如果/servers/daily.0/file1
与 相同/servers/daily.1/file1
,它们都使用硬链接指向同一个 inode,而不是每个周期都复制一个完整的快照。/servers/daily.0/file1/servers /daily.0/file1
我尝试使用硬链接结构复制它,以节省目标驱动器上的空间,使用:
nohup time rsync -avr --remove-source-files --hard-links servers /old_backups
Run Code Online (Sandbox Code Playgroud)
一段时间后,rsync 冻结 - 没有新行添加到nohup.out
文件中,并且似乎没有文件从一个驱动器移动到另一个驱动器。删除nohup
并没有解决问题。
知道出了什么问题吗?
亚当
我对 Linux 硬链接感到困惑,
我在我的 Ubuntu 机器上用这个命令创建了一个硬链接,
ln f1 f2
Run Code Online (Sandbox Code Playgroud)
所以f2应该是f1的硬链接,但是为什么我用emacs改了f2并保存了f2,f1根本没变。我的理解是 f1 应该有我对 f2 所做的任何更改。
我有一项服务,它坚持将其日志文件保存在糟糕的位置。在改变保存它们的位置的所有努力都失败了之后,我的下一个想法是在更干净的地方创建指向这些文件的硬链接。这让我产生了一个担忧:
如果我配置 logrotate 来管理这些日志文件,它会按预期工作(轮换日志,保持我的链接工作)?还是 logrotate 会不小心断开链接,并使日志累积在其本地位置而不是我的中央位置?
我相信我可以配置 logrotate 以在必要时在轮换后重新创建硬链接。但是,有必要吗?
如何让 Windows 重新计算文件的继承权限?
一个工具 (Mercurial) 从不同目录创建了多个指向同一文件的 NTFS 硬链接。我可以看到他们使用fsutil hardlink list
. 这不会更改文件的 ACL。但我现在希望该文件从第二个父文件夹继承 ACL。我怎样才能做到这一点?我怎样才能为整个子树做到这一点?
icacls /inheritance:e
似乎没有帮助...
Old New Thing有两篇关于继承权限和硬链接的文章:
但似乎也没有提到如何触发这种重新计算。
我过去使用过硬链接,但它们似乎把事情弄得一团糟......
什么时候使用硬链接合适?何时何地使用硬链接的最佳实践是什么?
谢谢,
担
我需要将一个目录“绑定”到许多 chroot 位置。我知道我可以执行“mount -o bind”,但这需要每次启动时进行特殊处理(运行安装)。
有没有办法直接在文件系统上执行此操作?我的文件系统是ext4,它似乎不支持目录的硬链接。硬链接里面的所有文件也不是一个选项。
有没有办法启用 ext4 中目录的硬链接?或者还有其他可用的选择吗?
在源服务器 (A) 上,我得到了一个文件 /opt/resources/xxx 和一个指向该文件的硬链接 /etc/apache2/sites-available/xxx。
在另一台服务器(B)上,我得到了相同的结构 /etc/apache2/sites-available/xxx 硬链接到 /opt/resources/xxx
我将服务器 (A) 上的 rsync 同步到服务器 (B) /opt 下的所有更改
当我更改服务器 A 上的文件 xxx,然后将 rsync rsync 到服务器 B 时,这些更改会反映出来。服务器 B 上的 /opt/resources/xxx 包含我对服务器 A 上的同一文件所做的更改。
我唯一不明白的是文件 /etc/apache2/sites-available/xxx 不包含更改。
看起来好像 rsync 断开了硬链接,但可能我缺少一些配置选项。
哪一个 ?
弗朗西斯