Mou*_*inX 12 rsync file-permissions
我收到标题中提到的错误。
我发现了这个类似的问题:Run rsync with root permission on remote machine。那不能回答我的问题。
我是远程服务器上的管理员,我想用它rsync来将文件备份到我的本地机器上。这是我的 rsync 命令:
$ rsync -avz me@myserver.com:/var/www/ /backups/Sites/MySite/
Run Code Online (Sandbox Code Playgroud)
它主要是有效的。登录是通过密钥对进行的。我没有也不能使用密码(编辑:通过 SSH 登录)。由于权限,只有少数文件不会传输。我不想更改这些权限。
这是错误:
receiving file list ... done
rsync: send_files failed to open "/var/www/webapp/securestuff/install.php": Permission denied (13)
Run Code Online (Sandbox Code Playgroud)
我不是想改变这个文件的权限。它(以及其他类似的)不应该是可读的(root 除外)。
这必须在 cron 作业中运行,我更喜欢仅使用 rsync 命令的简单单行解决方案。下一个选择是我可以从 cron 作业调用的 shell 脚本。在任何情况下,我都不能手动登录远程机器并成为 root(因为运行时我会睡觉。
如何使用 rsync 将其备份到我的本地机器上?
你可以不备份,你不能以其他方式读取文件,因此权限将不得不要么改变或由根重写。
更详细的选项:
root@myserver.com直接通过 rsync'ing 覆盖权限。(
...或者通过在服务器上配置sudo以允许无密码运行rsync服务器端组件。
me ALL=(root) NOPASSWD: /usr/bin/rsync --server --sender -vlogDtprze.iLsf . /var/www/
Run Code Online (Sandbox Code Playgroud)
和
rsync --rsh="ssh me@myserver.com sudo" -avz /var/www/ /backups/...
Run Code Online (Sandbox Code Playgroud)在服务器上创建一个专用的“网站备份”帐户。更改文件的权限,使其对“网站备份”帐户可读;您可以setfacl为此使用 ACL 。请勿将此帐户用于其他任何用途。
rsync -avz website-backup@myserver.com:/var/www/ /backups/sites/mysite/
Run Code Online (Sandbox Code Playgroud)在服务器上编写一个脚本,将 /var/www/ 转储到加密的 tarball 中。同样,这可以以 root 身份(通过 crontab)或通过将sudo配置为不需要该脚本的密码来完成。例如:
#!/bin/sh
tar c /var/www/ | gpg -e -r mountainx@example.com
Run Code Online (Sandbox Code Playgroud)
每次都通过拉取整个 tarball 来完成备份,这对于大型站点来说可能效率低下:
ssh me@myserver.com "sudo /usr/sbin/dump-website" > /backups/sites/mysite.tar.gpg
Run Code Online (Sandbox Code Playgroud)
通过编辑sudoers将删除密码要求:
me ALL=(root) NOPASSWD: /usr/sbin/dump-website
Run Code Online (Sandbox Code Playgroud)在远程主机中,您可以运行 rsync 守护进程
用户名根
在/etc/rsyncd.conf文件中。
这将允许守护程序使用该CAP_DAC_OVERRIDE功能并读取本地文件系统而无需更改权限/所有权。
如果您只需要进行备份,最好将 rsync 设置为只读模式:
只读 = 真
| 归档时间: |
|
| 查看次数: |
79629 次 |
| 最近记录: |