{"id":282,"date":"2021-07-28T14:03:29","date_gmt":"2021-07-28T06:03:29","guid":{"rendered":"http:\/\/egonlin.com\/?p=282"},"modified":"2024-05-21T13:21:52","modified_gmt":"2024-05-21T05:21:52","slug":"rsync","status":"publish","type":"post","link":"https:\/\/egonlin.com\/?p=282","title":{"rendered":"rsync\u547d\u4ee4"},"content":{"rendered":"<h1>\u4e00\u3001rsync\u4ecb\u7ecd<\/h1>\n<h2>1.1 \u5b89\u88c5\u4e0e\u4ecb\u7ecd<\/h2>\n<pre><code>[root@web02 ~]# rpm -qa |grep rsync\r\nrsync-3.1.2-12.el7_9.x86_64  # \u5728centos9.3\u4e2d\u662f3.2.3\u7248<\/code><\/pre>\n<p>\u5b89\u88c5\u5b8c\u6bd5\u4e4b\u540e\uff0c\u4f60\u4fbf\u4f1a\u5f97\u5230\u4e00\u4e2arsync\u547d\u4ee4\uff0c\u8fd9\u4e2a\u547d\u4ee4\u975e\u5e38\u5f3a\u5927<\/p>\n<pre><code>1\u3001\u4f60\u65e2\u53ef\u4ee5\u628a\u5b83\u5f53\u4e00\u4e2a\u5ba2\u6237\u7aef\u547d\u4ee4\u7528\r\n2\u3001\u4e5f\u53ef\u4ee5\u7528\u5b83\u6765\u542f\u52a8\u4e00\u4e2a\u5b88\u62a4\u8fdb\u7a0b\u6765\u5145\u5f53\u670d\u52a1\u7aef\u7528\r\n    rsync --daemon \u4e3a\u5ba2\u6237\u7aefrsync\u547d\u4ee4\u63d0\u4f9b\u57fa\u4e8ersync\u534f\u8bae\u4f20\u8f93\u7684\u7684\u5957\u63a5\u5b57\u670d\u52a1<\/code><\/pre>\n<h2>1.2 rsync\u4f5c\u4e3a\u5ba2\u6237\u7aef\u547d\u4ee4\u4ecb\u7ecd<\/h2>\n<p>\u843d\u5230\u5177\u4f53\u7684\u7528\u4e0a\u9762\uff0c\u90a3\u5c31\u662f\u628arsync\u5f53\u5ba2\u6237\u7aef\u547d\u4ee4\u6765\u7528\uff0c\u5b83\u672c\u8d28\u5c31\u662f\u4e00\u4e2a\u7528\u6765\u62f7\u8d1d\u6587\u672c\u7684\u5de5\u5177\uff0c<br \/>\n\u4f60\u65e2\u53ef\u4ee5\u5728\u672c\u5730\u4f7f\u7528\u5b83\u6765\u62f7\u8d1d\u6587\u4ef6\u5c31\u50cfcp\u547d\u4ee4\u4e00\u6837\uff0c\u4e5f\u53ef\u4ee5\u7528\u5b83\u6765\u8fdb\u884c\u8fdc\u7a0b\u4f20\u8f93\u5c31\u50cfscp\u90a3\u6837<\/p>\n<pre><code>1\u3001rsync\u5728\u672c\u5730\u7528\u7684\u65f6\u5019\u4f7f\u7528\u5f62\u5f0f\u4e0ecp\u4e00\u6837\r\n2\u3001\u7528\u4e8e\u8fdc\u7a0b\u4f20\u8f93\u7684\u65f6\u5019\u4f7f\u7528\u5f62\u5f0f\u4e0escp\u4e00\u6837<\/code><\/pre>\n<p>\u4f46\u662f\u6bd4\u8d77cp\u6216scp\uff0crsync\u62e5\u6709\u66f4\u5f3a\u5927\u7684\u529f\u80fd<\/p>\n<ul>\n<li>1\u3001rsync\u540c\u65f6\u6db5\u76d6\u4e86cp\u4e0escp\uff0c\u4e00\u6761\u547d\u4ee4\u65e2\u652f\u6301\u672c\u5730\u73a9\uff0c\u4e5f\u652f\u6301\u8fdc\u7a0b\u73a9<\/li>\n<li>2\u3001\u672c\u5730\u62f7\u8d1d\u6216\u8fdc\u7a0b\u4f20\u8f93\u65f6\uff0ccp\u6216scp\u90fd\u662f\u5168\u91cf\u62f7\u8d1d\uff0c\u800crsync\u5219\u662f\u589e\u91cf\u62f7\u8d1d\uff0c\u6570\u636e\u91cf\u4f1a\u5f88\u5c0f\u56e0\u6b64\u901f\u5ea6\u4f1a\u975e\u5e38\u7684\u5feb\n<pre><code>rsync\u53ef\u4ee5\u68c0\u6d4b\u6e90\u6587\u4ef6\u4e0e\u76ee\u6807\u6587\u4ef6\u7684\u5dee\u5f02\uff0c\u5e76\u53ea\u590d\u5236\u4fee\u6539\u90e8\u5206\uff0c\r\n\u8fd9\u51cf\u5c11\u4e86\u6570\u636e\u4f20\u8f93\u91cf\u548c\u7f51\u7edc\u6d88\u8017\uff0c\u63d0\u9ad8\u4e86\u6587\u4ef6\u540c\u6b65\u7684\u6548\u7387\u3002<\/code><\/pre>\n<\/li>\n<li>3\u3001\u8fdc\u7a0b\u4f20\u8f93\u65f6\uff0crsync\u652f\u6301scp\u6240\u4e0d\u5177\u5907\u7684\u65ad\u70b9\u7eed\u4f20\u529f\u80fd\uff0c\u4e00\u65e6\u4e2d\u9014\u65ad\u6389\u91cd\u65b0\u6267\u884c\u547d\u4ee4\u4e0d\u9700\u8981\u590d\u5236\u6574\u4e2a\u6587\u4ef6<\/li>\n<li>4\u3001\u7075\u6d3b\u6027\u548c\u53ef\u914d\u7f6e\u578b\u5f3a\n<pre><code>rsync\u62e5\u6709\u5927\u91cf\u7684\u547d\u4ee4\u884c\u9009\u9879\uff0c\u53ef\u4ee5\u5bf9\u4f20\u8f93\u8fc7\u7a0b\u8fdb\u884c\u7cbe\u7ec6\u63a7\u5236\uff0c\r\n\u6bd4\u5982\u53ef\u4ee5\u8bbe\u5b9a\u5305\u542b\u548c\u6392\u9664\u89c4\u5219\u6765\u63a7\u5236\u54ea\u4e9b\u6587\u4ef6\u9700\u8981\u88ab\u540c\u6b65\uff0c\r\n\u4e5f\u53ef\u4ee5\u5c3d\u53ef\u80fd\u5730\u4fdd\u7559\u7b26\u53f7\u94fe\u63a5\u3001\u786c\u94fe\u63a5\u3001\u6743\u9650\u3001\u7528\u6237\u53ca\u7ec4\u4fe1\u606f\u7b49\u6587\u4ef6\u5c5e\u6027\u3002<\/code><\/pre>\n<\/li>\n<\/ul>\n<p>rsync\u4e5f\u6709\u7f3a\u70b9<\/p>\n<ul>\n<li>1\u3001\u547d\u4ee4\u884c\u9009\u578b\u590d\u6742<\/li>\n<li>2\u3001\u6ca1\u6709\u68c0\u6d4b\u6587\u4ef6\u53d8\u5316\u7684\u80fd\u529b\uff0c\u65e0\u6cd5\u505a\u5230\u6587\u4ef6\u4e00\u4fee\u6539\u5c31\u81ea\u52a8\u611f\u77e5\u5230\uff0c\u7136\u540e\u89e6\u53d1rsync\u8fdb\u884c\u8fdc\u7a0b\u5907\u4efd\uff0c\u8fd9\u4e5f\u662f\u5176\u4e0d\u5b8c\u7f8e\u7684\u5730\u65b9\uff0c\u5982\u679c\u4e0d\u914d\u5408\u5176\u4ed6\u68c0\u6d4b\u6587\u4ef6\u6539\u52a8\u7684\u5de5\u5177\u4e00\u9f50\u5de5\u4f5c\uff0c\u90a3\u4f60\u53ea\u80fd\u6bcf\u6b21\u624b\u52a8\u6216\u8005\u914d\u7f6e\u8ba1\u5212\u4efb\u52a1\u5b9a\u65f6\u6267\u884c\uff0c\u65e0\u6cd5\u505a\u5230\u5b9e\u65f6\u540c\u6b65\u672c\u5730\u6570\u636e\u5230\u8fdc\u7aef<\/li>\n<li>3\u3001\u53ef\u80fd\u8fc7\u5ea6\u6d88\u8017\u670d\u52a1\u5668\u8d44\u6e90\uff1a\u5982\u679c\u540c\u6b65\u7684\u6587\u4ef6\u6570\u91cf\u8fc7\u591a\uff0c\u5c24\u5176\u662f\u9700\u8981\u5bf9\u6bcf\u4e2a\u6587\u4ef6\u8fdb\u884c\u589e\u91cf\u66f4\u65b0\u68c0\u67e5\u65f6\uff0crsync\u53ef\u80fd\u4f1a\u6d88\u8017\u5927\u91cf\u7684\u670d\u52a1\u5668cpu\u8d44\u6e90\u3002<\/li>\n<\/ul>\n<p>\u603b\u7ed3<br \/>\nrsync\u662f\u4e00\u4e2a\u975e\u5e38\u5f3a\u5927\u7684\u6587\u4ef6\u540c\u6b65\u5de5\u5177\uff0c\u5c24\u5176\u9002\u5408\u8fdb\u884c\u5468\u671f\u6027\u7684\u5907\u4efd\u6216\u955c\u50cf\u3002\u4f46\u5bf9\u4e8e\u9700\u8981\u5b9e\u65f6\u540c\u6b65\u7684\u573a\u666f\uff0c\u6216\u8005\u5bf9\u670d\u52a1\u5668\u8d44\u6e90\u654f\u611f\u7684\u573a\u666f\uff0c\u8fd8\u9700\u8981\u642d\u914d\u5176\u4ed6\u89e3\u51b3\u65b9\u6848\u4e00\u8d77\u7528\u3002<\/p>\n<h2>1.2 rsync &#8211;daemon\u4f5c\u4e3a\u670d\u52a1\u7aef\u4ecb\u7ecd<\/h2>\n<p>rsync\u5ba2\u6237\u7aef\u547d\u4ee4\u5728\u8fdb\u884c\u8fdc\u7a0b\u4f20\u8f93\u65f6\uff0c\u652f\u6301\u4e24\u79cd\u534f\u8bae\uff0c\u5206\u522b\u5bf9\u5e94\u4e24\u79cd\u670d\u52a1\u7aef<\/p>\n<ul>\n<li>1\u3001\u9ed8\u8ba4\u662fssh\u534f\u8bae\uff0c\u5bf9\u5e94\u7684\u670d\u52a1\u7aef\u670d\u52a1\u662fsshd\uff0c\u4e5f\u5c31\u662f\u8bf4\u5176\u5b9e\u4f60\u5e76\u4e0d\u662f\u4e00\u5b9a\u8981rsync &#8211;daemon\u542f\u52a8\u670d\u52a1\u7aef<\/li>\n<li>2\u3001\u4e5f\u53ef\u4ee5\u7528rsync\u534f\u8bae\uff0c\u5bf9\u5e94\u7684\u670d\u52a1\u7aef\u670d\u52a1\u662frsync &#8211;daemon\n<pre><code>\u8981\u6c42\u4f20\u8f93\u7684\u53cc\u65b9\u90fd\u5fc5\u987b\u5b89\u88c5 rsync\u5305\r\nyum -y install rsync<\/code><\/pre>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2021\/07\/image-1711336963783.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2021\/07\/image-1711336963783.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"file\" \/><\/div><\/li>\n<\/ul>\n<p>\u670d\u52a1\u7aef\u4f60\u4e5f\u53ef\u4ee5\u5f00\u542fsshd\uff0c\u4e5f\u53ef\u4ee5\u914d\u7f6e\u5f00\u542frsync\u81ea\u5df1\u7684\u5b88\u62a4\u8fdb\u7a0b<br \/>\n\u5728\u5ba2\u6237\u7aef\uff0c\u4f60\u9700\u8981\u4e3arsync\u6307\u5b9a\u4f7f\u7528\u7684\u534f\u8bae<br \/>\n1\u3001\u6307\u5b9a\u4e3assh\u534f\u8bae(\u9ed8\u8ba4\u5c31\u662f)\uff0c\u5219\u4f1a\u4e0e\u670d\u52a1\u7aef\u7684sshd\u5efa\u7acb\u4f1a\u8bdd<\/p>\n<pre><code>rsync -avz \/bak root@192.168.12.17:\/data\/  # \u9ed8\u8ba4ssh\u534f\u8bae\uff0c\u4f7f\u7528\u7cfb\u7edf\u8d26\u53f7\u8ba4\u8bc1<\/code><\/pre>\n<p>2\u3001\u6307\u5b9a\u4e3arsync\u534f\u8bae\uff0c\u5219\u4f1a\u4e0e\u670d\u52a1\u7aef\u7684rsync &#8211;daemon\u5b88\u62a4\u8fdb\u7a0b\u5efa\u7acb\u4f1a\u8bdd<\/p>\n<pre><code>rsync -av \/bak rsync:\/\/192.168.12.17\/\u670d\u52a1\u7aef\u914d\u7f6e\u7684\u6a21\u5757\u540d\/\u5b50\u8def\u5f841\/\u5b50\u8def\u5f842\/<\/code><\/pre>\n<h1>\u4e8c\u3001\u50cfcp\u547d\u4ee4\u4e00\u6837\u53bb\u7528rsync<\/h1>\n<p>rsync\u7684\u672c\u5730\u6a21\u5f0f<\/p>\n<pre><code class=\"language-bash\">1\u3001\u8bed\u6cd5\uff1a\r\n\u547d\u4ee4   \u9009\u9879        \u6e90\u6570\u636e       \u76ee\u6807\u5730\u5740\r\nrsync [OPTION]... SRC [SRC]... DEST\r\n\r\n2\u3001\u5e38\u7528\u9009\u9879\uff1arsync\u652f\u6301\u4e00\u767e\u591a\u4e2a\u9009\u9879\uff0c\u6240\u4ee5\u6b64\u5904\u53ea\u4ecb\u7ecd\u51e0\u4e2a\u5e38\u7528\u9009\u9879\r\n-a --archive  \uff1a\u5f52\u6863\u6a21\u5f0f\uff0c\u8868\u793a\u9012\u5f52\u4f20\u8f93\u5e76\u4fdd\u6301\u6587\u4ef6\u5c5e\u6027\u3002\u7b49\u540c\u4e8e\"-rtopgDl\"\u3002\r\n-v            \uff1a\u663e\u793arsync\u8fc7\u7a0b\u4e2d\u8be6\u7ec6\u4fe1\u606f\u3002\u53ef\u4ee5\u4f7f\u7528\"-vvvv\"\u83b7\u53d6\u66f4\u8be6\u7ec6\u4fe1\u606f\u3002\r\n-z            \uff1a\u4f20\u8f93\u65f6\u8fdb\u884c\u538b\u7f29\u63d0\u9ad8\u6548\u7387\u3002\r\n-R            \uff1a\u4f7f\u7528\u76f8\u5bf9\u8def\u5f84\r\n\r\n3\u3001\u7c7b\u4f3c\u4e8ecp\u547d\u4ee4\uff0c\u53c8\u4e0d\u540c\u4e8ecp\r\n\uff081\uff09\u3001cp\u547d\u4ee4\u53ea\u662f\u672c\u5730\u590d\u5236\uff0c\u6bcf\u6b21cp\u90fd\u4f1a\u7528\u6e90\u6587\u4ef6\u5185\u5bb9\u8986\u76d6\u65b0\u6587\u4ef6,\u6240\u4ee5cp\u547d\u4ee4\u4f1a\u4fee\u6539\u6587\u4ef6\u65f6\u95f4\u5c5e\u6027\uff0c\r\n\r\n\uff082\uff09\u3001rsync\u53ef\u672c\u5730\u53ef\u8fdc\u7a0b\uff0c\u9996\u6b21rsync\u4e0ecp\u4e00\u6837\uff0c\u540e\u7eedrsync\u4f1a\u5bf9\u6bd4\u4e24\u4e2a\u6587\u4ef6\u7684\u4e0d\u540c\uff0c\u53ea\u4f20\u8f93\u6587\u4ef6\u66f4\u65b0\u7684\u90e8\u5206,\u5982\u679c\u672a\u66f4\u65b0\uff0c\u5219rsync\u4e0d\u4f1a\u4fee\u6539\u6587\u4ef6\u4efb\u4f55\u5c5e\u6027\r\n\r\n4\u3001\u6ce8\u610f\uff1a\u6e90\u8def\u5f84\u5982\u679c\u662f\u4e00\u4e2a\u76ee\u5f55\u7684\u8bdd\uff0c\u5e26\u4e0a\u5c3e\u968f\u659c\u7ebf\u548c\u4e0d\u5e26\u5c3e\u968f\u659c\u7ebf\u662f\u4e0d\u4e00\u6837\u7684\uff0c\u4e0d\u5e26\u5c3e\u968f\u659c\u7ebf\u8868\u793a\u7684\u662f\u6574\u4e2a\u76ee\u5f55\u5305\u62ec\u76ee\u5f55\u672c\u8eab\uff0c\u5e26\u4e0a\u5c3e\u968f\u659c\u7ebf\u8868\u793a\u7684\u662f\u76ee\u5f55\u4e2d\u7684\u6587\u4ef6\uff0c\u4e0d\u5305\u62ec\u76ee\u5f55\u672c\u8eab\uff0c\u8fd9\u4e00\u70b9\u672c\u5730\u6a21\u5f0f\u4e0e\u8fdc\u7a0b\u6a21\u5f0f\u5747\u9002\u7528<\/code><\/pre>\n<p>\u793a\u4f8b1: \u62f7\u8d1d\u6587\u4ef6<\/p>\n<pre><code class=\"language-bash\">[root@local ~]# rsync \/etc\/passwd \/test<\/code><\/pre>\n<p>\u793a\u4f8b2\uff1a\u62f7\u8d1d\u6587\u4ef6\u5939\uff0c-r\uff0c\u9a8c\u8bc1\u6e90\u8def\u5f84\u5e26\/\u540e\u7f00\u4e0e\u4e0d\u5e26\u540e\u7f00\u7684\u4e24\u79cd\u60c5\u51b5<\/p>\n<pre><code class=\"language-bash\">[root@local ~]# rsync -r \/etc\/cron.d \/test  # \u628a\u6587\u4ef6\u5939cron.d\u62f7\u8d1d\u5230\/test\u4e0b\r\n[root@local ~]# rsync -r \/etc\/cron.d\/ \/test  # \u628a\u6587\u4ef6\u5939cron.d\u4e0b\u7684\u5185\u5bb9\u62f7\u8d1d\u5230\/test\u4e0b<\/code><\/pre>\n<p>\u5b9e\u4f8b3\uff1a-r\u62f7\u8d1d\u6587\u4ef6\u5939\uff0c-R\u4f1a\u622a\u53d6\u4f60\u6307\u5b9a\u76ee\u5f55\u7684\u76f8\u5bf9\u76ee\u5f55\u8fdb\u884c\u62f7\u8d1d<\/p>\n<pre><code class=\"language-bash\">[root@local ~]# mkdir -p \/src\/aaa\/bbb\/ccc\r\n[root@local ~]# mkdir \/dst\r\n[root@local ~]# \r\n[root@local ~]# rsync -r \/src\/aaa\/bbb\/ccc \/dst\/\r\n[root@local ~]# ls \/dst\/\r\nccc\r\n[root@local ~]# \r\n[root@local ~]# rm -rf \/dst\/*\r\n[root@local ~]# rsync -r -R \/src\/aaa\/bbb\/ccc \/dst\/  # \u9ed8\u8ba4\u5c31\u4ee5\/\u4e3a\u76f8\u5bf9\u8def\u5f84\u8d77\u59cb\uff0c\u62f7\u8d1d\u5176\u540e\u76ee\u5f55\r\n[root@local ~]# ls \/dst\/\r\nsrc\r\n[root@local ~]# rm -rf \/dst\/*\r\n[root@local ~]# rsync -r -R \/src\/.\/aaa\/bbb\/ccc \/dst\/ # \u4ee5\u70b9\u5de6\u4fa7\u4e3a\u76f8\u5bf9\u8def\u5f84\u8d77\u59cb\uff0c\u62f7\u8d1d\u5176\u540e\u76ee\u5f55\r\n[root@local ~]# ls \/dst\/\r\naaa\r\n[root@local ~]# rm -rf \/dst\/*\r\n[root@local ~]# rsync -r -R \/src\/aaa\/.\/bbb\/ccc \/dst\/ # \u4ee5\u70b9\u5de6\u4fa7\u4e3a\u76f8\u5bf9\u8def\u5f84\u8d77\u59cb\uff0c\u62f7\u8d1d\u5176\u540e\u76ee\u5f55\r\n[root@local ~]# ls \/dst\/\r\nbbb\r\n[root@local ~]# <\/code><\/pre>\n<p>\u5b9e\u4f8b3\uff1a\u5982\u679c\u6e90\u6587\u4ef6\u4e0e\u76ee\u6807\u6587\u4ef6\u547d\u51b2\u7a81\uff0c\u589e\u52a0&#8211;backup\u9009\u9879\u53ef\u4ee5\u786e\u4fdd\u4e0d\u4f1a\u76f4\u63a5\u8986\u76d6\u6389\uff0c\u76ee\u6807\u4f4d\u7f6e\u4e0b\u7684\u540c\u540d\u6587\u4ef6\u4f1a\u88ab\u91cd\u547d\u540d\u9ed8\u8ba4~\u53f7\u7ed3\u5c3e<\/p>\n<pre><code class=\"language-bash\">[root@remote ~]# mkdir \/egon111\r\n[root@remote ~]# mkdir \/egon222\r\n[root@remote ~]# \r\n[root@remote ~]# echo 111 &gt; \/egon111\/1.txt\r\n[root@remote ~]# echo 222 &gt; \/egon111\/2.txt\r\n[root@remote ~]# echo 333 &gt; \/egon111\/3.txt\r\n[root@remote ~]# \r\n[root@remote ~]# echo 666 &gt; \/egon222\/1.txt\r\n[root@remote ~]# echo 888 &gt; \/egon222\/2.txt\r\n[root@remote ~]# \r\n[root@remote ~]# rsync -r --backup \/egon111\/ \/egon222\/\r\n[root@remote ~]# ll \/egon222\/\r\n\u603b\u7528\u91cf 20\r\n-rw-r--r--. 1 root root 4 4\u6708  16 13:12 1.txt\r\n-rw-r--r--. 1 root root 4 4\u6708  16 13:11 1.txt~\r\n-rw-r--r--. 1 root root 4 4\u6708  16 13:12 2.txt\r\n-rw-r--r--. 1 root root 4 4\u6708  16 13:11 2.txt~\r\n-rw-r--r--. 1 root root 4 4\u6708  16 13:12 3.txt\r\n[root@remote ~]# \r\n\r\n# \u53ef\u4ee5\u4f7f\u7528\"--suffix\"\u6307\u5b9a\u5907\u4efd\u540e\u7f00,\u4f8b\u5982\r\n[root@remote ~]# rsync -r --backup --suffix=\".bak\" \/egon111\/ \/egon222\/\r\n\r\n# \u4e5f\u53ef\u4ee5\u5e72\u8106\u4e0d\u6307\u5b9a\u4efb\u4f55\u540e\u7f00\uff0c\u6211\u4eec\u5c06\u91cd\u540d\u7684\u6587\u4ef6\u5355\u72ec\u653e\u7eb5\u5230\u67d0\u4e00\u4e2a\u76ee\u5f55\u4e0b\uff0c\u7528\u5230--backup-dir\u9009\u9879\r\n[root@remote ~]# rm -rf \/egon222\/*  # egon222\u76ee\u5f55\u4e0b\u7684\u6587\u4ef6\u90fd\u8fd8\u539f\u5230\u521d\u59cb\u72b6\u6001\r\n[root@remote ~]# echo 666 &gt; \/egon222\/1.txt\r\n[root@remote ~]# echo 888 &gt; \/egon222\/2.txt\r\n\r\n[root@remote ~]# mkdir \/egon222\/old_file_bak\r\n[root@remote ~]# rsync -r --backup --backup-dir=\/egon222\/old_file_bak \/egon111\/ \/egon222\/\r\n[root@remote ~]# tree \/egon222\/\r\n\/egon222\/\r\n\u251c\u2500\u2500 1.txt\r\n\u251c\u2500\u2500 2.txt\r\n\u251c\u2500\u2500 3.txt\r\n\u2514\u2500\u2500 old_file_bak\r\n    \u251c\u2500\u2500 1.txt\r\n    \u2514\u2500\u2500 2.txt\r\n\r\n[root@remote \/egon222]# ls\r\n1.txt  2.txt  3.txt  old_file_bak\r\n[root@remote \/egon222]# cat 1.txt \r\n111\r\n[root@remote \/egon222]# cat 2.txt \r\n222\r\n[root@remote \/egon222]# cat 3.txt \r\n333\r\n[root@remote \/egon222]# cat old_file_bak\/1.txt \r\n666\r\n[root@remote \/egon222]# cat old_file_bak\/2.txt \r\n888<\/code><\/pre>\n<p>\u793a\u4f8b4:<\/p>\n<pre><code>=======&gt; \u51c6\u5907\u6587\u4ef6\r\n[root@www ~]# echo 666 &gt; egon.txt\r\n[root@www ~]# stat egon.txt \r\n......\r\n\u6700\u8fd1\u6539\u52a8\uff1a2021-04-08 20:00:10...\r\n\r\n=======&gt; cp\u6bcf\u6b21\u62f7\u8d1d\u90fd\u662f\u7528\u65b0\u7684\u8986\u76d6\u65e7\u7684\uff0c\u5373\u6bcf\u6b21\u90fd\u662f\u5168\u91cf\r\n[root@www ~]# # \u9996\u6b21\u62f7\u8d1d-&gt;\u5168\u91cf\r\n[root@www ~]# cp -a egon.txt egon111.txt  \r\n[root@www ~]# stat egon111.txt \r\n......\r\n\u6700\u8fd1\u6539\u52a8\uff1a2021-04-08 20:00:20... ---&gt; \u6539\u53d8\r\n[root@www ~]#\r\n[root@www ~]#\r\n[root@www ~]#\r\n[root@www ~]# # \u7b2c\u4e8c\u6b21\u62f7\u8d1d-&gt;\u4ecd\u662f\u5168\u91cf\r\n[root@www ~]# \\cp -a egon.txt egon111.txt  # \u52a0\\\u5f00\u5934\u53d6\u6d88\u9ed8\u8ba4\u63d0\u793a \r\n[root@www ~]# stat egon111.txt \r\n......\r\n\u6700\u8fd1\u6539\u52a8\uff1a2021-04-08 20:00:30... ---&gt; \u6539\u53d8\r\n\r\n=======&gt; rsync\u9996\u6b21\u62f7\u8d1d\u4e3a\u5168\u91cf\uff0c\u540e\u7eed\u62f7\u8d1d\u5982\u679c\u53c2\u7167\u7684\u6e90\u5185\u5bb9\u4e0d\u53d8\uff0c\u5219\u4e0d\u8986\u76d6\u76ee\u6807\u6587\u4ef6\r\n[root@www ~]# # \u9996\u6b21\u62f7\u8d1d-&gt;\u5168\u91cf\r\n[root@www ~]# rsync -az egon.txt egon222.txt \r\n[root@www ~]# stat egon222.txt \r\n......\r\n\u6700\u8fd1\u6539\u52a8\uff1a2021-04-08 20:00:40... ---&gt; \u6539\u53d8\r\n[root@www ~]#\r\n[root@www ~]#\r\n[root@www ~]#\r\n[root@www ~]# # \u7b2c\u4e8c\u6b21\u62f7\u8d1d-&gt;\u68c0\u6d4b\u5230\u6e90\u6587\u4ef6\u6ca1\u6709\u53d1\u751f\u53d8\u52a8\uff0c\u5219\u4e0d\u4f1a\u8986\u76d6\u76ee\u6807\u6587\u4ef6\r\n[root@www ~]# rsync -az egon.txt egon222.txt  \r\n[root@www ~]# stat egon222.txt \r\n......\r\n\u6700\u8fd1\u6539\u52a8\uff1a2021-04-08 20:00:40... ---&gt; \u4e0d\u53d8\r\n[root@www ~]#\r\n[root@www ~]#\r\n[root@www ~]#\r\n[root@www ~]# # \u7b2c\u4e09\u6b21\u62f7\u8d1d-&gt;\u68c0\u6d4b\u5230\u6e90\u6587\u4ef6\u6ca1\u6709\u53d1\u751f\u53d8\u52a8\uff0c\u5219\u4e0d\u4f1a\u8986\u76d6\u76ee\u6807\u6587\u4ef6\r\n[root@www ~]# rsync -az egon.txt egon222.txt  \r\n[root@www ~]# stat egon222.txt \r\n......\r\n\u6700\u8fd1\u6539\u52a8\uff1a2021-04-08 20:00:40... ---&gt; \u4e0d\u53d8<\/code><\/pre>\n<p>\u5176\u4ed6\u9009\u9879<\/p>\n<pre><code class=\"language-bash\"># 0\u3001\u9009\u9879-c\u3001--checksum\u6539\u53d8rsync\u7684\u68c0\u67e5\u65b9\u5f0f\r\n\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0crsync\u57fa\u4e8e\"quick check\"\u7b97\u6cd5\u53ea\u68c0\u67e5\u6587\u4ef6\u7684\u5927\u5c0f\u548c\u6700\u540e\u4fee\u6539\u65e5\u671f\u662f\u5426\u53d1\u751f\u53d8\u5316\uff0c\u5982\u679c\u53d1\u751f\u53d8\u5316\uff0c\u5c31\u91cd\u65b0\u4f20\u8f93;\u5f53\u7136\uff0c\u4e5f\u53ef\u4ee5\u901a\u8fc7\u5728rsync\u547d\u4ee4\u884c\u4e2d\u6307\u5b9a\u67d0\u4e9b\u9009\u9879\u6765\u6539\u53d8quick check\u7684\u68c0\u67e5\u6a21\u5f0f\uff0c\u6bd4\u5982\"--size-only\"\u9009\u9879\u8868\u793a\"quick check\"\u5c06\u4ec5\u68c0\u67e5\u6587\u4ef6\u5927\u5c0f\u4e0d\u540c\u7684\u6587\u4ef6\u4f5c\u4e3a\u5f85\u4f20\u8f93\u6587\u4ef6\u3002\r\n\r\n\u4f7f\u7528-c\u53c2\u6570\u4ee5\u540e\uff0c\u5219\u901a\u8fc7\u5224\u65ad\u6587\u4ef6\u5185\u5bb9\u7684\u6821\u9a8c\u548c\uff0c\u51b3\u5b9a\u662f\u5426\u91cd\u65b0\u4f20\u8f93\uff0c\u589e\u5f3a\u4e86\u6570\u636e\u4f20\u8f93\u7684\u53ef\u9760\u6027\u4f46\u964d\u4f4e\u4e86\u6548\u7387\uff0c\u662f\u5426\u4f7f\u7528\u8be5\u9009\u9879\u5462?\u5982\u679c\u662f\u79c1\u7f51\u5185\u90e8\u4f20\u8f93\uff0c\u7f51\u7edc\u901a\u5e38\u53ef\u63a7\u4e14\u8f83\u4e3a\u7a33\u5b9a\uff0c\u6587\u4ef6\u5b8c\u6574\u6027\u901a\u5e38\u4e0d\u4f1a\u6709\u95ee\u9898\uff0c\u4e0d\u9700\u8981\u52a0-c\u9009\u9879\uff0c\u5982\u679c\u662f\u4f20\u5230\u5916\u7f51\uff0c\u7f51\u7edc\u4e0d\u53ef\u63a7\u4e14\u4e0d\u591f\u7a33\u5b9a\uff0c\u53ef\u4ee5\u8003\u8651\u52a0\u4e0a-c\u9009\u9879\u589e\u5f3a\u53ef\u9760\u6027\uff0c\u6b64\u65f6\u9700\u8981\u4ed8\u51fa\u7684\u4ee3\u4ef7\u5c31\u662f\u6548\u7387\u7684\u964d\u4f4e\uff0c\u7528\u4e0d\u7528\u8bf7\u81ea\u884c\u659f\u914c\r\n\r\nrsync\u652f\u6301\u975e\u5e38\u591a\u7684\u9009\u9879\r\n\u4e00\u4e9b\u9009\u9879\u63a7\u5236\u68c0\u67e5\u7684\u6a21\u5f0f\uff08\u5982-c\u3001--size-only\u7b49\uff09\u3001\u4e00\u4e9b\u9009\u9879\u63a7\u5236\u6587\u4ef6\u540c\u6b65\u7684\u6a21\u5f0f(\u4f8b\u5982--delete\u7b49)\r\n\u68c0\u67e5\u6a21\u5f0f\u51b3\u5b9a\u4e86\u54ea\u4e9b\u6587\u4ef6\u9700\u8981\u88ab\u540c\u6b65\r\n\u6587\u4ef6\u540c\u6b65\u6a21\u5f0f\u51b3\u5b9a\u4e86\u5728\u6587\u4ef6\u786e\u5b9a\u8981\u88ab\u540c\u6b65\u540e\u3001\u540c\u6b65\u8fc7\u7a0b\u53d1\u751f\u4e4b\u524d\u8981\u505a\u7684\u989d\u5916\u5de5\u4f5c\r\n\u76f8\u5bf9\u6765\u8bf4\uff0c\u4e3arsync\u624b\u52a8\u6307\u5b9a\u540c\u6b65\u6a21\u5f0f\u7684\u9009\u9879\u66f4\u5e38\u89c1\u4e00\u4e9b\uff0c\u53ea\u6709\u5728\u6709\u7279\u6b8a\u9700\u6c42\u65f6\u624d\u6307\u5b9a\u68c0\u67e5\u6a21\u5f0f\uff0c\u56e0\u4e3a\u5927\u591a\u6570\u68c0\u67e5\u6a21\u5f0f\u9009\u9879\u90fd\u53ef\u80fd\u4f1a\u5f71\u54cdrsync\u7684\u6027\u80fd\uff0c\u4f8b\u5982\u4e0a\u9762\u6240\u8ff0-c\u9009\u9879\r\n\r\n# 1\u3001\u9009\u9879-n\r\n\u5982\u679c\u4e0d\u786e\u5b9a rsync \u6267\u884c\u540e\u4f1a\u4ea7\u751f\u4ec0\u4e48\u7ed3\u679c\uff0c\u53ef\u4ee5\u5148\u7528`-n`\u6216`--dry-run`\u53c2\u6570\u6a21\u62df\u6267\u884c\u7684\u7ed3\u679c\u3002\r\nrsync -anv source\/ destination\r\n\r\n\u4e0a\u9762\u547d\u4ee4\u4e2d\uff0c-n\u53c2\u6570\u6a21\u62df\u547d\u4ee4\u6267\u884c\u7684\u7ed3\u679c\uff0c\u5e76\u4e0d\u771f\u7684\u6267\u884c\u547d\u4ee4\u3002-v\u53c2\u6570\u5219\u662f\u5c06\u7ed3\u679c\u8f93\u51fa\u5230\u7ec8\u7aef\uff0c\u8fd9\u6837\u5c31\u53ef\u4ee5\u770b\u5230\u54ea\u4e9b\u5185\u5bb9\u4f1a\u88ab\u540c\u6b65\u3002\r\n\r\n# 2\u3001\u9009\u9879--delete\r\n\u5982\u679c\u8981\u4f7f\u5f97\u76ee\u6807\u76ee\u5f55\u6210\u4e3a\u6e90\u76ee\u5f55\u7684\u955c\u50cf\u526f\u672c\uff0c\u5219\u5fc5\u987b\u4f7f\u7528`--delete`\u53c2\u6570\uff0c\u8fd9\u5c06\u5220\u9664\u53ea\u5b58\u5728\u4e8e\u76ee\u6807\u76ee\u5f55\u3001\u4e0d\u5b58\u5728\u4e8e\u6e90\u76ee\u5f55\u7684\u6587\u4ef6\uff0c\u4e5f\u5c31\u662f\"\u591a\u5219\u5220\u4e4b\uff0c\u5c11\u5219\u8865\u4e4b\"\u3002\r\n\r\n[root@www ~]# echo 111 &gt; \/aaa\/1.txt\r\n[root@www ~]# echo 222 &gt; \/aaa\/2.txt\r\n[root@www ~]# echo 333 &gt; \/aaa\/3.txt\r\n[root@www ~]# echo 444 &gt; \/bbb\/4.txt\r\n[root@www ~]# \r\n[root@www ~]# \r\n[root@www ~]# \r\n[root@www ~]# rsync -az --delete \/aaa\/ \/bbb\/\r\n[root@www ~]# ls \/bbb\/\r\n1.txt  2.txt  3.txt\r\n\r\n# 3\u3001\u9009\u9879--exclude\r\n\u6709\u65f6\uff0c\u6211\u4eec\u5e0c\u671b\u540c\u6b65\u65f6\u6392\u9664\u67d0\u4e9b\u6587\u4ef6\u6216\u76ee\u5f55\uff0c\u8fd9\u65f6\u53ef\u4ee5\u7528--exclude\u53c2\u6570\u6307\u5b9a\u6392\u9664\u6a21\u5f0f\u3002\r\n$ rsync -av --exclude='*.txt' source\/ destination\r\n\u6216\u8005\r\n$ rsync -av --exclude '*.txt' source\/ destination\r\n\u4e0a\u9762\u547d\u4ee4\u6392\u9664\u4e86\u6240\u6709 TXT \u6587\u4ef6\u3002\r\n\u6ce8\u610f\uff0crsync \u4f1a\u540c\u6b65\u4ee5\"\u70b9\"\u5f00\u5934\u7684\u9690\u85cf\u6587\u4ef6\uff0c\u5982\u679c\u8981\u6392\u9664\u9690\u85cf\u6587\u4ef6\uff0c\u53ef\u4ee5\u8fd9\u6837\u5199--exclude=\".*\"\u3002\r\n\r\n\u5982\u679c\u8981\u6392\u9664source\/\u4e0b\u67d0\u4e2a\u5b50\u76ee\u5f55\u91cc\u9762\u7684\u6240\u6709\u6587\u4ef6\uff0c\u4f46\u4e0d\u5e0c\u671b\u6392\u9664\u8be5\u5b50\u76ee\u5f55\u672c\u8eab\uff0c\u53ef\u4ee5\u5199\u6210\u4e0b\u9762\u8fd9\u6837\u3002\r\n$ rsync -av --exclude 'dir1\/*' source\/ destination #  \u5f3a\u8c03\uff0c--exlucde\u91cc\u6307\u5b9a\u7684\u8def\u5f84\u53ea\u80fd\u662f\u76f8\u5bf9\u76ee\u5f55\uff0c.\/\u90fd\u4e0d\u80fd\u5e26\uff0c\u76f4\u63a5\u5199\u5b50\u76ee\u5f55\u5c31\u884c\r\n\r\n#  \u5f3a\u8c03\uff0c--exlucde\u91cc\u6307\u5b9a\u7684\u8def\u5f84\u53ea\u80fd\u662f\u76f8\u5bf9\u76ee\u5f55\uff0c.\/\u90fd\u4e0d\u80fd\u5e26\uff0c\u76f4\u63a5\u5199\u5b50\u76ee\u5f55\u5c31\u884c\r\n[root@k8s-master-01 ~]# tree \/aaa\r\n\/aaa\r\n\u251c\u2500\u2500 1.txt\r\n\u251c\u2500\u2500 2.txt\r\n\u251c\u2500\u2500 3.txt\r\n\u251c\u2500\u2500 a\r\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 aaaa.txt\r\n\u2514\u2500\u2500 b\r\n[root@k8s-master-01 ~]# rsync -zavn --exclude={'1.txt','a\/*'} \/aaa\/ \/bbb\/\r\nsending incremental file list\r\n.\/\r\n2.txt\r\n3.txt\r\na\/\r\nb\/\r\n\r\n\r\n\u591a\u4e2a\u6392\u9664\u6a21\u5f0f\uff0c\u53ef\u4ee5\u7528\u591a\u4e2a--exclude\u53c2\u6570\u3002\r\n$ rsync -av --exclude 'file1.txt' --exclude 'dir1\/*' source\/ destination \r\n\r\n\u591a\u4e2a\u6392\u9664\u6a21\u5f0f\u4e5f\u53ef\u4ee5\u5229\u7528 Bash \u7684\u5927\u6269\u53f7\u7684\u6269\u5c55\u529f\u80fd\uff0c\u53ea\u7528\u4e00\u4e2a--exclude\u53c2\u6570\u3002\r\n$ rsync -av --exclude={'file1.txt','dir1\/*'} source\/ destination\r\n\r\n\u5982\u679c\u6392\u9664\u6a21\u5f0f\u5f88\u591a\uff0c\u53ef\u4ee5\u5c06\u5b83\u4eec\u5199\u5165\u4e00\u4e2a\u6587\u4ef6\uff0c\u6bcf\u4e2a\u6a21\u5f0f\u4e00\u884c\uff0c\u7136\u540e\u7528--exclude-from\u53c2\u6570\u6307\u5b9a\u8fd9\u4e2a\u6587\u4ef6\u3002\r\n$ rsync -av --exclude-from='exclude-file.txt' source\/ destination\r\n\r\n# 4\u3001\u9009\u9879--include\r\n\u7528\u6765\u6307\u5b9a\u5fc5\u987b\u540c\u6b65\u7684\u6587\u4ef6\u6a21\u5f0f\uff0c\u5f80\u5f80\u4e0e--exclude\u7ed3\u5408\u4f7f\u7528\u3002\r\n$ rsync -av --include=\"[0-9].txt\" --exclude='*' source\/ destination\r\n\u4e0a\u9762\u547d\u4ee4\u6307\u5b9a\u540c\u6b65\u65f6\uff0c\u6392\u9664\u6240\u6709\u6587\u4ef6\uff0c\u4f46\u662f\u4f1a\u5305\u62ec1.txt\u30012.txt\u7b49\u6587\u4ef6\uff0c\u6ce8\u610f--include\u5fc5\u987b\u5728--exclude\u4e4b\u524d<\/code><\/pre>\n<h1>\u4e09\u3001\u50cfscp\u547d\u4ee4\u4e00\u6837\u53d6\u7528rsync<\/h1>\n<p>rsync\u7684\u8fdc\u7a0b\u6a21\u5f0f\uff0c\u652f\u6301\u4e24\u79cd\u534f\u8bae<\/p>\n<ul>\n<li>1\u3001\u91c7\u7528ssh\u534f\u8bae\uff0c\u5bf9\u5e94\u7684\u670d\u52a1\u7aef\u4e3asshd<\/li>\n<li>2\u3001\u91c7\u7528rsync\u534f\u8bae\uff0c\u5bf9\u5e94\u7684\u670d\u52a1\u7aef\u4e3arsync &#8211;daemon\u542f\u52a8\u7684\u5b88\u62a4\u8fdb\u7a0b<\/li>\n<\/ul>\n<h2>3.1 \u57fa\u4e8essh\u534f\u8bae<\/h2>\n<p>1\u3001\u670d\u52a1\u7aef\u51c6\u5907\u4e0e\u4ecb\u7ecd<\/p>\n<pre><code>\uff081\uff09\u5728\u672c\u5730\u4e0e\u76ee\u6807\u4e3b\u673a\u90fd\u5b89\u88c5rsync\uff08\u6ca1\u9519\uff0c\u54ea\u6015\u4f60\u7528ssh\u534f\u8bae\u4e5f\u8981\u5b89\u88c5\uff09\r\n\uff082\uff09\u8fdc\u7a0b\u4e3b\u673a\u8981\u6253\u5f00sshd\u670d\u52a1\r\n\uff083\uff09\u9700\u8981\u7528\u5230\u7684\u8d26\u53f7\u662f\u8fdc\u7a0b\u4e3b\u673a\u53ef\u767b\u5f55\u7684\u3001\u7cfb\u7edf\u8d26\u53f7---\u300b\u4e0d\u5b89\u5168\r\n\uff084\uff09\u4e0d\u53d7\u76ee\u5f55\u9650\u5236------------------------------\u300b\u4e0d\u5b89\u5168<\/code><\/pre>\n<p>2\u3001\u5ba2\u6237\u7aef\u4f20\u8f93<\/p>\n<pre><code># \u57fa\u4e8essh\u534f\u8bae\uff0crsync \u5728\u4f20\u8f93\u6570\u636e\u4e4b\u524d\uff0c\u4f1a\u5148\u4e0e\u8fdc\u7aef\u8fdb\u884c\u4e00\u6b21 ssh \u767b\u5f55\u8ba4\u8bc1\uff08\u91c7\u7528\u7684\u5c31\u662f\u7cfb\u7edf\u8d26\u53f7\uff09\uff0c\r\n# \u56e0\u6b64\u9700\u8981\u76ee\u6807\u4e3b\u673a\u4e8b\u5148\u5f00\u542fssh\u670d\u52a1\r\nrsync -avz \/xxx root@1.1.1.1:\/yyy\r\nrsync -avc root@1.1.1.1:\/yyy \/xxx<\/code><\/pre>\n<p>\u793a\u4f8b1\uff1a\u62c9\u53d6<\/p>\n<pre><code class=\"language-python\">[root@www ~]# rsync -avz root@192.168.12.17:\/data \/bak\/\r\n......\r\n[root@www ~]# ls \/bak\/\r\ndata\r\n[root@www ~]# \u53ef\u4ee5\u7528stat\u547d\u4ee4\u67e5\u770b\u4e00\u4e0b\u6700\u8fd1\u6539\u52a8\u65f6\u95f4\uff0c\u7136\u540e\u518d\u6b21\u6267\u884c\u4e0b\u884c\u547d\u4ee4\r\n[root@www ~]# rsync -avz root@192.168.12.17:\/data \/bak\/\r\n[root@www ~]# \u6b64\u65f6\u7528stat\u547d\u4ee4\u67e5\u770b\u4e00\u4e0b\u6700\u8fd1\u6539\u52a8\u65f6\u95f4\uff0c\u4e0e\u4e0a\u4e00\u6b21\u5b8c\u5168\u76f8\u540c<\/code><\/pre>\n<p>\u793a\u4f8b2\uff1a\u63a8\u9001<\/p>\n<pre><code>[root@www ~]# rsync -avz \/bak root@192.168.12.17:\/data\/  # \u63a8\u9001<\/code><\/pre>\n<p>\u7531\u4e8e\u65e9\u671f rsync \u4e0d\u4f7f\u7528 SSH \u534f\u8bae\uff0c\u9700\u8981\u7528<code>-e<\/code>\u53c2\u6570\u6307\u5b9a\u534f\u8bae\uff0c\u540e\u6765\u624d\u6539\u7684\u3002\u6240\u4ee5\uff0c\u4e0b\u9762<code>-e ssh<\/code>\u53ef\u4ee5\u7701\u7565\u3002<\/p>\n<pre><code class=\"language-bash\">$ rsync -av -e ssh source\/ user@remote_host:\/destination<\/code><\/pre>\n<p>\u4f46\u662f\uff0c\u5982\u679c ssh \u547d\u4ee4\u6709\u9644\u52a0\u7684\u53c2\u6570\uff0c\u5219\u5fc5\u987b\u4f7f\u7528<code>-e<\/code>\u53c2\u6570\u6307\u5b9a\u6240\u8981\u6267\u884c\u7684 SSH \u547d\u4ee4\u3002<\/p>\n<pre><code class=\"language-bash\">$ rsync -av -e 'ssh -p 8888' source\/ user@remote_host:\/destination<\/code><\/pre>\n<p>\u4e0a\u9762\u547d\u4ee4\u4e2d\uff0c<code>-e<\/code>\u53c2\u6570\u6307\u5b9a SSH \u4f7f\u75282234\u7aef\u53e3\u3002<\/p>\n<h2>3.2 \u57fa\u4e8ersync\u534f\u8bae<\/h2>\n<h3>\uff081\uff09\u5feb\u901f\u4e86\u89e3\u6d41\u7a0b<\/h3>\n<p>1\u3001\u670d\u52a1\u7aef\u51c6\u5907\u4e0e\u4ecb\u7ecd<\/p>\n<pre><code>\uff081\uff09\u5728\u672c\u5730\u4e0e\u76ee\u6807\u4e3b\u673a\u90fd\u5b89\u88c5rsync\r\n\uff082\uff09\u8fdc\u7a0b\u4e3b\u673a\u8981\u6253\u5f00rsync\u5b88\u62a4\u8fdb\u7a0b\uff0c\u7aef\u53e3\u9ed8\u8ba4873\r\n    rsync --daemon\r\n    \u6216\r\n    systemctl start rsyncd\r\n\uff083\uff09\u7528\u5230\u7684\u662f\u865a\u62df\u8d26\u53f7\uff0c\u865a\u62df\u8d26\u53f7\u5bf9\u5e94\u7684\u662f\u914d\u7f6e\u6587\u4ef6\u4e2duid\u7684\u6743\u9650\uff0c\u4f8b\u5982\uff1auid=rsync\r\n    \u865a\u62df\u8d26\u53f7egon-------&gt;\u8fdc\u7aef\u4e3b\u673a\u771f\u5b9e\u5b58\u5728\u7684\u7cfb\u7edf\u8d26\u53f7rsync\r\n\uff084\uff09\u7528\u7684\u662f\u6a21\u5757\u540d-\u300b\u5177\u4f53\u7684\u76ee\u5f55\r\n\r\n\u4e3a\u4ec0\u4e48\u63a8\u8350\u4f7f\u7528\u5b88\u62a4\u8fdb\u7a0b\u6a21\u5f0f\uff1f\r\n1.\u57fa\u4e8essh\u7684\u8ba4\u8bc1\uff0c\u4f20\u8f93\u65f6\u4f1a\u4f7f\u7528\u7cfb\u7edf\u7528\u6237\u548c\u5bc6\u7801\uff0c\u4e0d\u5b89\u5168\uff0c\u800c\u5b88\u62a4\u8fdb\u7a0b\u6a21\u5f0f\u4f7f\u7528\u7684\u662f\u865a\u62df\u7528\u6237\u548c\u865a\u62df\u5bc6\u7801\r\n2.\u5f53\u4f7f\u7528\u666e\u901a\u7528\u6237\u4f20\u8f93\u6587\u4ef6\u65f6\u4f1a\u51fa\u73b0\u6743\u9650\u4e0d\u8db3\u7684\u60c5\u51b5\uff0c\u800c\u5b88\u62a4\u8fdb\u7a0b\u6a21\u5f0f\u53ef\u4ee5\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898<\/code><\/pre>\n<p>centos7.9\u4e2d\u9ed8\u8ba4\u6709\u4e00\u4e2a\u7cfb\u7edf\u670d\u52a1rsyncd\uff0c\u4f60\u53ef\u4ee5\u67e5\u770b\u4e0b\u5b83\u7684systemctl\u76f8\u5173\u914d\u7f6e\uff0c\u672c\u8d28\u5c31\u662f\u542f\u52a8rsync &#8211;daemon\u5b88\u62a4\u8fdb\u7a0b<br \/>\n<div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2021\/07\/image-1711336539522.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2021\/07\/image-1711336539522.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"file\" \/><\/div><\/p>\n<p>2\u3001\u5ba2\u6237\u7aef\u4f7f\u7528<\/p>\n<pre><code>\u670d\u52a1\u7aef\u7684sshd\u670d\u52a1\u5173\u95ed\u6389\u4e86\uff0c\u610f\u5473\u7740\u4f60\u65e0\u6cd5\u7ee7\u7eed\u7528ssh\u534f\u8bae\u4e86\uff0c\u5ba2\u6237\u7aef\u60f3\u5b9e\u73b0\u8fdc\u7a0b\u4f20\u8f93\r\n\u53ea\u80fd\u7528rsync\u534f\u8bae\uff0c\u6307\u5b9a\u4f7f\u7528rsync\u534f\u8bae\u7684\u65b9\u5f0f\u6709\u4e24\u79cd\r\n\r\n# \u65b9\u5f0f\u4e00\uff1arsync:\/\/\u524d\u7f00\uff0c\u4ee3\u8868\u4f7f\u7528rsync\u534f\u8bae\uff08\u670d\u52a1\u7aef\u7aef\u53e3\u9ed8\u8ba4873\uff09---\u300b\u8be5\u65b9\u5f0f\u4e86\u89e3\u5c31\u884c\uff0c\u4e0d\u63a8\u8350\u8bb0\u5fc6\r\n$ rsync -av source\/ rsync:\/\/192.168.12.66\/\u670d\u52a1\u7aef\u914d\u7f6e\u6587\u4ef6\u8bbe\u7f6e\u7684\u6a21\u5757\u540d\/\u8def\u5f84  # \r\n\r\n# \u65b9\u5f0f\u4e8c\uff1aip\u5730\u5740\u4e0e\u76ee\u6807\u8def\u5f84\u4e4b\u95f4\u653e\u7f6e\u8fde\u7eed\u4e24\u4e2a\u5192\u53f7\uff0c\u4e5f\u4ee3\u8868\u4f7f\u7528rsync\u534f\u8bae\u521b\u672f\r\n$ rsync -az source\/ \u865a\u62df\u7528\u6237\u540d@192.168.12.39::\u670d\u52a1\u7aef\u914d\u7f6e\u6587\u4ef6\u8bbe\u7f6e\u7684\u6a21\u5757\u540d\/\u8def\u5f84  \r\n\r\n\u6ce8\u610f\uff1a\r\n1\u3001\u63a8\u8350\u4f7f\u7528\u65b9\u5f0f\u4e8c\uff0c\u56e0\u4e3a\u9664\u4e86\u8fde\u7eed\u4e24\u4e2a\u5192\u53f7\u5916\uff0c\u5f62\u5f0f\u4e0a\u8ddfscp\u7684\u5f62\u5f0f\u975e\u5e38\u50cf\u4e86\r\n2\u3001\u670d\u52a1\u7aef\u914d\u7f6e\u6587\u4ef6\u4e2d\u8bbe\u7f6e\u7684\u6a21\u5757\u540d\uff0c\u662f\u4e00\u4e2a\u865a\u62df\u7684\u914d\u7f6e\uff0c\u8be5\u914d\u7f6e\u9879\u8bbe\u5b9a\u7684\u670d\u52a1\u7aef\u5177\u4f53\u8def\u5f84\r\n3\u3001\u4e0d\u6307\u5b9a\u865a\u62df\u7528\u6237\u540d\uff0c\u5219\u9ed8\u8ba4\u4f7f\u7528\u5ba2\u6237\u7aef\u5f53\u524d\u767b\u5f55\u7684\u7528\u6237\u540d\u53bb\u8fde\u63a5\u8fdc\u7a0b\uff0c\u800c\u8fdc\u7a0b\u4e3b\u673a\u5982\u679c\u78b0\u5de7\u5f00\u7684\u865a\u62df\u7528\u6237\u540d\u80fd\u5bf9\u5f97\u4e0a\u90a3\u624d\u884c\uff0c\u5426\u5219\u5b8c\u86cb\uff0c\u6240\u4ee5\u8fd8\u662f\u5efa\u8bae\u5728\u5ba2\u6237\u7aef\u6307\u5b9a\u5177\u4f53\u7684\u865a\u62df\u7528\u6237\u540d\r\n\r\n\u82e5\u8fdc\u7a0b\u4e3b\u673a\u4fee\u6539\u4e86rsync\u5b88\u62a4\u8fdb\u7a0b\u7684\u7aef\u53e3\uff0c\u90a3\u4e48\u5728\u672c\u673a\u5e94\u8be5\u8fd9\u4e48\u505a\r\n$ rsync -av source\/ rsync:\/\/192.168.12.66:879\/module\/destination  # \u53ef\u4ee5\u6307\u5b9a\u7aef\u53e3\r\n\r\n\u5b8c\u6574\u8bed\u6cd5\uff1a\r\nPull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]\r\n        rsync [OPTION...] rsync:\/\/[USER@]HOST[:PORT]\/SRC... [DEST]\r\nPush: rsync [OPTION...] SRC... [USER@]HOST::DEST\r\n        rsync [OPTION...] SRC... rsync:\/\/[USER@]HOST[:PORT]\/DEST<\/code><\/pre>\n<h3>\uff082\uff09\u914d\u7f6e\u4e0e\u4f7f\u7528\u5b9e\u64cd<\/h3>\n<p><strong>\u5b88\u62a4\u8fdb\u7a0b\u6a21\u5f0f\u642d\u5efa<\/strong><\/p>\n<p>I\uff1a\u73af\u5883\u51c6\u5907<\/p>\n<table>\n<thead>\n<tr>\n<th>\u4e3b\u673a<\/th>\n<th>IP<\/th>\n<th>\u89d2\u8272<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u672c\u5730<\/td>\n<td>192.168.12.17<\/td>\n<td>rsync\u5ba2\u6237\u7aef<\/td>\n<\/tr>\n<tr>\n<td>\u8fdc\u7a0b<\/td>\n<td>192.168.12.39<\/td>\n<td>rsync\u670d\u52a1\u7aef<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<pre><code class=\"language-bash\">\u672c\u5730\u4e0e\u8fdc\u7a0b\u5747\u6267\u884c\u4e0b\u8ff0\u4e24\u6761\u547d\u4ee4\r\nsetenforce 0\r\niptables -F<\/code><\/pre>\n<p>II\uff1a\u5b89\u88c5rsync\uff08\u672c\u5730\u548c\u8fdc\u7a0b\u4e3b\u673a\u90fd\u8981\u88c5\uff09<\/p>\n<pre><code class=\"language-bash\">[root@remote ~]# yum install rsync -y<\/code><\/pre>\n<p>III\uff1a\u5728\u8fdc\u7a0b\u4e3b\u673a\u914d\u7f6e\u5e76\u542f\u52a8\u5b88\u62a4\u8fdb\u7a0b<br \/>\n<strong>!!!\u5f3a\u8c03\u4e00\u4e2a\u6838\u5fc3\u70b9\uff0c\u5176\u4ed6\u7684\u90fd\u597d\u7406\u89e3!!!<\/strong><\/p>\n<pre><code class=\"language-bash\">secrets file = \/etc\/rsync.passwd \u6307\u5b9a\u865a\u62df\u673a\u7528\u6237\u53ca\u5bc6\u7801\uff0c\u5ba2\u6237\u7aef\u7528\u7684\u5c31\u662f\u8fd9\u4e2a\u865a\u62df\u7528\u6237\r\nuid\u4e0egid\u6307\u5b9a\u7684\u662f\u5b58\u5728\u4e8e\u8fdc\u7a0b\u4e3b\u673a\u7684\u7cfb\u7edf\u7528\u6237\r\n\u5f53\u5ba2\u6237\u7aef\u5229\u7528\u865a\u62df\u7528\u6237\u8fde\u63a5\u5230\u8fdc\u7a0b\u4e3b\u673a\u540e\u4fbf\u4f1a\u8f6c\u6362\u6210uid\u4e0egid\u6307\u5b9a\u7684\u8eab\u4efd<\/code><\/pre>\n<p>\u5177\u4f53\u914d\u7f6e\u5982\u4e0b<\/p>\n<pre><code class=\"language-bash\">[root@remote ~]# vim \/etc\/rsyncd.conf \r\n# \u865a\u62df\u7528\u6237egon\u5bf9\u5e94\u7684\u5c31\u662f\u8be5\u7528\u6237\u7684\u6743\u9650\uff0c\u9650\u5236\u7684\u662f\u5ba2\u6237\u7aef\u7684\u6743\u9650\r\nuid = rsync\r\n# \u865a\u62df\u7528\u6237egon\u5bf9\u5e94\u7684\u5c31\u662f\u8be5\u7ec4\u7684\u6743\u9650\uff0c\u9650\u5236\u7684\u662f\u5ba2\u6237\u7aef\u7684\u6743\u9650\uff0c\r\ngid = rsync\r\nport = 873\r\nfake super = yes\r\nuse chroot = no\r\nmax connections = 200\r\ntimeout = 600\r\nignore errors\r\nread only = false\r\nlist = false\r\nauth users = egon\r\nsecrets file = \/etc\/rsync.passwd\r\nlog file = \/var\/log\/rsyncd.log\r\n#####################################\r\n[xxx]\r\ncomment = \"\u5907\u4efd\u6587\u4ef6\u7684\u76ee\u5f55\"\r\npath = \/egon_bak<\/code><\/pre>\n<p>rsync\u9ed8\u8ba4\u914d\u7f6e\u6587\u4ef6\u5404\u914d\u7f6e\u9879\u8be6\u89e3\u5982\u4e0b\uff0c\u6ce8\u610f\u4e0d\u8981\u5c06\u6ce8\u91ca\u5378\u5378\u8f7d\u914d\u7f6e\u9879\u540e\u9762<\/p>\n<pre><code class=\"language-bash\">[root@remote ~]# vim \/etc\/rsyncd.conf\r\n#\u5ba2\u6237\u7aef\u4ee5\u865a\u62df\u7528\u6237egon\u767b\u5f55\u6210\u529f\u540e\uff0c\u4f1a\u8f6c\u6362\u6210uid\u6307\u5b9a\u7684\u8eab\u4efd\uff0c\u7136\u540e\u4ee5\u8be5\u8eab\u4efd\u6765\u5b8c\u6210\u5bf9\u76ee\u6807\u76ee\u5f55\u7684\u5199\u64cd\u4f5c\r\nuid = rsync\r\n\r\n#\u5ba2\u6237\u7aef\u4ee5\u865a\u62df\u7528\u6237egon\u767b\u5f55\u6210\u529f\u540e\uff0c\u8f6c\u6362\u6210\u7684\u7ec4\u8eab\u4efd\r\ngid = rsync\r\n\r\n#\u7aef\u53e3\r\nport = 873\r\n\r\n#\u8bbe\u7f6e\u4e3ayes\uff0c\u5219\u4ee3\u8868uid\u53ef\u4ee5\u4e0d\u4e3aroot\r\n#\u6ce8\u610f\uff0c\u5982\u679c\u60f3\u8ba9rsync -a\u9009\u9879\u80fd\u628a\u672c\u5730\u6587\u4ef6\u7684\u5c5e\u4e3b\u548c\u5c5e\u7ec4\u4e5f\u540c\u6b65\u5230\u8fdc\u7aef\r\n#\u5219\u5fc5\u987b\u8ba9\u8fdc\u7aef\u7684\u5b88\u62a4\u8fdb\u7a0b\u4ee5root\u7528\u6237\u542f\u52a8\uff0c\u5373\u8bbe\u7f6euid=root\u3001gid=root\uff0c\u5e76\u4e14\u5c06fake super\u6539\u4e3ano\r\n#\u5728rsync -a\u9009\u9879\u4e0b\uff0c\u672c\u5730\u6587\u4ef6\u7684uid\u548cgid\u4f1a\u540c\u6b65\u7ed9\u670d\u52a1\u7aef\uff0c\u4f46\u670d\u52a1\u7aef\u7684uid\u548cgid\u5bf9\u5e94\u7684\u7528\u6237\u548c\u7ec4\u540d\u6709\u53ef\u80fd\u4e0e\u672c\u5730\u4e0d\u4e00\u81f4\uff0c\u8fd9\u5b8c\u5168\u6b63\u5e38\r\nfake super = yes\r\n\r\n#\u5b89\u5168\u673a\u5236,rsync daemon\u5728\u4f20\u8f93\u524d\u662f\u5426\u5207\u6362\u5230\u6307\u5b9a\u7684path\u76ee\u5f55\u4e0b\uff0c\u5e76\u5c06\u5176\u76d1\u7981\u5728\u5185\r\nuse chroot = no  \r\n\r\n#\u6700\u5927\u8fde\u63a5\u6570\uff0c0\u8868\u793a\u6ca1\u6709\u9650\u5236\r\nmax connections = 200\r\n\r\n#\u8d85\u65f6\u65f6\u95f4\uff0c\u786e\u4fddrsync\u670d\u52a1\u5668\u4e0d\u4f1a\u6c38\u8fdc\u7b49\u5f85\u4e00\u4e2a\u5d29\u6e83\u7684\u5ba2\u6237\u7aef\uff0c0\u8868\u793a\u6c38\u8fdc\u7b49\u5f85\r\ntimeout = 600\r\n\r\n#\u5ffd\u7565\u9519\u8bef\r\nignore errors\r\n\r\n#\u5173\u95ed\u53ea\u8bfb\r\nread only = false\r\n\r\n#\u67e5\u770b\u6a21\u5757\u5217\u8868\uff0c\u6539\u4e3atrue\u540e\uff0c\u5728local\u7aef\u53ef\u4ee5\u7528\u547d\u4ee4rsync rsync:\/\/192.168.12.39\u67e5\u770b\u8fdc\u7aef\u53ef\u7528\u7684\u6a21\u5757\u6570\r\nlist = false  \r\n\r\n#\u6307\u5b9a\u865a\u62df\u7528\u6237\uff0c\u4f20\u8f93\u65f6\u4f7f\u7528\u8be5\u7528\u6237\u5c31\u4f1a\u5bf9\u5e94\u5230\u771f\u5b9e\u7cfb\u7edf\u7528\u6237rsync\u7684\u6743\u9650\uff0c\u628a\u6b64\u5904\u6ce8\u91ca\u6389\uff0c\u53ef\u4ee5\u5728\u6a21\u5757\u91cc\u8bbe\u7f6e\r\n#auth users = egon  \r\n\r\n#\u6307\u5b9a\u865a\u62df\u7528\u6237\u7684\u5bc6\u7801\u6587\u4ef6\r\n#secrets file = \/etc\/rsync.passwd\r\n\r\n#\u65e5\u5fd7\u6587\u4ef6\r\nlog file = \/var\/log\/rsyncd.log\r\n\r\n# \u6307\u5b9a\u54ea\u4e9b\u6587\u4ef6\u4e0d\u7528\u8fdb\u884c\u538b\u7f29\u4f20\u8f93\r\ndont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2  \r\n\r\n###########\u4e0b\u9762\u6307\u5b9a\u6a21\u5757\uff0c\u5e76\u8bbe\u5b9a\u6a21\u5757\u914d\u7f6e\u53c2\u6570\uff0c\u53ef\u4ee5\u521b\u5efa\u591a\u4e2a\u6a21\u5757###########\r\n# \u6a21\u5757\u540d\u4e3axxx\uff0c\u5bf9\u5e94\u7684\u5b9e\u9645\u76ee\u5f55\u4e3a\/egon_bak\r\n[xxx]   \r\n#\u5907\u6ce8\r\ncomment = \"\u5907\u4efd\u6587\u4ef6\u7684\u76ee\u5f55\"\r\n\r\n#\u771f\u5b9e\u6587\u4ef6\u76ee\u5f55\r\npath = \/egon_bak\r\n\r\n# \u5ffd\u7565\u67d0\u4e9bIO\u9519\u8bef\u4fe1\u606f\r\nignore errors    \r\n\r\n# \u6307\u5b9a\u8be5\u6a21\u5757\u662f\u5426\u53ef\u8bfb\u5199\uff0c\u5373\u80fd\u5426\u4e0a\u4f20\u6587\u4ef6\uff0cfalse\u8868\u793a\u53ef\u8bfb\u5199\uff0ctrue\u8868\u793a\u53ef\u8bfb\u4e0d\u53ef\u5199\u3002\u6240\u6709\u6a21\u5757\u9ed8\u8ba4\u4e0d\u53ef\u4e0a\u4f20\r\nread only = false  \r\n\r\n# \u6307\u5b9a\u8be5\u6a21\u5f0f\u662f\u5426\u652f\u6301\u4e0b\u8f7d\uff0c\u8bbe\u7f6e\u4e3atrue\u8868\u793a\u5ba2\u6237\u7aef\u4e0d\u80fd\u4e0b\u8f7d\u3002\u6240\u6709\u6a21\u5757\u9ed8\u8ba4\u53ef\u4e0b\u8f7d\r\nwrite only = false \r\n\r\n# \u5ba2\u6237\u7aef\u8bf7\u6c42\u663e\u793a\u6a21\u5757\u5217\u8868\u65f6\uff0c\u8be5\u6a21\u5757\u662f\u5426\u663e\u793a\u51fa\u6765\uff0c\u8bbe\u7f6e\u4e3afalse\u5219\u8be5\u6a21\u5757\u4e3a\u9690\u85cf\u6a21\u5757\u3002\u9ed8\u8ba4true\r\nlist = false       \r\n\r\n# \u6307\u5b9a\u5141\u8bb8\u8fde\u63a5\u5230\u8be5\u6a21\u5757\u7684\u673a\u5668\uff0c\u591a\u4e2aip\u7528\u7a7a\u683c\u9694\u5f00\u6216\u8005\u8bbe\u7f6e\u533a\u95f4\r\nhosts allow = 10.0.0.0\/24 \r\n\r\n# \u6307\u5b9a\u4e0d\u5141\u8bb8\u8fde\u63a5\u5230\u8be5\u6a21\u5757\u7684\u673a\u5668\r\nhosts deny = 0.0.0.0\/32   \r\n\r\n# \u82e5\u6a21\u5757\u91cc\u6307\u5b9a\u865a\u62df\u7528\u6237\uff0c\u5219\u628a\u5168\u5c40\u7684\u6ce8\u91ca\u6389\u5373\u53ef\r\nauth users = rsync_backup \r\nsecrets file = \/etc\/rsyncd.passwd \r\n# \u4fdd\u5b58auth users\u7528\u6237\u5217\u8868\u7684\u7528\u6237\u540d\u548c\u5bc6\u7801\uff0c\u6bcf\u884c\u5305\u542b\u4e00\u4e2ausername:passwd\u3002\r\n# \u7531\u4e8e\"strict modes\"\u9ed8\u8ba4\u4e3atrue\uff0c\u6240\u4ee5\u6b64\u6587\u4ef6\u8981\u6c42\u975ersync daemon\u7528\u6237\u4e0d\u53ef\u8bfb\u5199\u3002\u53ea\u6709\u542f\u7528\u4e86auth users\u8be5\u9009\u9879\u624d\u6709\u6548\u3002\r\n\r\n[yyy]    # \u4ee5\u4e0b\u5b9a\u4e49\u7684\u662f\u7b2c\u4e8c\u4e2a\u6a21\u5757,\u672a\u8bbe\u7f6e\u865a\u62df\u8d26\u53f7\uff0c\u5219\u6240\u6709\u8d26\u53f7\u90fd\u53ef\u4ee5\u64cd\u4f5c\u8be5\u6a21\u5757\r\npath=\/bak\/\r\nread only = false\r\nignore errors<\/code><\/pre>\n<p>\u5728\u8fdc\u7a0b\u4e3b\u673a\uff1a\u521b\u5efa\u542f\u52a8\u5b88\u62a4\u8fdb\u7a0b\u65f6\u7528\u5230\u7684\u7528\u6237\u4e0e\u7ec4<\/p>\n<pre><code class=\"language-bash\">[root@remote ~]# useradd rsync -s \/sbin\/nologin -M<\/code><\/pre>\n<p>\u5728\u8fdc\u7a0b\u4e3b\u673a\uff1a\u914d\u7f6e\u865a\u62df\u7528\u6237egon\u7684\u5bc6\u7801\u6587\u4ef6<\/p>\n<pre><code class=\"language-bash\">[root@remote ~]# echo \"egon:123\" &gt; \/etc\/rsync.passwd  # \u865a\u62df\u7528\u6237egon\u7684\u5bc6\u7801\u4e3a123\uff0c\u6ce8\u610f\u8fd9\u662f\u5728\u670d\u52a1\u7aef\u7684\u5bc6\u7801\u6587\u4ef6\uff0c\u91cc\u9762\u5fc5\u987b\u662f\"\u7528\u6237\u540d:\u5bc6\u7801\"\u7684\u683c\u5f0f\uff0c\u800c\u5728\u5ba2\u6237\u7aef\u5219\u4e0d\u4e00\u6837\r\n[root@remote ~]# chmod 600 !$<\/code><\/pre>\n<p>\u5728\u8fdc\u7a0b\u4e3b\u673a\uff1a\u4e3a\u6a21\u5757xxx\u521b\u5efa\u771f\u5b9e\u7684\u76ee\u5f55<\/p>\n<pre><code class=\"language-bash\">[root@remote ~]# mkdir \/egon_bak\r\n[root@remote ~]# chown -R rsync.rsync \/egon_bak\/<\/code><\/pre>\n<p>\u5728\u8fdc\u7a0b\u4e3b\u673a\uff1a\u542f\u52a8\u5b88\u62a4\u8fdb\u7a0b<\/p>\n<pre><code class=\"language-bash\"># 1\u3001rsync daemon\u7684\u542f\u52a8\u65b9\u5f0f\u5f88\u7b80\u5355\u3002\r\n[root@remote ~]# rsync --daemon  # \u542f\u52a8 rsync \u670d\u52a1\uff0c\u4ee5\u72ec\u7acb\u76d1\u542c\u670d\u52a1\u7684\u65b9\u5f0f\uff08\u5b88\u62a4\u8fdb\u7a0b\uff09\u8fd0\u884c \r\n# \u6ce8\u610f\u6ce8\u610f\u6ce8\u610f\uff1a\r\n\u6211\u4eec\u662f\u4ee5root\u7528\u6237\u542f\u52a8\u7684rsync\u8fdb\u7a0b\uff0c\u6240\u4ee5rsync\u7684\u8fdb\u7a0b\u8eab\u4efd\u5c31\u662froot\uff0c\u4e00\u5b9a\u4e0e\u914d\u7f6e\u6587\u4ef6\u4e2d\u7684uid\u6307\u5b9a\u7684\u8eab\u4efd\u533a\u5206\u5f00\r\n\u8bf4\u767d\u4e86\u6211\u4eec\u4ee5\u4ec0\u4e48\u7528\u6237\u542f\u52a8\u670d\u52a1\u7aef\u7684rsync\u8fdb\u7a0b\uff0c\u63a7\u5236\u7684\u662f\u670d\u52a1\u7aef\u8f6f\u4ef6\u7684\u6743\u9650\r\n\u800c\u914d\u7f6e\u6587\u4ef6\u4e2d\u7684uid\u63a7\u5236\u7684\u5219\u662f\u5ba2\u6237\u7aef\u7684\u6743\u9650\u3001\u5bf9\u76ee\u5f55\/egon_bak\u7684\u6743\u9650\r\n\r\n[root@remote ~]# netstat -anpt | grep rsync\r\ntcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      55535\/rsync         \r\ntcp6       0      0 :::873                  :::*                    LISTEN      55535\/rsync   \r\n\r\n# 2\u3001\u5982\u679c\u662fCentOS 7\uff0c\u5219\u81ea\u5e26\u542f\u52a8\u811a\u672c\u3002\r\n[root@remote ~]# systemctl start rsyncd  \r\n# \u53ef\u4ee5\u67e5\u770b\u542f\u52a8\u811a\u672c\u7684\u5185\u5bb9\uff1acat \/usr\/lib\/systemd\/system\/rsyncd.service\r\n# \u53ef\u4ee5\u770b\u5230\u8f83\u672c\u8d28\u542f\u52a8\u65b9\u6cd5\u4e5f\u4ec5\u4ec5\u53ea\u662f\u591a\u4e86\u4e00\u4e2a\"--no-detach\"\uff0c\u8be5\u9009\u9879\u8868\u793arsync\u4e0d\u5c06\u81ea\u5df1\u4ece\u7ec8\u7aef\u4e0a\u5265\u79bb\u3002<\/code><\/pre>\n<p>IV\uff1a\u6d4b\u8bd5<\/p>\n<pre><code class=\"language-bash\"># 1\u3001\u5728\u672c\u5730\u62c9\u53d6\r\n\u51c6\u5907\uff1a\u8fdc\u7a0b\u4e3b\u673a\u521b\u5efa\u6587\u4ef6\r\n[root@remote ~]# echo \"111\" &gt; \/egon_bak\/1.txt \r\n\r\n\u62c9\u53d6\r\nrsync -az egon@192.168.12.39::xxx \/test  # \u4e0d\u6307\u5b9a\u865a\u62df\u7528\u6237\u540degon\uff0c\u5219\u9ed8\u8ba4\u4f7f\u7528\u5f53\u524d\u7528\u6237\u540d\r\nPassword: 123  # \u8f93\u5165\u865a\u62df\u7528\u6237egon\u7684\u5bc6\u7801123\r\n\r\nrsync -az egon@192.168.12.39::xxx\/111.txt \/test # \u6307\u5b9a\u6a21\u5757\u4e0b\u7684\u5177\u4f53\u6587\u4ef6\r\n# 2\u3001\u5728\u672c\u5730\u63a8\u9001\r\n\u51c6\u5907\uff1a\u672c\u673a\u673a\u521b\u5efa\u6587\u4ef6\r\necho \"222\" &gt; \/test\/2.txt \r\n\r\n\u63a8\u9001: \u4f7f\u7528\u7684\u662f\u865a\u62df\u7528\u6237egon\r\nrsync -az --delete \/test\/ egon@192.168.12.39::xxx \r\n\r\n# 3\u3001\u82e5\u672c\u5730\u4e0d\u60f3\u624b\u52a8\u8f93\u5bc6\u7801\uff0c\u6709\u4e24\u79cd\u65b9\u5f0f\u89e3\u51b3\r\n(1) \u5199\u5165\u6587\u4ef6\r\necho 123 &gt; \/etc\/egon.password  # \u5ba2\u6237\u7aef\u7684\u5bc6\u7801\u6587\u4ef6\u53ea\u80fd\u5199\u5165\u5bc6\u7801\r\nchmod 600 \/etc\/egon.password  # \u5fc5\u987b\u914d\u7f6e\u597d\u6743\u9650\r\nrsync -az egon@192.168.12.39::xxx \/test --password-file=\/etc\/egon.password\r\n\r\n(2) \u914d\u7f6e\u53d8\u91cf\r\n[root@local ~]# export RSYNC_PASSWORD=123  # \u53d8\u91cf\u540d\u662f\u56fa\u5b9a\u7684\r\n[root@local ~]# rsync -az egon@192.168.12.39::xxx \/test<\/code><\/pre>\n<p>V\uff1a\u9650\u901f\u4f20\u8f93<\/p>\n<p>\u6709\u4e9b\u673a\u623f\u4f1a\u9650\u5236\u673a\u5668\u7684\u6d41\u91cf\uff0c\u5728\u4f7f\u7528scp\u548crsync\u7684\u65f6\u5019\u90fd\u8981\u6ce8\u610f\uff0c\u4e3a\u4e86\u9632\u6b62\u51fa\u73b0\u65ad\u6d41\u73b0\u8c61\uff0c\u6211\u4eec\u5fc5\u987b\u5bf9\u81ea\u5df1\u7684\u6570\u636e\u4f20\u8f93\u8fdb\u884c\u4e00\u5b9a\u7684\u9650\u6d41\u63aa\u65bd\uff0c\u6162\u4e00\u70b9\u603b\u6bd4\u88ab\u6390\u4e86\u7684\u597d\u3002<\/p>\n<p><strong>rsync<\/strong>\u9650\u5236\u901f\u5ea6\u5f88\u7b80\u5355\uff0c\u6dfb\u52a0\u4e2a\u53c2\u6570\u5373\u53efbwlimit\uff0c\u540e\u9762\u7684\u503c\u662f\u591a\u5c11KBytes\/s<\/p>\n<pre><code class=\"language-bash\"># --bwlimit=100     # \u5355\u4f4d\u662fKB\/s\r\n\u751f\u6210\u4e00\u4e2a500M\u7684\u6587\u4ef6\r\n[root@local ~]# dd if=\/dev\/zero of=\/tmp\/egon.txt bs=1M count=500\r\n\r\n\u6307\u5b9a\u901f\u7387\u4f20\u8f93\uff0c-P\u663e\u793a\u540c\u6b65\u7684\u8fc7\u7a0b\u53ca\u4f20\u8f93\u65f6\u7684\u8fdb\u5ea6\u7b49\u4fe1\u606f\r\n[root@local ~]# rsync -avzP --bwlimit=10 \/tmp\/egon.txt egon@192.168.12.39::xxx\r\n\r\n# \u6ce8\u610f\r\nblocks of data are sent, then if rsync determines the transfer was too fast, it will wait before sending the next data block. The result is an average transfer rate equaling the specified limit.\r\n\u6570\u636e\u5757\u53d1\u9001\u540e\uff0c\u5982\u679crsync\u786e\u5b9a\u4f20\u8f93\u901f\u5ea6\u8fc7\u5feb\uff0c\u5b83\u5c06\u5728\u53d1\u9001\u4e0b\u4e00\u4e2a\u6570\u636e\u5757\u4e4b\u524d\u7b49\u5f85\u3002\u7ed3\u679c\u662f\u5e73\u5747\u4f20\u8f93\u901f\u7387\u7b49\u4e8e\u6307\u5b9a\u7684\u9650\u5236\u3002\r\n\u6240\u4ee5rsync\u662f\u662f\u6839\u636e\u4f20\u8f93\u5e73\u5747\u503c\u6765\u8c03\u8282\u751f\u6210\u7684\u541e\u5410\u91cf\uff0c\u4f60\u770b\u5230\u5f53\u524d\u7684\u4f20\u8f93\u6548\u7387\u6bd4\u4f60\u6307\u5b9a\u7684\u5927\u4e5f\u662f\u5f88\u6b63\u5e38\u7684\u3002\r\n\r\n\u4f8b\u5982--bwlimit=5\uff0c\u5e94\u8be5\u662f5KB\/s\u624d\u5bf9\uff0c\u4f46\u662f\u5b9e\u9645\u8fd0\u884c\u770b\u5230\u7684\u662f10MB\/s\r\nrsync\u7684--bwlimit\u53c2\u6570\u662f\u5e73\u5747\u5e26\u5bbd\uff0c\u5b83\u4f1a\u5728\u4e00\u4e9b\u5468\u671f\u5185\u8d77\u4f5c\u7528\u3002\u6240\u4ee5\uff0c\u4f60\u53ef\u80fd\u4f1a\u5728\u4e00\u4e9b\u5468\u671f\u5185\u770b\u5230\u901f\u5ea6\u9ad8\u4e8e5KB\/s\uff0c\u4f46\u5728\u5176\u4ed6\u5468\u671f\u5185\u901f\u5ea6\u4f4e\u4e8e5KB\/s\uff0c\u4ece\u800c\u4f7f\u5f97\u5e73\u5747\u901f\u5ea6\u63a5\u8fd1\u4e8e5KB\/s\u3002<\/code><\/pre>\n<h2>3.3 rsync\u534f\u8bae\u4e0essh\u534f\u8bae\u7684\u8ba4\u8bc1\u65b9\u5f0f\u603b\u7ed3<\/h2>\n<ul>\n<li>1\u3001\u57fa\u4e8essh\u8ba4\u8bc1<\/li>\n<\/ul>\n<pre><code class=\"language-bash\">I\uff1a\u4f7f\u7528\u7684\u662f\u8fdc\u7a0b\u4e3b\u673a\u7684\u7cfb\u7edf\u8d26\u53f7\u4e0e\u5bc6\u7801\r\nII\uff1a\u901a\u8fc7ssh\u96a7\u9053\u8fdb\u884c\u4f20\u8f93\r\n    \u9700\u8981\u8fdc\u7a0b\u4e3b\u673a\u5f00\u542fsshd\u670d\u52a1\r\n    \u53ea\u9700\u8981\u53cc\u65b9\u5b89\u88c5rsync\uff0c\u4e0d\u9700\u8981\u53cc\u65b9\u542f\u52a8rsync\uff0c\r\n    \u7c7b\u4f3c\u4e8escp\u5de5\u5177\uff0c\u540c\u6b65\u64cd\u4f5c\u4e0d\u5c40\u9650\u4e8ersync\u4e2d\u5b9a\u4e49\u7684\u540c\u6b65\u6587\u4ef6\u5939\uff0c<\/code><\/pre>\n<ul>\n<li>2\u3001\u57fa\u4e8e\u5b88\u62a4\u8fdb\u7a0b\u8ba4\u8bc1\uff0c\u5373rsync-daemon<\/li>\n<\/ul>\n<pre><code class=\"language-bash\">I\uff1a\u4f7f\u7528\u7684\u662f\u8fdc\u7a0b\u4e3b\u673a\u7684\u865a\u62df\u8d26\u53f7\uff0c\u5728rsync-daemon\u8ba4\u8bc1\u4e0b\uff0crsync\u53ef\u4ee5\u628a\u5bc6\u7801\u5199\u5165\u5230\u4e00\u4e2a\u6587\u4ef6\u4e2d\u3002\r\nII\uff1a\u5728rsync-daemon\u8ba4\u8bc1\u65b9\u5f0f\u4e0b\r\n    \u53ea\u9700\u8981\u53cc\u65b9\u5b89\u88c5rsync\uff0c\u5e76\u4e14\u8fdc\u7a0b\u4e3b\u673a\u9700\u8981\u5f00\u542frsync\u8fdb\u7a0b\uff0c\u9ed8\u8ba4\u76d1\u542ctcp\u7684873\u7aef\u53e3\r\n    \u540c\u6b65\u64cd\u4f5c\u53ea\u80fd\u540c\u6b65\u5230\u8fdc\u7a0b\u4e3b\u673a\u6307\u5b9a\u7684\u76ee\u5f55\u4e0b<\/code><\/pre>\n<h2>3.4 \u65ad\u70b9\u7eed\u4f20<\/h2>\n<pre class=\"code\"> \r\n\u4ee5\u4e0b\u662f\u4e00\u4e2a\u4f7f\u7528 rsync \u8fdb\u884c\u65ad\u70b9\u7eed\u4f20\u7684\u5b9e\u4f8b\uff1a\r\nbash\r\nrsync -avz --progress --partial \/originating\/directory\/ user@remote-host:\/destination\/directory\/\r\n\u5728\u8fd9\u4e2a\u5b9e\u4f8b\u4e2d\uff1a\r\n-a \u9009\u9879\u662f\u5f52\u6863\u6a21\u5f0f\uff0c\u53ef\u4ee5\u9012\u5f52\u5730\u4f20\u8f93\u6587\u4ef6\uff0c\u5e76\u4fdd\u6301\u6240\u6709\u6587\u4ef6\u5c5e\u6027\u3002\r\n-v \u9009\u9879\u8868\u793a\u8be6\u7ec6\u6a21\u5f0f\uff0c\u7528\u4e8e\u6253\u5370\u51fa\u66f4\u591a\u7684\u4fe1\u606f\u3002\r\n-z \u9009\u9879\u662f\u901a\u8fc7\u7f51\u7edc\u4f20\u8f93\u65f6\u8fdb\u884c\u538b\u7f29\uff0c\u53ef\u4ee5\u52a0\u5feb\u4f20\u8f93\u901f\u5ea6\u3002\r\n--progress \u9009\u9879\u53ef\u4ee5\u663e\u793a\u4f20\u8f93\u8fc7\u7a0b\u4e2d\u7684\u8be6\u7ec6\u4fe1\u606f\uff0c\u4fbf\u4e8e\u4e86\u89e3\u4f20\u8f93\u8fdb\u5ea6\u3002\r\n--partial \u9009\u9879\u8ba9 rsync \u4fdd\u7559\u90a3\u4e9b\u56e0\u67d0\u79cd\u539f\u56e0\u672a\u80fd\u5b8c\u5168\u4f20\u8f93\u7684\u6587\u4ef6\uff0c\u4ee5\u4fbf\u4e8e\u540e\u7eed\u7ee7\u7eed\u4f20\u8f93\u3002\r\n-P: \u7b49\u540c\u4e8e --partial --progress\r\n\r\n\u5047\u8bbe\u6211\u4eec\u4f7f\u7528\u4e0a\u8ff0\u547d\u4ee4\u5f00\u59cb\u4e00\u4e2a\u6587\u4ef6\u4f20\u8f93\u4efb\u52a1\uff0c\u5728\u4f20\u8f93\u8fc7\u7a0b\u4e2d\u7f51\u7edc\u8fde\u63a5\u65ad\u5f00\uff0c\u6211\u4eec\u53ea\u9700\u5728\u8fde\u63a5\u6062\u590d\u540e\u518d\u6b21\u6267\u884c\u540c\u6837\u7684\u547d\u4ee4\uff0crsync \u4f1a\u4ece\u65ad\u70b9\u5904\u7ee7\u7eed\u4f20\u8f93\r\n\r\n\u793a\u4f8b\uff1a\r\n1\u3001\u53ef\u4ee5\u521b\u5efa\u4e00\u4e2a\u5927\u6587\u4ef6\u6d4b\u8bd5\r\ndd if=\/dev\/zero of=\/tmp\/a.txt bs=1G count=5\r\n2\u3001\u65ad\u70b9\u7eed\u4f20\r\nrsync -avz  --progress --partial \/tmp\/a.txt root@192.168.71.113:\/opt\r\n3\u3001\u6b64\u65f6\u53ef\u4ee5\u5728\u672c\u673a\u4e0atop\u547d\u4ee4\u67e5\u770brsync\u7684cpu\u5229\u7528\u7387\u9ad8\uff0c\u56e0\u4e3a\u8981\u8ba1\u7b97\r\n\r\n4\u3001\u4f20\u5230\u5dee\u4e0d\u591a82%\u7684\u65f6\u5019\uff0cctrl+c\u7ec8\u6b62\u6389\u4f20\u8f93\r\n[root@nfs ~]# rsync -avz  --progress --partial \/tmp\/a.txt root@192.168.71.113:\/opt\r\nsending incremental file list\r\na.txt\r\n  4,451,270,656  82%  165.32MB\/s    0:00:05  ^CKilled by signal 2.\r\n\r\nrsync error: unexplained error (code 255) at rsync.c(638) [sender=3.1.2]\r\nrsync: [sender] write error: Broken pipe (32)\r\n\r\n5\u3001\u53bb\u5bf9\u7aef\u770b\u5230\u5df2\u7ecf\u4f20\u4e864G\r\n[root@web02 \/opt]# ls -lh \/opt\/a.txt \r\n-rw-r--r-- 1 root root 4.0G 1\u6708   1 1970 \/opt\/a.txt\r\n\r\n6\u3001\u91cd\u65b0\u6267\u884c\u547d\u4ee4\u540e\u65ad\u70b9\u7eed\u4f20\uff0c\u5148\u8ba1\u7b97\u65ad\u70b9\u4f4d\u7f6e\uff0c\u5b8c\u6bd5\u540e\u7eed\u4f20\uff0c\u7136\u540e\u65b0\u5185\u5bb9\u4e0e\u65e7\u5185\u5bb9\u5408\u5e76\u5230\u4e00\u8d77\r\nrsync -avz  --progress --partial \/tmp\/a.txt root@192.168.71.113:\/opt\r\n\r\n\r\n<\/pre>\n<h1>\u56db\u3001rsync\u5b9e\u73b0\u589e\u91cf\u5907\u4efd<\/h1>\n<h2>4.1 \u50a8\u5907\u5907\u4efd\u76f8\u5173\u77e5\u8bc6<\/h2>\n<p>1\u3001\u4ec0\u4e48\u662f\u5907\u4efd<\/p>\n<pre><code>\u5907\u4efd\u5c31\u662f\u628a\u91cd\u8981\u7684\u6570\u636e\u590d\u5236\u4e00\u4efd\u5230\u5176\u4ed6\u4f4d\u7f6e\u4fdd\u7559\u8d77\u6765<\/code><\/pre>\n<p>2\u3001\u4e3a\u4f55\u8981\u5907\u4efd<\/p>\n<pre><code class=\"language-python\">\u5907\u4efd-\u300b\u4e3a\u4e86\u9632\u6b62\u6570\u636e\u4e22\u5931\u65f6\uff0c\u53ef\u4ee5\u901a\u8fc7\u5907\u4efd\u6062\u590d\u56de\u6765\r\n\u5907\u4efd\u610f\u8bc6\u5728\u8fd0\u7ef4\u7ba1\u7406\u4e2d\u662f\u4e00\u4e2a\u57fa\u672c\u5e38\u8bc6<\/code><\/pre>\n<p>3\u3001\u5982\u4f55\u5907\u4efd\u4e4b\u4e09\u79cd\u5907\u4efd\u65b9\u6848\/\u601d\u60f3<\/p>\n<pre><code class=\"language-bash\"># 1\u3001\u5168\u91cf\u5907\u4efd\/\u5b8c\u5168\u5907\u4efd\uff08Full Backup\uff09\r\n\u6bcf\u6b21\u5907\u4efd\u7684\u7ed3\u679c\u90fd\u662f\u4e00\u6b21\u5b8c\u6574\u7684\u62f7\u8d1d\r\n\r\n# 2\u3001\u5dee\u5f02\u5907\u4efd\uff08Differential Backup\uff09\r\n\u6bcf\u6b21\u5907\u4efd\u65f6\uff0c\u90fd\u662f\u57fa\u4e8e\u7b2c\u4e00\u6b21\u5b8c\u5168\u5907\u4efd\u7684\u5185\u5bb9\uff0c\u53ea\u5907\u4efd\u6709\u5dee\u5f02\u7684\u6570\u636e(\u65b0\u589e\u7684\u3001\u4fee\u6539\u7684\u3001\u5220\u9664\u7684)\uff0c\u4f8b\u5982\r\n\r\n\u7b2c\u4e00\u6b21\u5907\u4efd\uff1a\u5b8c\u5168\u5907\u4efd\r\n\u7b2c\u4e8c\u6b21\u5907\u4efd\uff1a\u4ee5\u5f53\u524d\u65f6\u95f4\u8282\u70b9\u7684\u6570\u636e\u4e3a\u57fa\u7840\uff0c\u5907\u4efd\u4e0e\u7b2c\u4e00\u6b21\u5907\u4efd\u5185\u5bb9\u7684\u5dee\u5f02\r\n\u7b2c\u4e09\u6b21\u5907\u4efd\uff1a\u4ee5\u5f53\u524d\u65f6\u95f4\u8282\u70b9\u7684\u6570\u636e\u4e3a\u57fa\u7840\uff0c\u5907\u4efd\u4e0e\u7b2c\u4e00\u6b21\u5907\u4efd\u5185\u5bb9\u7684\u5dee\u5f02\r\n\u7b2c\u56db\u6b21\u5907\u4efd\uff1a\u4ee5\u5f53\u524d\u65f6\u95f4\u8282\u70b9\u7684\u6570\u636e\u4e3a\u57fa\u7840\uff0c\u5907\u4efd\u4e0e\u7b2c\u4e00\u6b21\u5907\u4efd\u5185\u5bb9\u7684\u5dee\u5f02\r\n\u7b2c\u4e94\u6b21\u5907\u4efd\uff1a\u4ee5\u5f53\u524d\u65f6\u95f4\u8282\u70b9\u7684\u6570\u636e\u4e3a\u57fa\u7840\uff0c\u5907\u4efd\u4e0e\u7b2c\u4e00\u6b21\u5907\u4efd\u5185\u5bb9\u7684\u5dee\u5f02\r\n\u3002\u3002\u3002\r\n\r\n# 3\u3001\u589e\u91cf\u5907\u4efd\uff08Incremental Backup \uff09\r\n\u6bcf\u6b21\u5907\u4efd\u65f6\uff0c\u90fd\u662f\u57fa\u4e8e\u4e0a\u4e00\u6b21\u5907\u4efd\u7684\u5185\u5bb9\uff08\u6ce8\u610f\u662f\u4e0a\u4e00\u6b21\uff0c\u800c\u4e0d\u662f\u7b2c\u4e00\u6b21\uff09\uff0c\u53ea\u5907\u4efd\u6709\u5dee\u5f02\u7684\u6570\u636e(\u65b0\u589e\u7684\u3001\u4fee\u6539\u7684\u3001\u5220\u9664\u7684)\uff0c\u6240\u4ee5\u589e\u91cf\u5907\u4efd\u7684\u7ed3\u679c\u662f\u4e00\u6761\u94fe\uff0c\u4f8b\u5982\r\n\r\n\u7b2c\u4e00\u6b21\u5907\u4efd\uff1a\u5b8c\u5168\u5907\u4efd\r\n\u7b2c\u4e8c\u6b21\u5907\u4efd\uff1a\u4ee5\u5f53\u524d\u65f6\u95f4\u8282\u70b9\u7684\u6570\u636e\u4e3a\u57fa\u7840\uff0c\u5907\u4efd\u4e0e\u7b2c\u4e00\u6b21\u5907\u4efd\u5185\u5bb9\u7684\u5dee\u5f02\r\n\u7b2c\u4e09\u6b21\u5907\u4efd\uff1a\u4ee5\u5f53\u524d\u65f6\u95f4\u8282\u70b9\u7684\u6570\u636e\u4e3a\u57fa\u7840\uff0c\u5907\u4efd\u4e0e\u7b2c\u4e8c\u6b21\u5907\u4efd\u5185\u5bb9\u7684\u5dee\u5f02\r\n\u7b2c\u56db\u6b21\u5907\u4efd\uff1a\u4ee5\u5f53\u524d\u65f6\u95f4\u8282\u70b9\u7684\u6570\u636e\u4e3a\u57fa\u7840\uff0c\u5907\u4efd\u4e0e\u7b2c\u4e09\u6b21\u5907\u4efd\u5185\u5bb9\u7684\u5dee\u5f02\r\n\u7b2c\u4e94\u6b21\u5907\u4efd\uff1a\u4ee5\u5f53\u524d\u65f6\u95f4\u8282\u70b9\u7684\u6570\u636e\u4e3a\u57fa\u7840\uff0c\u5907\u4efd\u4e0e\u7b2c\u56db\u6b21\u5907\u4efd\u5185\u5bb9\u7684\u5dee\u5f02\r\n\u3002\u3002\u3002<\/code><\/pre>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2021\/07\/image-1693463417423.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2021\/07\/image-1693463417423.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"file\" \/><\/div><\/p>\n<p>\u9488\u5bf9\u4e0a\u8ff0\u4e09\u79cd\u5907\u4efd\u65b9\u6848\uff0c\u5982\u4f55\u6062\u590d\u6570\u636e\u5462<\/p>\n<pre><code class=\"language-bash\"># 1\u3001\u5168\u91cf\u5907\u4efd\u7684\u6570\u636e\u6062\u590d\r\n\r\n\u53ea\u9700\u627e\u51fa\u6307\u5b9a\u65f6\u95f4\u70b9\u7684\u90a3\u4e00\u4e2a\u5907\u4efd\u6587\u4ef6\u5373\u53ef\uff0c\u5373\u53ea\u9700\u8981\u627e\u5230\u4e00\u4e2a\u6587\u4ef6\u5373\u53ef\r\n\r\n# 2\u3001\u5dee\u5f02\u5907\u4efd\u7684\u6570\u636e\u6062\u590d\r\n\u9700\u8981\u5148\u6062\u590d\u7b2c\u4e00\u6b21\u5907\u4efd\u7684\u7ed3\u679c\uff0c\u7136\u540e\u518d\u6062\u590d\u6700\u8fd1\u4e00\u6b21\u5dee\u5f02\u5907\u4efd\u7684\u7ed3\u679c\uff0c\u5373\u9700\u8981\u627e\u5230\u4e24\u4e2a\u6587\u4ef6\r\n\r\n# 3\u3001\u589e\u91cf\u5907\u4efd\u7684\u6570\u636e\u6062\u590d\r\n\u9700\u8981\u5148\u6062\u590d\u7b2c\u4e00\u6b21\u5907\u4efd\u7684\u7ed3\u679c\uff0c\u7136\u540e\u518d\u4f9d\u6b21\u6062\u590d\u6bcf\u6b21\u589e\u91cf\u5907\u4efd\uff0c\u76f4\u5230\u6062\u590d\u5230\u5f53\u524d\u4f4d\u7f6e\uff0c\u5373\u9700\u8981\u627e\u5230\u4e00\u6761\u5907\u4efd\u94fe<\/code><\/pre>\n<p>\u7efc\u4e0a\uff0c\u5bf9\u6bd4\u4e09\u79cd\u5907\u4efd\u65b9\u6848<\/p>\n<ul>\n<li>1\u3001\u5360\u7528\u7a7a\u95f4\uff1a\u5168\u91cf &gt; \u5dee\u5f02 &gt; \u589e\u91cf<\/li>\n<li>2\u3001\u6062\u590d\u6570\u636e\u8fc7\u7a0b\u7684\u590d\u6742\u7a0b\u5ea6\uff1a\u589e\u91cf &gt; \u5dee\u5f02 &gt; \u5168\u91cf<\/li>\n<\/ul>\n<p>4\u3001\u5907\u4efd\u7684\u4f4d\u7f6e<\/p>\n<pre><code class=\"language-bash\">\u672c\u5730\u5907\u4efd\r\n\r\n\u5f02\u5730\u5907\u4efd(\u63a8\u8350)<\/code><\/pre>\n<p>5\u3001\u5e38\u7528\u5907\u4efd\u5de5\u5177<\/p>\n<pre><code>1\u3001cp\u547d\u4ee4\uff1a\u53ef\u4ee5\uff0c\u4f46\u56e0\u5176\u53ea\u80fd\u5728\u672c\u5730\u62f7\u8d1d\uff0c\u6240\u4ee5\u4e0d\u4f1a\u7528\u5b83\u6765\u5907\u4efd\uff0c\u800c\u4e14cp\u4f1a\u4ea7\u751f\u5927\u91cf\u6587\u4ef6\u5360\u7528\u5927\u91cfinode\uff0c\u8fd8\u4e0d\u5982\u7528tar\r\n2\u3001scp\u8fdc\u7a0b\u4f20\u8f93\r\n3\u3001rsync\u8fdc\u7a0b\u4f20\u8f93<\/code><\/pre>\n<p>6\u3001\u5907\u4efd\u7684\u65f6\u5019\u7528push\u8fd8\u662fpull<br \/>\n\u6211\u4eec\u7528rsync\u5728\u6211\u4eec\u7684\u67b6\u6784\u4e2d\u5bf9nfs\u6587\u4ef6\u5b58\u50a8\u505a\u5907\u4efd\uff0c\u6b64\u65f6\u6587\u4ef6\u5b58\u50a8\u4f5c\u4e3a\u670d\u52a1\u7aef\uff0c\u6211\u4eec\u7684\u5907\u4efd\u673a\u4f5c\u4e3a\u5ba2\u6237\u7aef\uff0c\u5728\u5907\u4efd\u673a\u53ea\u6709\u4e00\u53f0\u7684\u60c5\u51b5\u4e0b\uff0c\u4f7f\u7528push\u4e0epull\u6ca1\u6709\u591a\u5927\u5dee\u522b\u7684\uff0c\u90fd\u4e0d\u4f1a\u5bf9\u670d\u52a1\u7aef\u9020\u6210\u8fc7\u591a\u7684\u538b\u529b<br \/>\n\u4f46\u662f\u5728\u522b\u7684\u5907\u4efd\u573a\u666f\u5373\u5ba2\u6237\u7aef\u6bd4\u8f83\u591a\u7684\u60c5\u51b5\u4e0b\uff0c\u5219\u5bf9\u670d\u52a1\u5668\u7684\u8bf7\u6c42\u538b\u529b\u3001\u5e26\u5bbd\u90fd\u4f1a\u6709\u8981\u6c42\uff0c\u4e3a\u4e86\u5206\u644a\u538b\u529b\uff0c\u53ef\u4ee5\u662f\u591a\u7ea7\u8282\u70b9\u7684\u65b9\u5f0f\uff0c\u670d\u52a1\u7684\u5c06\u6570\u636epush\u5230\u4e00\u4e2a\u5730\u65b9\uff0c\u5ba2\u6237\u7aef\u90fd\u4ece\u8fd9\u4e2a\u5730\u65b9pull\u6570\u636e\u5230\u672c\u5730\uff0c\u8fd9\u6837\u53ef\u4ee5\u51cf\u8f7b\u670d\u52a1\u5668\u7684\u538b\u529b\uff0c\u4f46\u5b9e\u65f6\u6027\u65b9\u9762\u53ef\u80fd\u4f1a\u5f31\u4e00\u4e9b<\/p>\n<h2>4.2 rsync\u5b9e\u73b0\u589e\u91cf\u5907\u4efd<\/h2>\n<p>rsync \u7684\u6700\u5927\u7279\u70b9\u5c31\u662f\u5b83\u53ef\u4ee5\u5b8c\u6210\u589e\u91cf\u5907\u4efd\uff0c<br \/>\n\u9664\u4e86\u6e90\u76ee\u5f55\u4e0e\u76ee\u6807\u76ee\u5f55\u76f4\u63a5\u6bd4\u8f83\uff0crsync\u8fd8\u652f\u6301\u4f7f\u7528&#8211;link-dest\u53c2\u6570\u7528\u6765\u6307\u5b9a\u540c\u6b65\u65f6\u7684\u57fa\u51c6\u76ee\u5f55\uff0c\u5373\u5c06\u6e90\u76ee\u5f55\u4e0e\u57fa\u51c6\u76ee\u5f55\u4e4b\u95f4\u53d8\u52a8\u7684\u90e8\u5206\uff0c\u540c\u6b65\u5230\u76ee\u6807\u76ee\u5f55\u3002<br \/>\n<\/p><div id=\"rml_readmorelogin_placeholder\" style=\"position:relative;\"><div id=\"rml_fade_content\" style=\"position: absolute;\r\ntop:-10em;\r\nwidth:100%;\r\nheight:10em;\r\nbackground: -webkit-linear-gradient(rgba(255, 255, 255, 0) 0%,#ffffff 100%);\r\nbackground-image: -moz-linear-gradient(rgba(255, 255, 255, 0) 0%,#ffffff 100%);\r\nbackground-image: -o-linear-gradient(rgba(255, 255, 255, 0) 0%,#ffffff 100%);\r\nbackground-image: linear-gradient(rgba(255, 255, 255, 0) 0%,#ffffff 100%);\r\nbackground-image: -ms-linear-gradient(rgba(255, 255, 255, 0) 0%,#ffffff 100%);\"><\/div><div class=\"wpf-controller aru_rml_from_in_post\" style=\"background-color:#eeeeee;border:5px solid #cce6ff;\" id=\"ARU_ReadMoreLogin_ReadMoreLoginController\"><h2 id=\"Header\">\u67e5\u770b\u66f4\u591a<\/h2><div id=\"Message\"><p>\u8054\u7cfb\u7ba1\u7406\u5458\u5fae\u4fe1tutu19192010\uff0c\u6ce8\u518c\u8d26\u53f7<\/p>\n<\/div><div id=\"StatusBarHeader\"><\/div><form id=\"ARU_ReadMoreLogin_ReadMoreLoginController\"><input name=\"post_id\" value=\"282\" type=\"hidden\"\/><input name=\"_init_callback\" value=\"InitLogin\" type=\"hidden\"\/><input name=\"post_id\" value=\"282\" type=\"hidden\"\/><input name=\"rt_ype\" value=\"1\" type=\"hidden\"\/><input name=\"nonce\" value=\"1081be82d8\" type=\"hidden\"\/><input name=\"_wpnonce\" value=\"4f9ac12208\" type=\"hidden\"\/><input name=\"_controller\" value=\"ARU_ReadMoreLogin\\ReadMoreLoginController\" type=\"hidden\"\/><input name=\"_proxy_controller\" value=\"ARU_ReadMoreLogin\\ReadMoreLoginController\" type=\"hidden\"\/><input name=\"_view\" value=\"ARU_ReadMoreLogin\\ReadMoreLoginView\" type=\"hidden\"\/><table class=\"wpf-table-placeholder\"><tbody class=\"wpf-table-placeholder\"><tr class=\"wpf-table-placeholder\"><td class=\"wpf-table-placeholder-input\" width=\"400px\"><table class=\"wpf-table-placeholder\"><tbody class=\"wpf-table-placeholder\"><tr class=\"wpf-table-placeholder\"><th class=\"wpf-table-placeholder-input\"><label class=\"wpf-label\">Username:<\/label><\/th><\/tr><tr class=\"wpf-table-placeholder\"><td class=\"wpf-table-placeholder-input\"><input class=\"regular-text text_input\" name=\"username\" value=\"\" type=\"text\"\/><\/td><\/tr><tr class=\"wpf-table-placeholder\"><th class=\"wpf-table-placeholder-input\"><label class=\"wpf-label\">Password:<\/label><\/th><\/tr><tr class=\"wpf-table-placeholder\"><td class=\"wpf-table-placeholder-input\"><input class=\"regular-text text_input\" name=\"password\" value=\"\" type=\"password\"\/><\/td><\/tr><\/tbody><\/table><p class=\"wpf-table-placeholder submit\"><button class=\"wp_plugin_framework_ajax_button\" type=\"button\" style=\"background-color:#4D90FE;;color:#ffffff;;border:1px solid #3079ed;\" name=\"_event\" value=\"ButtonLogin\">Log in<\/button><\/p><\/td><td class=\"wpf-table-placeholder-input\"><\/td><\/tr><\/tbody><\/table><\/form><div id=\"ButtonStartRegister\"><a href=\"https:\/\/egonlin.com\/wp-login.php?action=register\">Register<\/a><\/div><div id=\"Link1\"><a href=\"https:\/\/egonlin.com\/wp-login.php?action=lostpassword\">Forgotten username or password?<\/a><\/div><div id=\"StatusBarFooter\"><\/div><\/div><\/div><div id=aru_remaining_content><\/div>","protected":false},"excerpt":{"rendered":"<p>\u4e00\u3001rsync\u4ecb\u7ecd 1.1 \u5b89\u88c5\u4e0e\u4ecb\u7ecd [root@web02 ~]# rpm -qa |grep rsync [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":287,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[21,19,22,57,20],"_links":{"self":[{"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/posts\/282"}],"collection":[{"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=282"}],"version-history":[{"count":23,"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/posts\/282\/revisions"}],"predecessor-version":[{"id":10903,"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/posts\/282\/revisions\/10903"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/media\/287"}],"wp:attachment":[{"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=282"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=282"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=282"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}