为什么 rsync 在一台计算机上可以完美运行,而在 ssh 对两台计算机都运行时不能在另一台计算机上运行

Why would rsync work perfectly to one computer but not to another when ssh works to both

下面的bash脚本可以在computer1上运行同步到computer2,但是如果目的地是computer3,它不会传输任何文件。

/usr/bin/rsync -avt --delete --exclude "*.DS_Store" --exclude ".fseventsd" --exclude ".Spotlight-V100" --exclude ".TemporaryItems" --exclude ".Trashes" --log-file=sql.log srcDirectory computer2:backups

目录备份存在于 computer2 和 computer3 的用户的主目录中,该用户正在 computer1 上执行命令运行。从 computer1 ssh 到 computer2 和 computer3 不需要密码。这些目录是用户和组可写的。 srcDirectory 包含每日、每周、每月和每年 4 个目录。其中每一个里面都有几个 mysql 转储文件。上面的命令正确地创建了包含四个目录和所有 mysql 转储文件的 backups/srcDirectory。但是,如果将 computer2 替换为 computer3,则不会出现明显的错误,也不会实际传输任何数据。计算机 1 和计算机 3 上的 OS 版本相同 (OS 10.13.6),而计算机 2 上 OS 的版本是 12.2.1。

是什么导致了这个问题?我试过在 rsync 中使用 v、vv 甚至 vvv,但是当它没有传输到 computer3 时仍然没有提示错误。

我找到问题了!较旧的 Mac OS X 版本也有我使用的服务器版本。当我把computer2克隆成computer3的时候,漏掉了一个在Settings/Network中设置以太网IP地址的地方。我将两台计算机都设置为相同的静态 IP 地址 10.0.1.5。当通过 ip 号码查找时,它们是不同的,因为我将副本从 10.0.1.7 更改为 10.0.1.5,但是在原始文件中,我将对另一台计算机的引用保留为 10.0.1.5。因此,当我使用本地网络名称 Xanadu.local 时,它只是指向它自己。从另一台计算机(computer1),它分别为其他计算机提供了正确的 10.0.1.5 和 10.0.1.7。在 computer2 上使它们正确解决问题![​​=10=]

有时,必须通过它来向其他人解释您所看到的内容有助于确定问题,因为您必须清楚地解释它。感谢论坛。