首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加快大型文件系统上仅ACL的备份

加快大型文件系统上仅ACL的备份
EN

Server Fault用户
提问于 2017-04-19 16:24:33
回答 1查看 417关注 0票数 2

我试图快速备份大型GNU/Linux文件系统上的ACL。扩展权限并不是真正必要的。

我在一个小分区上运行了4个小基准,仅仅是为了估计经过的时间(秒)和生成文件大小(兆字节)。

  • getfacl -R -p /backup/dir > out_file:58.715s (36)
  • find /backup/dir -printf "%m %u:%g %p \n" > out_file:54.053s (27)
  • find /backup/dir -printf "%m %p \n" > out_file:0.763 s(26)
  • ls -laR /backup/dir > out_file:4.865s (20)

因此,如果需要用户:group,ls是最好的解决方案。

理想情况下,out_file应该如下所示:

代码语言:javascript
复制
755 user:group /full/path/to/dir
744 user:group /full/path/to/file
...

但据我所知,从ls获得文件的完整路径需要额外的命令,这将减慢进程的速度。我们讨论的是非常大的文件系统。

难道没有比ls更好(更快/更高效)的工具来处理这个问题吗?

为什么find在检索user:group时比ls慢得这么快?

作为一个加号,ls还可以处理文件名上的转义特殊字符(使用-b选项)。

解题:(感谢@shodanshok)第一次在sync之后:

  • getfacl -n -R -p /backup/dir > out_file:19.561 S(36)

但是第二次运行相同的命令:

  • getfacl -n -R -p /backup/dir > out_file:2.496s (36)
EN

回答 1

Server Fault用户

回答已采纳

发布于 2017-04-19 17:29:59

根据我的经验,getfacl可以被用户名解析过程绑定。尝试添加-n开关,例如发出getfacl -n -R -p /backup/dir > out_file

在基准测试期间,要特别注意inode/dentry缓存,因为它可以很容易地扭曲您的时间测试。在每个基准测试之前,发出以下命令来清空两个缓存:sync; echo 3 > /proc/sys/vm/drop_caches

票数 3
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/845339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档