165 lines
No EOL
14 KiB
HTML
165 lines
No EOL
14 KiB
HTML
<!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"> </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> -a 以archive模式操作、复制目录、符号连接 相当于-rlptgoD</p><p> rsync中的参数</p><p> -r 是递归 </p><p> -l 是链接文件,意思是拷贝链接文件;</p><p> -p 表示保持文件原有权限;</p><p> -t 保持文件原有时间;</p><p> -g 保持文件原有用户组;</p><p> -o 保持文件原有属主;</p><p> -D 相当于块设备文件;</p><p> -z 传输时压缩;</p><p> -P 传输进度;</p><p> -v 传输时的进度等信息,和-P有点关系,自己试试。可以看文档;</p><p> -e ssh的参数建立起加密的连接。</p><p> -u只进行更新,防止本地新文件被重写,注意两者机器的时钟的同时</p><p> --progress是指显示出详细的进度情况</p><p> --delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致</p><p> --password-file=/password/path/file来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。</p><p> <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"> </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"> </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/ 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 = 1501</span></p><p><span lang="EN-US">gid = 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 = 172.16.0.101,172.26.0.100 </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"> </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"> </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 </span>改为<span lang="EN-US"> no</span></p><p><span lang="EN-US">disable = no</span></p><p><span lang="EN-US">flags = IPv6</span></p><p><span lang="EN-US">socket_type = stream</span></p><p><span lang="EN-US">wait = no</span></p><p><span lang="EN-US">user = root</span></p><p><span lang="EN-US">server = /usr/bin/rsync</span></p><p><span lang="EN-US">server_args = --daemon</span></p><p><span lang="EN-US">log_on_failure += USERID</span></p><p><span lang="EN-US">}</span></p><p><span lang="EN-US"> </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"> </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 </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"> </span></p><ol start="3"><li>系统执行过<span lang="EN-US">setup</span>脚本,默认是限制远程访问,这里需要开放客户端(同步端)的地址</li></ol><p><span lang="EN-US">#cat >> /etc/hosts.allow <<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"> </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" >>$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 --password-file=/etc/rsyncd.pwd_project rsync@172.16.0.100::tomcat_project /opt/appl/project >>$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"> </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"> </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 &</span></p><p><span lang="EN-US">##</span>执行后检查<span lang="EN-US">/opt/appl </span>目录下是否已经有<span lang="EN-US">project</span>同步过来,如果没有查看<span lang="EN-US">nohup.out</span>定位错误</p><p><span lang="EN-US"> </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"> * * * /opt/appl/assist/rsync/rsync-172.16.0.100_project.sh > /dev/null 2>&1</span></p></div>
|
||
</div>
|
||
|
||
<!-- 该js供其它处理 -->
|
||
<script src="../leanote-html.js"></script>
|
||
</body>
|
||
</html> |