在php中使用rsync将远程服务器文件夹与本地服务器文件夹同步?
这段代码在php中不同步“测试”文件夹 php 但是在贝壳里在php中使用rsync将远程服务器文件夹与本地服务器文件夹同步?,php,shell,ssh,rsync,Php,Shell,Ssh,Rsync,这段代码在php中不同步“测试”文件夹 php 但是在贝壳里 他工作了。因此,我需要使用php文件同步这些“测试”文件夹。我如何才能做到这一点?首先,您需要检查是否需要成为root用户或(sudo用户)才能运行rsync。如果是,那么 exec命令只有在同一用户在php cli上运行时才有效(而不是在apache用户的浏览器上) 将哪个用户登录到shell以运行rsync。如果是root用户或任何具有sudo权限的elavated权限用户,则当php脚本从浏览器运行时,apache/www数据用
他工作了。因此,我需要使用php文件同步这些“测试”文件夹。我如何才能做到这一点?首先,您需要检查是否需要成为root用户或(sudo用户)才能运行rsync。如果是,那么
exec命令只有在同一用户在php cli上运行时才有效(而不是在apache用户的浏览器上) 将哪个用户登录到shell以运行rsync。如果是root用户或任何具有sudo权限的elavated权限用户,则当php脚本从浏览器运行时,apache/www数据用户可能无法使用此rsync命令。作为root用户,我将登录,然后首先尝试创建一个普通用户并通过它登录,然后尝试rsync如果你成功了,那么看看还有什么其他问题可能会很有趣,但是,如果您的访问/权限被拒绝,那么显然您至少不能在浏览器上运行此脚本。还有一件事,权限可能与rsync命令本身没有直接关系,而是与根用户在正常情况下拥有的/etc/test/文件夹有关。我想这也是我的问题。刚刚发现,这是问题吗?。
exec('/usr/bin/rsync -a /etc/test root@x.x.x.x:/etc/test');
rsync -a /etc/test/ root@x.x.x.x:/etc/test/