rsync Remote Shell synchronisiert inkrementell Daten
Es gibt zwei Möglichkeiten, Dateien mit rsync zu synchronisieren: eine ist die Daemon-Methode (rsync-Daemon) und die andere ist die Remote-Shell-Methode (rsync-Remote-Shell).
Daemon-Modus, diese Methode stellt über TCP eine Verbindung zum Remote-rsync-Daemon her. Sie müssen eine Konfigurationsdatei verwenden und den Daemon-Prozess aktivieren.
<code>rsync [OPTION] user@host::src dest rsync [OPTION] src user@host::dest</code>
Remote-Shell-Methode, diese Methode erfordert keine Verwendung von Konfigurationsdateien oder Daemon-Prozessen.
<code>rsync [OPTION] user@host:src dest rsync [OPTION] src user@host:dest</code>
Die Daemon-Methode ist zu mühsam, um die Konfigurationsdatei und den Daemon-Prozess einzurichten. Daher habe ich die Remote-Shell-Methode zur Synchronisierung wie folgt ausgewählt:
<code> rsync -avr --delete yanruitao@123.123.123.123:/export/test/htdocs/files/ /export/test/htdocs/files/</code>
Die Parameter avr --delete repräsentieren jeweils
<code>-a 归档(archive)模式,以递归方式传输文件,并保持文件属性 -v 输出同步的详细信息(verbose) -r 对子目录进行递归模式处理(recursive) --delete 删除源(SRC)中没有目标(DST)中有的文件</code>
Wenn alles normal ist, werden Sie beim Ausführen des obigen Synchronisierungsbefehls aufgefordert, das Kennwort des yanruitao-Benutzers auf dem Remote-Computer einzugeben (beim ersten Mal werden Sie gefragt, ob eine Beziehung hergestellt werden soll (anscheinend I Ich habe das Spezifische vergessen.) Drücken Sie einfach die Eingabetaste und führen Sie es aus. Nach Abschluss wird es gemäß den Regeln synchronisiert.
Aber es gibt ein Problem. Ich möchte jeden Tag um 14:00 Uhr eine inkrementelle Synchronisierung durchführen. Zu diesem Zeitpunkt muss ich eine Vertrauensbeziehung herstellen zwei Maschinen
Bevor wir eine Vertrauensbeziehung aufbauen, werfen wir einen Blick auf die Verschlüsselung und Authentifizierung basierend auf öffentlichen Schlüsseln und privaten Schlüsseln
Das Bild unten ist gestohlen, haha, es ist perfekt, dieses Bild zu verwenden, um den Authentifizierungsprozess zu verstehen:
<code>消息-->[私钥]-->签名-->[公钥]-->认证 私钥数字签名,公钥验证</code>
Das Bild unten ist ebenfalls gestohlen (es ist einfacher zu verstehen, wenn Sie ein Bild haben). Hier sendet Alice Informationen über die symmetrische Schlüsseltechnologie an Bob:
<code>消息-->[公钥]-->签名后的消息-->私钥-->解密后的消息 公钥加密,私钥解密</code>
Nachdem wir das obige Wissen über öffentliche Schlüssel und private Schlüssel verstanden haben, bauen wir nun eine Vertrauensbeziehung zwischen zwei Hosts auf.
, , um eine Vertrauensbeziehung mit 100 auf 101 herzustellen (dh 100 muss beim Anmelden bei 101 kein Passwort eingeben), wird diesmal der Signaturprozess mit privatem Schlüssel verwendet:<code>ssh-keygen -t rsa #执行完之后会在家目录下的.ssh文件夹下生成id_rsa、id_rsa.pub两个文件,后者是公钥。 scp .ssh/id_rsa.pub yanruitao@192.168.1.101:/home/yanruitao/ #scp同样是通过remote shell的方式传送文件,回车之后会提示输入密码,此时 #还未建立信任关系,因此需要输入密码。确认100的公钥发送给101</code>
<code>#将刚才传送的100机器的公钥写入101yanruitao及目录下的.ssh/authorized_keys文件 cat id_rsa.pub >> .ssh/authorized_keys chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys #至此就在yanruitao@192.168.1.101上对192.168.1.100建立了信任关系</code>
<code>0 */2 * * * rsync yanruitao@192.168.1.101:/export/wwwroot/hotdocs/files/ /export/wwwroot/hotdocs/files/ #设置完成,每天02:00分会执行一次增量同步</code>
Natürlich kann es bei der tatsächlichen Bedienung zu Problemen kommen, die Benutzernamen der beiden Maschinen waren unterschiedlich, eine war yanruitao und die andere war mywife (haha, nicht lachen). Yanruitao, es besteht eine Vertrauensbeziehung zum Mywife-Lebenslauf. Zu diesem Zeitpunkt müssen Sie die oben genannten Schritte erneut ausführen, um die Vertrauensbeziehung im Mywife-Home-Verzeichnis herzustellen. Ein weiteres Problem besteht darin, dass der Besitzer des Ordners /export/wwwroot/htdocs/files/ auf dem Rechner von mywife mywife sein muss:
<code>#修改文件夹所有者为mywife sudo chown mywife:users /export/wwwroot/htdocs/files/</code>
Andernfalls wird möglicherweise ein Fehler gemeldet (ich habe den spezifischen Fehler vergessen, obwohl er anscheinend keine Auswirkung auf die Synchronisierung hat, wird jedoch 23 zurückgegeben, was sich auf die folgenden Vorgänge auswirkt). auch hier.
http://www.williamlong.info/archives/837.html
http://www.cnblogs.com/ymy124/archive/2012/04/04/2432432.html
http:/ /www.zhihu.com/question/25912483
Das Urheberrecht an diesem Artikel liegt für immer beim Autor (). Nachdruck des Artikels ist ohne Zustimmung des Autors untersagt und der Autor muss auf der Artikelseite eindeutig angegeben werden, andernfalls behalten wir uns eine rechtliche Haftung vor.
Das Obige hat die inkrementelle Synchronisierung von Remote-Server-Dateien mit rsync vorgestellt, einschließlich der folgenden Aspekte. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.