我有以下的设置定期从服务器A的rsync文件到服务器B.服务器B已经rsync守护进程具有以下配置运行:
read only = false
use chroot = false
max connections = 4
syslog facility = local5
log file = /var/adm/rsyncd.log
munge symlinks = false
secrets file = /etc/rsyncd.secrets
numeric ids = false
transfer logging = true
log format = %h %o %f %l %b
[BACKUP]
path = /path/to/archive
auth users = someuser
从服务器AI我发出以下命令:
rsync -adzPvO --delete --password-file=/path/to/pwd/file/pwd.dat /dir/to/be/backedup/ someuser@192.168.100.100::BACKUP
备份目录被完全读/写/执行给大家。 当我从服务器A上运行rsync命令,我看到:
afile.txt
989 100% 2.60kB/s 0:00:00 (xfer#78, to-check=0/79)
对于每everyfile目录我想备份。 当我开始编写tmp文件,它失败:
rsync: mkstemp "/.afile.txt.PZQvTe" (in BACKUP) failed: Permission denied (13)
后来google搜索,我仍然解决不了什么似乎是一个很简单的权限问题的时间。 建议吗? 提前致谢。
附加信息
我只注意到以下发生在过程的开头:
rsync: failed to set permissions on "/." (in BACKUP): Permission denied (13)
难道是试图设置“/”允许吗?
编辑
我登录的用户 - SomeUser的。 我的目标目录可以为所有人提供完全的读/写/执行权限,包括它的内容。 此外,目标目录是由SomeUser的和SomeUser的小组拥有。
跟进
我发现使用SSH来解决这个
Answer 1:
确保您rsync'd到远程计算机上的用户有写权限的文件夹,该文件夹本身的内容,rsync的尝试更新的文件夹本身的修改时间。
Answer 2:
即使你得到了这个工作,我最近也有类似的遭遇,并没有那么或谷歌搜索是有帮助,因为它们都涉及基本权限问题何在下面的解决方案是关闭设置,你就别想检查的有些在大多数情况下。
有一两件事,以检查许可否认我最近发现有使用rsync自己在那里的权限都是服务器,包括所有者和组,但rsync的传输完全相同的一台服务器而不是其他方式对工作的一种方式的问题。
原来的服务器与我得到了来自启用了SELinux这反过来又覆盖上的文件/文件夹POSIX权限拒绝的权限问题。 因此,即使有问题的文件夹可能是777根的运行,该命令的SELinux已启用,并会反过来覆盖这就产生了这些权限从rsync的拒绝“权限”误差。
您可以运行命令getenforce
看是SELinux的计算机上启用。
在我的情况我最终只禁用SELINUX完全,因为它并不需要和工作正常,并在启用刚刚引起的问题已经在服务器上禁用。 要禁用,开放/etc/selinux/config
,并设置SELINUX=disabled
。 要暂时禁用您可以运行命令setenforce 0
将设置SELinux的进入permissive
状态而不是enforcing
,导致其打印的,而不是强制执行的警告状态。
Answer 3:
rsync进程默认使用人/ nogroup所有模块如果在root用户运行。 所以,你要么需要确定PARAMS uid
和gid
到你想要的用户,或将它们设置为root /根。
Answer 4:
我遇到同样的问题和解决它chown
目标文件夹的用户。 当前用户没有读,写和执行的目标文件夹的文件的权限。 尝试通过将权限chmod a+rwx <folder/file name>
。
Answer 5:
我有一个类似的问题,但对我来说,这是因为存储只有SFTP,SSH没有或它的rsync守护进程。 我不能改变什么,BCS该服务器是由我的客户提供。
rsync的不能更改文件的日期和时间,其他一些UTILITES(如CSYNC)向我展示了其他错误:“无法创建临时文件时钟偏斜检测”。 如果你有机会到存储服务器 - 只需安装openssh-server或启动的rsync作为守护在这里。
在我的情况-我不能做到这一点,解决办法是:lftp的 。 的lftp的使用情况同步化是如下:
lftp -c "open -u login,password sftp://sft.domain.tld/; mirror -c --verbose=9 -e -R -L /srs/folder /rem/folder"
/ src目录/文件夹 - 是我的电脑上的文件夹,/ REM /文件夹 - 为SFTP://sft.domain.tld/rem/folder。
您可能会发现通过链接lftp.yar.ru/lftp-man.html芒
Answer 6:
这可能不是适合每一个人,因为它不保留原始文件的权限,但在我的情况下,它并不重要,它解决了这个问题对我来说。 rsync的有一个选项--chmod
:
--chmod这个选项告诉rsync的应用一个或多个以逗号分隔lqchmodrq串在传输文件的权限。 就好像它是提供的文件,这意味着此选项似乎可以对现有文件没有影响,如果没有启用--perms发送端的权限所得到的值进行处理。
这迫使权限是你想上的所有文件/目录的内容。 例如:
rsync -av --chmod=Du+rwx SRC DST
将增加读,写和执行,为用户全部转移目录。
Answer 7:
Windows系统:目标文件夹的检查权限。 取得所有权,如果你必须给权利运行rsync服务的帐户。
Answer 8:
我想象当前没有上面提到的共同错误试图写入到安装空间(例如, /media/drivename
)当未安装分隔。 这会产生这个错误也是如此。
如果它是一个加密的驱动器设置为自动安装,但没有,可能是自动解锁试图写入到它应该安装在空间之前,加密分区的问题。
Answer 9:
我有同样的错误而多克尔容器的内部同步文件和目的地是安装的卷(泊坞为MAC),我跑rsync
通过su-exec <user>
。 我可以通过运行来解决它rsync
的root
与-og
标志(保留了目标文件的所有者和组)。
我仍然不知道什么原因造成的问题,目的是权限OK(我运行chown -R <user>
的目的地之前DIR rsync
),也许在某种程度上涉及到码头工人的Mac慢的文件系统。
Answer 10:
我在CentOS的7的情况下,我通过很多文章,论坛就不可能却找出解决方案相同的问题。 问题是在SELinux。 在服务器端禁用SELinux的工作。 检查在服务器端(从正在使用rysnc拉取数据)命令来检查SELinux状态和禁用SELinux状态
$ getenforce
强制执行##这意味着SELinux的启用
$ setenforce 0
$ getenforce
宽容
现在尝试在客户端运行rsync命令,它为我工作。 祝一切顺利!
Answer 11:
就以-e ssh和詹金斯@本地注意:在下面的例子:
rsync -r -e ssh --chown=jenkins:admin --exclude .git --exclude Jenkinsfile --delete ./ jenkins@localhost:/home/admin/web/xxx/public
这帮助了我
PS今天,我意识到,当你改变(添加)詹金斯用户一些组,允许从站(代理)重新启动后,将适用。 我的解决方案(-e ssh和詹金斯@本地:)只需要在您不能重新启动代理/服务器。
Answer 12:
在运行的root访问权限的ssh chould解决这个问题
或chmod 0777 /dir/to/be/backedup/
或chown username:user /dir/to/be/backedup/
文章来源: rsync - mkstemp failed: Permission denied (13)