是否有可能在一个充满文件和子文件夹的Ubuntu服务器上获取文件夹,其中有数百个文件夹,并且在该文件夹中设置了所有文件和文件夹的所有者和权限。
为了给出更好的解释,我在安装了SugarCRM应用程序的Ubuntu服务器上有一个文件夹。
我想知道是否有一个简单的方法来build立一些脚本,将经过并设置所有的文件/文件夹的所有者和权限,因为他们目前在服务器上的未来安装。
所以基本上,如果我只是简单地复制sugarcrm文件夹并将其粘贴到另一个服务器上,那么脚本可以通过并将所有权限和所有者设置为与原始服务器完全相同?
我的最终目标是构build一个bash脚本,可以使用Ubuntu服务器上的RSync创build数据库和文件备份,然后通过SSH将它们RSync同步到远程备份服务器。 到目前为止,我已经看到如何生成数据库备份文件以及文件/文件夹的文件夹,然后rsync它们。
我的问题是在目标服务器上,我不知道如何使用我的备份文件进行恢复,并保留原始服务器文件和文件夹所有者和权限。 只是恢复和覆盖的文件可能会保留权限和所有者,但我想知道如何使其工作,我可以恢复到全新的服务器使用我的备份文件,并拥有所有适当的权限和所有者设置!
您只需在复制文件时使用保留权限和所有者的工具。
经典tar存储归档中的所有者和权限,使用-p或--preserve-permissions将在从备份归档中提取文件时保留和/或恢复它们。
其他工具也保留所有者和权限信息,默认情况下,或者当您设置正确的标志,检查他们的手册页。
例如rsync有这么做的一整套select:
-H, --hard-links preserve hard links -p, --perms preserve permissions -E, --executability preserve executability --chmod=CHMOD affect file and/or directory permissions -A, --acls preserve ACLs (implies -p) -X, --xattrs preserve extended attributes -o, --owner preserve owner (super-user only) -g, --group preserve group --devices preserve device files (super-user only) --specials preserve special files -D same as --devices --specials -t, --times preserve modification times