我最近搬到了一台新服务器,几个月来一直运行良好的 rsync 脚本停止工作了。我不知道为什么。我有一个“开发”服务器和生产服务器。当我运行以下命令时,我希望将开发服务器上的文件推送到生产服务器。
rsync -avzP --exclude '.ssh' /var/www/ www-data@$HOST:/var/www
当我运行 bash 脚本(仅运行上面声明了主机的行)时,它会输出如下内容
www-data@dev:~/core$ ./publish.sh
sending incremental file list
rsync: [generator] failed to set times on "/var/www/.": Operation not permitted (1)
./
template/base/head.php
7,811 100% 6.78MB/s 0:00:00 (xfr#1, to-chk=35/5346)
sent 123,884 bytes received 756 bytes 83,093.33 bytes/sec
total size is 203,327,243 speedup is 1,631.32
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1338) [sender=3.2.7]
当我再次运行它时,它就像同步了一样
www-data@dev:~/core$ ./publish.sh
sending incremental file list
rsync: [generator] failed to set times on "/var/www/.": Operation not permitted (1)
./
sent 123,081 bytes received 659 bytes 82,493.33 bytes/sec
total size is 203,327,235 speedup is 1,643.18
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1338) [sender=3.2.7]
这些文件都在网络服务器上,需要由用户/组 www-data 拥有。但是我无法让 /var/www 文件夹归 www-data 所有...所以这就是我收到错误的原因。/var/www 由 root:root 所有。不确定这是否与此有关,但我不知道如何解决它。这个问题很容易重现。一个例子是 /var/www/template/base/head.php。下面显示了所有文件的权限。文件之间的 md5 不同。服务器之间的时间 + 时区完全相同。感谢您的任何想法。我没有。
本地计算机
www-data@dev:~/template/base$ ls -l
total 40
drwxr-xr-x 2 www-data www-data 4096 May 14 2022 block
drwxr-xr-x 2 www-data www-data 4096 Dec 29 2020 component
-rw-r--r-- 1 www-data www-data 1363 Dec 7 2020 favicon.php
-rw-r--r-- 1 www-data www-data 299 Nov 18 2021 foot_js.php
-rw-r--r-- 1 www-data www-data 1174 May 14 2022 foot.php
drwxr-xr-x 3 www-data www-data 4096 Aug 25 2020 frame
-rw-r--r-- 1 www-data www-data 716 May 16 2022 head_css.php
-rw-r--r-- 1 www-data www-data 7803 Oct 10 14:47 head.php
-rw-r--r-- 1 www-data www-data 670 Dec 7 2020 setting.php
www-data@dev:~/template/base$
远程计算机
root@xxxx:/var# ls -l
total 40
drwxr-xr-x 2 root root 4096 Oct 3 00:00 backups
drwxr-xr-x 10 root root 4096 Aug 20 19:59 cache
drwxr-xr-x 25 root root 4096 Aug 28 15:17 lib
drwxrwsr-x 2 root staff 4096 Jul 14 16:00 local
lrwxrwxrwx 1 root root 9 Aug 20 19:54 lock -> /run/lock
drwxr-xr-x 9 root root 4096 Oct 8 00:00 log
drwxrwsr-x 2 root mail 4096 Aug 20 19:54 mail
drwxr-xr-x 2 root root 4096 Aug 20 19:54 opt
lrwxrwxrwx 1 root root 4 Aug 20 19:54 run -> /run
drwxr-xr-x 3 root root 4096 Aug 20 19:54 spool
drwxrwxrwt 4 root root 4096 Oct 10 14:39 tmp
drwxr-xr-x 8 root root 4096 Sep 9 12:38 www
root@xxxx:/var#
drwxr-xr-x 2 www-data www-data 4096 May 14 2022 block
drwxr-xr-x 2 www-data www-data 4096 Dec 29 2020 component
-rw-r--r-- 1 www-data www-data 1363 Dec 7 2020 favicon.php
-rw-r--r-- 1 www-data www-data 299 Nov 18 2021 foot_js.php
-rw-r--r-- 1 www-data www-data 1174 May 14 2022 foot.php
drwxr-xr-x 3 www-data www-data 4096 Aug 25 2020 frame
-rw-r--r-- 1 www-data www-data 716 May 16 2022 head_css.php
-rw-r--r-- 1 www-data www-data 7803 Oct 6 06:50 head.php
-rw-r--r-- 1 www-data www-data 670 Dec 7 2020 setting.php
root@xxxx:/var/www/template/base#