我正在编写一个shell脚本,它具有以下命令,可以通过跳过某些文件将代码文件从远程服务器复制到本地服务器,但它会出现如下错误:
命令:
rsync -avz --delete --exclude=**/cache --exclude=**/administrator/cache/ --exclude=**/tmp --exclude=**/configuration.php -e ssh $REMOTE_USER@$REMOTE_SERVER:$REMOTE_PATH $LOCAL_PATH
错误:
1)rsync:mkstemp" /var/www/test.domainname/public/.sript.php.4FRyfv"失败:权限被拒绝(13)
2)rsync:mkstemp" /var/www/test.domainname/public/.access.txt.PECuqA"失败:权限被拒绝(13)
3)rsync:未能在" /var/www/test.domainname/public/administrator/components/com_bconnect"上设置时间:不允许操作(1) 管理员/组件/ com_bconnect /
4)rsync:mkstemp" /var/www/test.domainname/public/administrator/components/com_bconnect/.config.xml.8LWLWF"失败:权限被拒绝(13)
请你帮我解决4个以上的错误。
答案 0 :(得分:1)
我刚刚以不同的形式遇到此错误,即尝试在远程服务器上的/ var / www / html中rsync 到一个嵌套目录,并且没有写入权限/ var / www / html目录本身。在我的情况下,我的错误原因是由于rsync语法错误,但在您的情况下,您可能没有权限写入/ var / www。这是rsync尝试创建其临时文件的地方。
据我了解,您有两种选择:
使用 --temp-DIR 参数
使用 - 到位 参数。
这在rsync手册页中进行了解释,并且也是asked before。
答案 1 :(得分:-1)
这基本上是一个远程/本地目录的权限问题,从该目录邀请数据。我再次以稍微不同的形式解决了该错误!我正在通过此将文件从本地ubuntu计算机发送到远程ubuntu计算机。
rsync -arvz -e 'ssh -p 64060' ./SE-D-20-00279R2.pdf yogender@<IP>:</path/to/destination>
我有相同的权限错误:
rsync: mkstemp "<path/of/the/file2/you/try/to/rsync>" failed: Permission denied (13)
....
....
....
rsync: mkstemp "<path/of/the/file2/you/try/to/rsync>" failed: Permission denied (13)
摆弄后,我找到了解决方案:
问题:接收者不知道发送者的许可 解决方案:需要使用sudo在接收方(大型计算机)上创建文件夹。
sudo mkdir </path/to/directory/you/are/sending/file/to/remote/machine>
授予该文件夹的权限,该文件夹会将数据发送到该目录:
sudo chown yogender </path/to/directory/you/are/sending/file/to/remote/machine>
yogender
是管理员或用户。您可以通过在远程计算机上执行“ whoami”(从本地到远程发送数据时)来获得它
然后简单地:
rsync -zaP -e 'ssh -p 64060' ./SE-D-20-00279R2.pdf yogender@147.32.99.72:</path/to/directory/you/are/sending/file/to/remote/machine>>