tar和rsync:存档和保留SELinux上下文,扩展属性和ACL
时间:2020-01-09 10:42:00 来源:igfitidea点击:
在备份时,如何使用tar和rsync命令在CentOS/RHEL/Fedora Linux服务器下保留ACL,扩展属性和SELinux上下文?
GNU/tar和rsync命令都可以归档扩展属性,例如以下内容,以用于备份和其他目的:
Selinux上下文
ACL
xattrs
tar命令语法
语法为:
tar --selinux --acls --xattrs -cvf file.tar /var/www
其中:
--selinux
将SELinux上下文保存到名为file.tar的档案中。--acls
A将ACL保存到名为file.tar的档案中。--xattrs
将用户/根xattrs保存到名为file.tar的归档文件中,请归档所有扩展属性,包括SELinux和ACL。-c
创建一个名为file.tar的新档案。-v
详细输出。-f file.tar
存档文件名。/var/www
从目录/var/www创建名为file.tar的档案
要提取存档,只需执行:
tar -xvf file.tar
您可以使用以下语法忽略属性,以实现与较早的基于Linux的系统的向后兼容性:
tar --no-acls --no-selinux --no-xattrs -xvf file.tar
其中:
--no-acls
不要从档案中提取ACL。--no-selinux
不要从档案中提取SELinux上下文。--no-xattrs
不要从档案中提取用户/root xattrs
rsync命令语法
语法为:
rsync -av -A -X /source/path /dest/path rsync -az -A -X /source/path user1@server2:/dest/path
其中:
-A
:保留ACL。- -X:保留扩展属性/SELinux。
- -a:存档模式。
- -z:在传输过程中压缩文件数据。
要将/var/www同步到node2,请执行:
rsync -aAX /var/www root@node2:/var/www/
或者
rsync -e ssh -aAX /var/www root@node2:/var/www/
您可能需要传递以下追加选项来备份硬链接(-H
),查看进度(-P
)和详细(-v
)输出:
rsync -e ssh -aAXHPv /var/www root@node2:/var/www/
如何查看SELinux上下文?
执行以下命令:
ls -lZ ls -lZ /path/to/file
或者
ls -Z
如何查看文件系统对象的扩展属性?
使用getfattr命令:
getfattr -d -m - -R /path/to/dir getfattr -d -m - /path/to/file getfattr -d -m security.selinux -R /var/www
要列出Linux第二个扩展文件系统上的文件属性(有关更多信息,请参见chattr命令):
lsattr /path/to/file