Docs/工作-盒子/双机同步任务操作步骤.html
2022-10-18 16:59:37 +08:00

165 lines
No EOL
14 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="tool" content="leanote-desktop-app">
<title>双机同步任务操作步骤</title>
<style>
*{font-family:"lucida grande","lucida sans unicode",lucida,helvetica,"Hiragino Sans GB","Microsoft YaHei","WenQuanYi Micro Hei",sans-serif;}
body {
margin: 0;
}
/*公用文字样式*/
h1{font-size:30px}h2{font-size:24px}h3{font-size:18px}h4{font-size:14px}
.note-container{
width:850px;
margin:auto;
padding: 10px 20px;
box-shadow: 1px 1px 10px #eee;
}
#title {
margin: 0;
}
table {
margin-bottom: 16px;
border-collapse: collapse;
}
table th, table td {
padding: 6px 13px;
border: 1px solid #ddd;
}
table th {
font-weight: bold;
}
table tr {
background-color: none;
border-top: 1px solid #ccc;
}
table tr:nth-child(2n) {
background-color: rgb(247, 247, 249);
}
.mce-item-table, .mce-item-table td, .mce-item-table th, .mce-item-table caption {
border: 1px solid #ddd;
border-collapse: collapse;
padding: 6px 13px;
}
blockquote {
border-left-width:10px;
background-color:rgba(128,128,128,0.05);
border-top-right-radius:5px;
border-bottom-right-radius:5px;
padding:15px 20px;
border-left:5px solid rgba(128,128,128,0.075);
}
blockquote p {
margin-bottom:1.1em;
font-size:1em;
line-height:1.45
}
blockquote ul:last-child,blockquote ol:last-child {
margin-bottom:0
}
pre {
padding: 18px;
background-color: #f7f7f9;
border: 1px solid #e1e1e8;
border-radius: 3px;
display: block;
}
code {
padding: 2px 4px;
font-size: 90%;
color: #c7254e;
white-space: nowrap;
background-color: #f9f2f4;
border-radius: 4px;
}
.footnote {
vertical-align: top;
position: relative;
top: -0.5em;
font-size: .8em;
}
hr {
margin:2em 0
}
img {
max-width:100%
}
pre {
word-break:break-word
}
p,pre,pre.prettyprint,blockquote {
margin:0 0 1.1em
}
hr {
margin:2em 0
}
img {
max-width:100%
}
.sequence-diagram,.flow-chart {
text-align:center;
margin-bottom:1.1em
}
.sequence-diagram text,.flow-chart text {
font-size:15px !important;
font-family:"Source Sans Pro",sans-serif !important
}
.sequence-diagram [fill="#ffffff"],.flow-chart [fill="#ffffff"] {
fill:#f6f6f6
}
.sequence-diagram [stroke="#000000"],.flow-chart [stroke="#000000"] {
stroke:#3f3f3f
}
.sequence-diagram text[stroke="#000000"],.flow-chart text[stroke="#000000"] {
stroke:none
}
.sequence-diagram [fill="#000"],.flow-chart [fill="#000"],.sequence-diagram [fill="#000000"],.flow-chart [fill="#000000"],.sequence-diagram [fill="black"],.flow-chart [fill="black"] {
fill:#3f3f3f
}
ul,ol {
margin-bottom:1.1em
}
ul ul,ol ul,ul ol,ol ol {
margin-bottom:1.1em
}
kbd {
padding:.1em .6em;
border:1px solid rgba(63,63,63,0.25);
-webkit-box-shadow:0 1px 0 rgba(63,63,63,0.25);
box-shadow:0 1px 0 rgba(63,63,63,0.25);
font-size:.7em;
font-family:sans-serif;
background-color:#fff;
color:#333;
border-radius:3px;
display:inline-block;
margin:0 .1em;
white-space:nowrap
}
.toc ul {
list-style-type:none;
margin-bottom:15px
}
</style>
<!-- 该css供自定义样式 -->
<link href="../leanote-html.css" rel="stylesheet">
</head>
<body>
<div class="note-container">
<h1 class="title" id="leanote-title">双机同步任务操作步骤</h1>
<div class="content-html" id="leanote-content"><p>注:红色为注释说明的内容,绿色为示例内容,请以项目实际情况修改操作</p><p><span lang="EN-US">&nbsp;</span></p><p>rsync有六种不同的工作模式</p><p>  1. 拷贝本地文件当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。<br>  2.使用一个远程shell程序如rsh、ssh来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式。<br>  3.使用一个远程shell程序如rsh、ssh来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时启动该模式。<br>  4. 从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。<br>  5. 从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。<br>  6. 列远程机的文件列表。这类似于rsync传输不过只要在命令中省略掉本地机信息即可。<br>  </p><p>&nbsp;&nbsp;&nbsp;&nbsp;-a 以archive模式操作、复制目录、符号连接 相当于-rlptgoD</p><p>&nbsp;&nbsp;&nbsp;&nbsp;rsync中的参数</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-r 是递归&nbsp;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-l 是链接文件,意思是拷贝链接文件;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-p 表示保持文件原有权限;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-t 保持文件原有时间;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-g 保持文件原有用户组;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-o 保持文件原有属主;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-D 相当于块设备文件;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;-z 传输时压缩;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;-P 传输进度;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;-v 传输时的进度等信息,和-P有点关系自己试试。可以看文档</p><p>&nbsp;&nbsp;&nbsp;&nbsp;-e ssh的参数建立起加密的连接。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;-u只进行更新防止本地新文件被重写注意两者机器的时钟的同时</p><p>&nbsp;&nbsp;&nbsp;&nbsp;--progress是指显示出详细的进度情况</p><p>&nbsp;&nbsp;&nbsp;&nbsp;--delete是指如果服务器端删除了这一文件那么客户端也相应把文件删除保持真正的一致</p><p>&nbsp;&nbsp;&nbsp;&nbsp;--password-file=/password/path/file来指定密码文件这样就可以在脚本中使用而无需交互式地输入验证密码了这里需要注意的是这份密码文件权限属性要设得只有属主可读。</p><p>&nbsp;<br></p><ol><li><strong>安装或更新相关软件包</strong></li></ol><p><span lang="EN-US">#yum install rsync xinetd y</span></p><p><span lang="EN-US">&nbsp;</span></p><ol start="2"><li><strong>配置<span lang="EN-US">rsync</span></strong><strong>服务端<span lang="EN-US">(</span></strong><strong>提供文件同步的服务器<span lang="EN-US">)</span></strong><strong>,制定提供同步的应用条目信息</strong></li></ol><p><strong><span lang="EN-US">&nbsp;</span></strong></p><ol><li>配置文件实例如下</li></ol><p><span lang="EN-US">#cat /etc/rsyncd.conf</span></p><p><span lang="EN-US">uid = root</span></p><p><span lang="EN-US">gid = root</span></p><p><span lang="EN-US">use chroot = no</span></p><p><span lang="EN-US">max connections = 100</span></p><p><span lang="EN-US">timeout = 600</span></p><p><span lang="EN-US">pid file = /var/run/rsyncd.pid</span></p><p><span lang="EN-US">lock file = /var/run/rsyncd.lock</span></p><p><span lang="EN-US">log file = /var/log/rsyncd.log</span></p><p><span lang="EN-US">##</span>以上为全局配置,下面为一个条目,可根据需求添加多个条目</p><p><span lang="EN-US">[tomcat_project]</span></p><p><span lang="EN-US">path = /opt/appl/&nbsp;project/</span></p><p><span lang="EN-US">##</span>应用用户组<span lang="EN-US">id,</span>和用户<span lang="EN-US">id</span></p><p><span lang="EN-US">uid =&nbsp;1501</span></p><p><span lang="EN-US">gid =&nbsp;1500</span></p><p><span lang="EN-US">read only = yes</span></p><p><span lang="EN-US">list = yes</span></p><p><span lang="EN-US">##</span>允许使用该条目进行同步的主机地址,加入备机和预生产主机地址</p><p><span lang="EN-US">hosts allow =&nbsp;172.16.0.101,172.26.0.100&nbsp;&nbsp;</span></p><p><span lang="EN-US">auth users = rsync</span></p><p><span lang="EN-US">secrets file = /etc/rsyncd.pwd</span></p><p><span lang="EN-US">&nbsp;</span></p><ol start="2"><li>增加<span lang="EN-US">Rsync</span>同步认证文件</li></ol><p><span lang="EN-US">#cat /etc/rsyncd.pwd</span></p><p><span lang="EN-US">rsync:123456</span></p><p><span lang="EN-US">&nbsp;</span></p><ol start="3"><li>配置服务启动管理项</li></ol><p><span lang="EN-US">##cat /etc/xinetd.d/rsync</span></p><p><span lang="EN-US">service rsync</span></p><p><span lang="EN-US">{</span></p><p><span lang="EN-US">##</span>把这里的<span lang="EN-US">yes&nbsp;</span>改为<span lang="EN-US">&nbsp;no</span></p><p><span lang="EN-US">disable =&nbsp;no</span></p><p><span lang="EN-US">flags&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = IPv6</span></p><p><span lang="EN-US">socket_type&nbsp;&nbsp;&nbsp;&nbsp; = stream</span></p><p><span lang="EN-US">wait&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = no</span></p><p><span lang="EN-US">user&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = root</span></p><p><span lang="EN-US">server&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = /usr/bin/rsync</span></p><p><span lang="EN-US">server_args&nbsp;&nbsp;&nbsp;&nbsp; = --daemon</span></p><p><span lang="EN-US">log_on_failure&nbsp; += USERID</span></p><p><span lang="EN-US">}</span></p><p><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></p><p><span lang="EN-US">##</span>启动<span lang="EN-US">rsync</span>服务</p><p><span lang="EN-US">#service xinetd start</span></p><p><span lang="EN-US">##</span>验证是否启动成功</p><p><span lang="EN-US">#netstat anptl | grep 873</span></p><p><span lang="EN-US">&nbsp;</span></p><ol start="4"><li>防火墙放行<span lang="EN-US">rsync</span>服务端口</li></ol><p><span lang="EN-US">-A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT&nbsp;</span></p><p><span lang="EN-US">##</span><span lang="EN-US">/etc/sysconfig/iptables</span>加入以上行</p><p><span lang="EN-US">#service iptables restart</span></p><p><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></p><ol start="3"><li>系统执行过<span lang="EN-US">setup</span>脚本,默认是限制远程访问,这里需要开放客户端(同步端)的地址</li></ol><p><span lang="EN-US">#cat &gt;&gt; /etc/hosts.allow &lt;&lt;EOF</span></p><p><span lang="EN-US">##</span>这里的地址是同步端的</p><p><span lang="EN-US">rsync:172.16.0.101:allow</span></p><p><span lang="EN-US">EOF</span></p><p><span lang="EN-US">&nbsp;</span></p><ol start="4"><li>客户端(同步端)配置</li><li>创建同步脚本放置目录</li></ol><p><span lang="EN-US">#mkdir -p /opt/appl/assist/rsync</span></p><ol start="2"><li>创建脚本生成日志文件的放置目录</li></ol><p><span lang="EN-US">#mkdir p /var/log/rsync</span></p><ol start="3"><li>在脚本放置目录下创建如下脚本</li></ol><p><span lang="EN-US">#cat rsync-172.16.0.100_project.sh</span></p><p><span lang="EN-US">#!/bin/sh</span></p><p><span lang="EN-US">LOG_FILE=/var/log/rsync/rsync_172.16.0.100_project_$(date +%Y-%m-%d)</span></p><p><span lang="EN-US">loginfo()</span></p><p><span lang="EN-US">{</span></p><p><span lang="EN-US">echo "$(date "+%Y-%m-%d_%H:%M") [ANIHC SAYS] $1" &gt;&gt;$LOG_FILE</span></p><p><span lang="EN-US">}</span></p><p><span lang="EN-US">##For project</span></p><p><span lang="EN-US">loginfo "==========Synchronizing=========="</span></p><p><span lang="EN-US">loginfo "Source directory project..."</span></p><p><span lang="EN-US">loginfo "Destination directory is /opt/appl/project"</span></p><p><span lang="EN-US">/usr/bin/rsync -arP --delete --exclude-from=/opt/appl/assist/rsync/exclude_list_project&nbsp; --password-file=/etc/rsyncd.pwd_project&nbsp;rsync@172.16.0.100::tomcat_project&nbsp;/opt/appl/project&nbsp;&gt;&gt;$LOG_FILE</span></p><p><span lang="EN-US">loginfo "==========Synchronization done.=========="</span></p><ol start="4"><li>创建<span lang="EN-US">rsync</span>用户认证文件</li></ol><p><span lang="EN-US">#cat /etc/rsyncd.pwd_project</span></p><p><span lang="EN-US">##</span>这里的密码和服务端的<span lang="EN-US">/etc/rsyncd.pwd</span>中的密码一样</p><p><span lang="EN-US">123456</span></p><p><span lang="EN-US">&nbsp;</span></p><ol start="5"><li>创建同步排除文件</li></ol><p><span lang="EN-US">##cat /opt/appl/assist/rsync/exclude_list_project</span></p><p><span lang="EN-US">*.gz</span></p><p><span lang="EN-US">*.tgz</span></p><p><span lang="EN-US">*.zip</span></p><p><span lang="EN-US">*.log</span></p><p><span lang="EN-US">*.out</span></p><p><span lang="EN-US">*.bak</span></p><p><span lang="EN-US">*.tmp</span></p><p><span lang="EN-US">log/*</span></p><p><span lang="EN-US">logs/*</span></p><p><span lang="EN-US">tmp/*</span></p><p><span lang="EN-US">temp/*</span></p><p><span lang="EN-US">##</span>以上均为常规性同步排除,可以添加指定行排除文件</p><p><span lang="EN-US">&nbsp;</span></p><ol start="6"><li>测试脚本是否可以成功同步</li></ol><p><span lang="EN-US">#cd /opt/appl/assist/rsync</span></p><p><span lang="EN-US">##</span>后台执行脚本,并重定向输出到<span lang="EN-US">nohup.out</span>文件</p><p><span lang="EN-US">#nohup ./ rsync-172.16.0.100_project.sh &amp;</span></p><p><span lang="EN-US">##</span>执行后检查<span lang="EN-US">/opt/appl&nbsp;</span>目录下是否已经有<span lang="EN-US">project</span>同步过来,如果没有查看<span lang="EN-US">nohup.out</span>定位错误</p><p><span lang="EN-US">&nbsp;</span></p><ol start="7"><li>如果脚本执行成功,添加定时任务</li></ol><p><span lang="EN-US">#crontab l</span></p><p><span lang="EN-US">00 01</span><span lang="EN-US">&nbsp;* * * /opt/appl/assist/rsync/rsync-172.16.0.100_project.sh &gt; /dev/null 2&gt;&amp;1</span></p></div>
</div>
<!-- 该js供其它处理 -->
<script src="../leanote-html.js"></script>
</body>
</html>