我每小时通过 cron 运行此 rsync 以将我的网站从主服务器自动同步到辅助服务器。
rsync -avz --del -e "ssh -i ~/.ssh/user-key -pXXXXX -o StrictHostKeyChecking=no" /var/www/ USERNAME@IPV4:/var/www/
,其中 XXXXX 是目标服务器上的有效端口号,USERNAME 是具有给定密钥文件的有效用户名(在主服务器和所有辅助服务器上存在且相等),IPV4 是有效的 IPv4 地址。
我有另一个相同的命令,只是用/var/www/
替换了 来/etc/nginx/
同步所有 nginx 配置文件,并且该命令按预期工作。它同步所有子目录(包括它们的符号链接)。唯一的区别在于文件夹结构而不是命令。目录/etc/nginx/
包含 nginx 安装时所需的所有文件夹,而在所有服务器上/var/www/
都有一个子目录html/
(这是 nginx 安装的一部分),但我在主服务器上创建的子目录SUBDIR/
不会通过 rsync 同步到目标辅助服务器。
实际上,需要以某种方式修改此命令,以便 rsync 创建任何必要的新子目录并同步其全部内容。目前,这暂时破坏了我的网站,但代价是,对于将来我想在服务器上托管的任何其他网站,它具有更强的未来保障。
非常感谢您的帮助。
Rsync 新手
答案1
问题在于权限。尽管我的 FTP 客户端中的权限显示正确,但我没有运行附加命令来更改 /var/www 的所有权和组。