<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[运维进行时]]></title> 
<link>https://blog.liuts.com/index.php</link> 
<description><![CDATA[互联网运维与架构]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[运维进行时]]></copyright>
<item>
<link>https://blog.liuts.com/post/210/</link>
<title><![CDATA[SDR1.0(SHELL+Dialog+RSA)Linux主机管理[原创]]]></title> 
<author>刘天斯 &lt;liutiansi@gmail.com&gt;</author>
<category><![CDATA[SHELL]]></category>
<pubDate>Mon, 02 Aug 2010 03:27:37 +0000</pubDate> 
<guid>https://blog.liuts.com/post/210/</guid> 
<description>
<![CDATA[ 
	<strong>前言</strong><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;07年上线的一个Linux集中式管理，基于bash shell+Dialog+mysql+python+mod_perl来实现，现在共享出来，希望平台的思想及实现方法能够给大家一些帮助，以下为系统的说明文档。<br/><br/><strong>一、开发目的</strong><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 为了使管理Linux服务器群变得更安全、简单、高效、智能。一定程度上缩小了维护成本，提高工作效率，做好应付将来管理上千台Linux服务器打好基础。<br/><br/><strong>二、背景</strong><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 目前管理Linux服务器的方式还是走SSH到终端的管理方式，此方式存在一定的全安隐患。管理这些服务器的passwd就很头疼，稍微不注意，passwd会被黑客获取，造成灾难性的后果。管理应用方面，同样也是通过管理员电脑到每台服务器去操作，同样的一个操作就得到每台服务器上面重复地去做，消耗了很多时间与精力。在服务器性能监控方面，目前在应用Cacti、nagios平台，全此方式让管理员很被动，一般都是等到故障发生了才发现问题，影响了用户体验。主要原因是不能提前了解到服务器的健康状态。没有实时的跟踪、报警、分析机制。以后服务器会翻倍地增加，目前这种管理方式很明显已经不适应发展的需求。<br/><br/><strong>三、系统特点</strong><br/><span style="color: #008000;">安全性</span>-管理系统具有很好的安全性，通过2048位RSA密钥进行监控服务器与被监控服务器的认证，可以省去输入繁琐和易泄露的密码。系统管理员只要对主监控服务器做好安全配置并保管好私钥即可，被监控服务器外网远程终端默认将会被关闭，系统会定期扫描被监控服务器内/外网安全情况，生成分析结果给管理员。系统管理员可以定期更换公钥、私钥来提高安全系数。登录监控平台需要密码(perl pack加密)认证，每个操作窗口都加入会话认证，整个系统编译后的文件都是以二进制方式存放。<br/><br/><span style="color: #008000;">智能化</span>-监控服务器会根据被监控服务器上的应用部署相应的代理客户端，由代理客户端来检查、监控、分析本服务器的状态，分析结果将通过邮件、WEB、短信通知给系统管理员。让管理员不间隔了解到服务器的状态信息，代理客户端同时也具备管理本服务器应用的权力，当应用发生故障时它会自我修复并通知管理员。<br/><br/><span style="color: #008000;">易用性</span>-系统是基于Linux shell模式下的对话框展示，中文环境，同时也支持鼠标操作，功能清晰明了，操作时系统也会提示相应的文字提示，非常简单。<br/><br/><span style="color: #008000;">高效率</span>-新上架的服务器只要进行如下三步即可上线提供服务，即添加服务器->初始化->部署应用。如果要在多台服务器上进行一样的操作，只要选择好操作事件跟操作对象就可以了。<br/><br/><span style="color: #008000;">灵活性</span>-升级被监控服务器上的对象很方便，只要在监控服务器上更新好相应对象代码，系统会自动到被监控服务器上去更新它们。<br/><br/><span style="color: #008000;">可扩展性</span>-系统提供的高级应用功能，其它同事也可以编写自己的模块，根据不同应用可以定制不同的功能模块，系统提供这样的接口。<br/><br/><strong>4、系统网络架构图</strong><br/><a href="https://blog.liuts.com/attachment.php?fid=152" target="_blank"><img src="https://blog.liuts.com/attachment.php?fid=152" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/><strong>5、系统流程图</strong><br/><a href="https://blog.liuts.com/attachment.php?fid=155" target="_blank"><img src="https://blog.liuts.com/attachment.php?fid=155" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/><strong>6、系统主界面</strong><br/><a href="https://blog.liuts.com/attachment.php?fid=154" target="_blank"><img src="https://blog.liuts.com/attachment.php?fid=154" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/><strong>四、系统主要功能</strong><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SDR1.0是基于Linux bash shell+mysql+python+mod_perl工具开发，功能覆盖了Linux常用常用操作，下面详细介绍系统主要功能：<br/>1、系统目录结构<br/>/<br/>│&nbsp;&nbsp;add_firewall&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;添加防火墙<br/>│&nbsp;&nbsp;add_server&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;添加服务器<br/>│&nbsp;&nbsp;add_app&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;部署应用<br/>│&nbsp;&nbsp;add_agent&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;部署代理<br/>│&nbsp;&nbsp;authorized_keys&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;公钥<br/>│&nbsp;&nbsp;checkonline&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;登录验证<br/>│&nbsp;&nbsp;config&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;配制文件<br/>│&nbsp;&nbsp;c_server_class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;多选服务器列表<br/>│&nbsp;&nbsp;go&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;登录<br/>│&nbsp;&nbsp;identity&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;私钥<br/>│&nbsp;&nbsp;list_server_do&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;选择服务器<br/>│&nbsp;&nbsp;list_server_info&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;服务器信息<br/>│&nbsp;&nbsp;main&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;功能选择<br/>│&nbsp;&nbsp;msgbox&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;提示信息<br/>│&nbsp;&nbsp;r_server_class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;单选服务器<br/>├─tyapp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;应用安装脚本<br/>│<br/>├─bin<br/>│&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nohup.out&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmpfile<br/>│&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;syslog2mysql.sh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;syslogs to mysql shell<br/>│&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TyserverScan&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;服务器端口扫描(外网)<br/>│<br/>├─cron<br/>│&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TyserverwebScan&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;验证WEB状态主程序<br/>│<br/>├─document<br/>│&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.txt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;开发文档<br/>│<br/>├─key<br/>│&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;identitybak&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;old key<br/>│<br/>├─logs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;系统操作日志目录<br/>├─tyagent&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;代理程序目录<br/>└─tysysadmin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;前端cgi-bin目录<br/>&nbsp;&nbsp;&nbsp;&nbsp;├─cgi-bin<br/>&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;config.pl<br/>&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index.cgi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;模块入口程序<br/>&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sendmail.cgi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;邮件报警接口<br/>&nbsp;&nbsp;&nbsp;&nbsp;│<br/>&nbsp;&nbsp;&nbsp;&nbsp;├─css<br/>&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;style.CSS<br/>&nbsp;&nbsp;&nbsp;&nbsp;│<br/>&nbsp;&nbsp;&nbsp;&nbsp;├─js<br/>&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;copyright.js<br/>&nbsp;&nbsp;&nbsp;&nbsp;│<br/>&nbsp;&nbsp;&nbsp;&nbsp;└─modules<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─Apache<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ServerLoglist.pm&nbsp;&nbsp;服务器日志列表<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ServerScanport.pm&nbsp;&nbsp;服务器端口扫描<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ServerScanweb.pm&nbsp;&nbsp;服务器状态扫描<br/><br/><strong>五、功能介绍</strong><br/><span style="color: #00008B;">5.1服务器列表</span><br/>[功能]列表显示已添加至系统的服务器及其状态。<br/>[操作方法]选择添加服务器->选择服务器分类->列表出此类别服务器信息，包括LAN IP、WAN IP、日志客户端、SSH终端、防火墙、部署代理等等信息。<br/><br/><span style="color: #00008B;">5.2添加服务器</span><br/>[功能]添加服务器到系统。<br/>[操作方法]选择添加服务器->选择服务器分类->输入服务器名称、内网IP、外网IP，上下方向键切换输入框，这几项都不允许为空，输入完毕后点[Add]。<br/><br/><span style="color: #00008B;">5.3安全检测</span><br/>[功能]扫描服务器内网端口开放情况。<br/>[操作方法]选择安全检测->选择服务器分类->选择服务器->显示扫描进度条并将结果写入数据库。<br/><span style="color: #00008B;">5.4部署代理</span><br/>[功能]给服务器部署代理。<br/>[操作方法]选择部署代理->选择服务器分类->选择服务器->选择代理类型->[OK]。<br/><br/><span style="color: #00008B;">5.5连接状态</span><br/>[功能]查看已添加的被监控服务器与主监控服务器的连接状态，在做其它操作之前查看此项是一个好习惯。<br/>[操作方法]选择连接状态->显示探测进度条->生成结果。<br/><br/><span style="color: #00008B;">5.6更换证书</span><br/>[功能]更新主、被监控服务器的私、公钥，为了保障整个安全，定期更换证书是很有必要的。<br/>[操作方法]选择更换证->显示探测进度条。<br/><br/><span style="color: #00008B;">5.7管理终端</span><br/>[功能]开/关远程访问被监控服务器SSH终端。<br/>[操作方法] 选择管理终终->选择服务器分类->选择服务器->（开/关）->[OK]。<br/><br/><span style="color: #00008B;">5.8操作日志</span><br/>[功能]查看系统操作日志，方便查看历史操作记录。<br/>[操作方法]选择操作日志->选择日期(TAB切换年/月/日，方向键选择日)->显示操作日志记录。<br/><br/><span style="color: #00008B;">5.9部署日志</span><br/>[功能]添加被监控服务器系统日志到日志服务器，实时观察其状态。<br/>[操作方法] 选择部署日志->选择服务器分类->选择服务器(显示未添加的服务器列表) ->[OK]。<br/><br/><span style="color: #00008B;">6.0部署应用</span><br/>[功能]给服务器部署应用。<br/>[操作方法]选择部署应用->选择服务器分类->选择服务器->选择应用类型->[OK]。<br/><br/><span style="color: #00008B;">6.1部署防火墙</span><br/>[功能]给服务器部署防火墙(Firewall)。<br/>[操作方法]选择部署应用->选择服务器分类->选择服务器->选择防火墙类型->[OK]。<br/><br/><span style="color: #00008B;">6.2初始化</span><br/>[功能]初始化服务器，优化系统内核、删除无用用户、停止无用服务等等。<br/>[操作方法]选择初始化->选择服务器分类->选择服务器-> [OK]。<br/><br/><span style="color: #00008B;">6.3高级应用</span><br/>[功能]本系统扩展的一个接口。<br/>[操作方法]选择高级应用->进入命令行状态->运行相应接口(参数)。<br/><br/><span style="color: #00008B;">6.4用户管理</span><br/>[功能]本系统用户帐号管理。<br/>[操作方法]选择用户管理->开发中…。<br/><br/><span style="color: #00008B;">6.5退出文字</span><br/>[功能]退出本系统。<br/>[操作方法]选择退出->操作结束。<br/><br/><strong>六、截图说明</strong><br/><a href="https://blog.liuts.com/attachment.php?fid=151" target="_blank"><img src="https://blog.liuts.com/attachment.php?fid=151" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="800"/></a><br/>[应用分类]<br/><br/><a href="https://blog.liuts.com/attachment.php?fid=150" target="_blank"><img src="https://blog.liuts.com/attachment.php?fid=150" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="800"/></a><br/>[服务器清单]<br/><br/><a href="https://blog.liuts.com/attachment.php?fid=149" target="_blank"><img src="https://blog.liuts.com/attachment.php?fid=149" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="800"/></a><br/>[添加服务器]<br/><br/><a href="https://blog.liuts.com/attachment.php?fid=145" target="_blank"><img src="https://blog.liuts.com/attachment.php?fid=145" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="800"/></a><br/>[安装应用平台]<br/><br/><a href="https://blog.liuts.com/attachment.php?fid=146" target="_blank"><img src="https://blog.liuts.com/attachment.php?fid=146" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="800"/></a><br/>[操作日志]<br/><br/><a href="https://blog.liuts.com/attachment.php?fid=147" target="_blank"><img src="https://blog.liuts.com/attachment.php?fid=147" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="800"/></a><br/>[安装功能代理]<br/><br/><a href="https://blog.liuts.com/attachment.php?fid=148" target="_blank"><img src="https://blog.liuts.com/attachment.php?fid=148" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="800"/></a><br/>[安全扫描]<br/><br/><strong>七、使用指南</strong><br/>1、通过ssh登录监控管理器。<br/>2、[root@sysadmin ~]#go<br/>3、输入管理员密码：<br/>4、验证通过进入管理窗口。<br/><br/><strong>八、前端应用</strong><br/>1、定制作业<br/><textarea name="code" class="c" rows="15" cols="100">
* */1 * * * /var/www/tyAdmin/cron/TyserverwebScan
30 0 * * * /var/www/tyAdmin/cron/TyserverScan
</textarea><br/>2、配置<br/>将ServerLoglist.pm、ServerScanport.pm、ServerScanweb.pm复制到/opt/apache/perl/modules/Apache目录<br/>#vi httpd.conf<br/><textarea name="code" class="c" rows="15" cols="100">
<VirtualHost 192.168.100.10:80>
 ServerName cgi.sina.com.cn
 ServerAdmin liutiansi@gmail.com
 ErrorLog /var/log/apache/cgi.sina.com.cn/error.log
 CustomLog /var/log/apache/cgi.sina.com.cn/access.log combined
 DocumentRoot /var/www/tysysadmin
 ScriptAlias /cgi-bin/ "/var/www/tysysadmin/cgi-bin/"

 <Directory "/var/www/tysysadmin/cgi-bin">
&nbsp;&nbsp;SetHandler perl-script
&nbsp;&nbsp;PerlResponseHandler ModPerl::Registry
&nbsp;&nbsp;PerlOptions +ParseHeaders
&nbsp;&nbsp;PerlSendHeader On
&nbsp;&nbsp;Options +ExecCGI
&nbsp;&nbsp;Order Deny,Allow
&nbsp;&nbsp;Deny from all
&nbsp;&nbsp;Allow from 192.168.100.0/255.255.255.0
 </Directory>

 <Directory "/opt/apache/perl/modules/Apache">
&nbsp;&nbsp;Order Deny,Allow
&nbsp;&nbsp;Deny from all
&nbsp;&nbsp;Allow from 192.168.100.0/255.255.255.0
 </Directory>

PerlRequire /var/www/tysysadmin/cgi-bin/index.cgi
 <Location /ServerLoglist>
&nbsp;&nbsp;SetHandler perl-script
&nbsp;&nbsp;PerlHandler Apache::ServerLoglist
 </Location>

 <Location /ServerScanport>
&nbsp;&nbsp;SetHandler perl-script
&nbsp;&nbsp;PerlHandler Apache::ServerScanport
 </Location>

 <Location /ServerScanweb>
&nbsp;&nbsp;SetHandler perl-script
&nbsp;&nbsp;PerlHandler Apache::ServerScanweb
 </Location>
</VirtualHost>
</textarea><br/><br/>3、服务器日志时时跟踪<br/>http://192.168.100.10/ServerLoglist<br/><br/>4、服务器端口扫描<br/>http://192.168.100.10/ServerScanport<br/><br/>5、服务器WEB状态监控<br/>http://192.168.100.10/ServerScanweb<br/><br/><strong>九、安装</strong><br/>yum -y install dialog<br/>1、tar -zxvf SDR1.0.tar.gz<br/>2、cd SDR1.0<br/>3、vi config 修改成实际参数<br/><textarea name="code" class="c" rows="15" cols="100">
sysadmin_path="/home/SDR1.0"
mysql_bin="/usr/local/mysql/bin/mysql"&nbsp;&nbsp;&nbsp;&nbsp; #mysql客户端连接器位置
mysql_host="localhost"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#数据库主机
mysql_user="systemuser"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #数据库帐号
mysql_passwd="123456"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #数据库密码
scan_port="U:53,161,T:21-25,80,81,3306,8080"&nbsp;&nbsp;&nbsp;&nbsp;#安全扫描端口
ConnectTimeout="5"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#连接远程服务器outime
system_info="天涯Linux服务器管理系统SDR1.0"
copyright_info="&#92;Zb&#92;Z7天涯在线网络有限公司 网络系统部&nbsp;&nbsp; 作者：刘天斯&nbsp;&nbsp;&nbsp;&nbsp;邮箱：lliutiansi@gmail.com"
</textarea><br/><br/>4、创建Mysql数据库"sysadmin"，并导入SDR1.0/sql/sysadmin.sql<br/>5、修改系统环境<br/>&nbsp;&nbsp;5.1环境变量：vi /etc/profile<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content"><br/>export PATH=$PATH:/usr/local/bin:/home/SDR1.0<br/></div></div><br/>&nbsp;&nbsp;5.2配置ssh链接<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content"><br/>ln -s /usr/bin/ssh /usr/bin/sshto<br/></div></div><br/>&nbsp;&nbsp;5.3、修改mysql客户端编码<br/>&nbsp;&nbsp;vi /etc/my.cnf<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content"><br/>[client]<br/> default-character-set=utf8<br/></div></div><br/><br/>6、安装nmap<br/>yum -y install nmap<br/><br/>7、生成公私钥<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content"><br/>#cd /home/SDR1.0<br/>删除原公私钥<br/>#rm -rf authorized_keys identity<br/>#ssh-keygen -t dsa -b 2048 -f identity<br/>#mv identity.pub authorized_keys<br/>#chmod 600 identity authorized_keys<br/></div></div><br/>8、因修改了环境变量，退出终端exit再登录操作系统，进入/home/SDR1.0，运行"go"，默认密码为“123456”。OVER：）<br/><br/><strong>十、开发变量说明</strong><br/><textarea name="code" class="c" rows="15" cols="100">
1、go[$go_encrypt][服务器加密后的密码][全局]
2、go[$outmessage][密码不正确提示变量][全局(关闭窗口后失效)]
3、checkonline[$outmessage][检查是否登录][全局]
4、当前进程PID：main[$main_pid][登录进程号][全局]
5、选择当前功能值：main[$main_value][功能ID号][全局]
6、选择当前服务器类别值：c_server_class[$server_class_value][服务器列表][全局]
7、选择当前服务器类别值：r_server_class[$server_class_value][服务器列表][全局]
8、选择当前服务器值：$server_value [服务器内网IP][全局]
＃------------------------------------------------------------
*全局:对下级窗口有效，生命期为主窗口关闭。
</textarea><br/><strong>十一、处理模块代码</strong><br/><textarea name="code" class="c" rows="15" cols="100">
#!/bin/sh
#Function:select checklist server
#Writer:liutiansi
#Mail:lliutiansi@gmail.com
#Date:2007-11-03 23:57
source config
source checkonline

list_server_do_tempfile=`list_server_do_tempfile 2>/dev/null` &#124;&#124; list_server_do_tempfile=/tmp/server$main_pid
trap "rm -f $list_server_do_tempfile /tmp/add_firewall$main_pid /tmp/add_agent$main_pid /tmp/add_app$main_pid" 0 1 2 5 15
#过滤服务器列表
case $main_value in
&nbsp;&nbsp;9)
&nbsp;&nbsp;&nbsp;&nbsp;sqltj=" and TOLOG='N'"
&nbsp;&nbsp;&nbsp;&nbsp;;;
&nbsp;&nbsp;16)
&nbsp;&nbsp;&nbsp;&nbsp;sqltj=" and TOFIREWALL='N'"
&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
esac
list_server_do_result=`$mysql_bin -h $mysql_host -u$mysql_user -p$mysql_passwd -e "select SERVER,SERVERIP,SERVERNAME,TOLOG,TOLD,TOFIREWALL from sysadmin.ty_server where SERVERCLASS='$server_class_value'$sqltj order by SERVER;" &#124; awk 'NR>1 &#123;print NR,$0&#125;'&#124;awk '&#123;print $2" "$3"　日志["$5"]　终端["$6"]　防火墙["$7"] "$4&#125;'`
list_server_do_result1=`$mysql_bin -h $mysql_host -u$mysql_user -p$mysql_passwd -e "select SERVICENAME from sysadmin.ty_system_service where ID='$main_value';" &#124; awk 'NR>1 &#123;print NR,$0&#125;'&#124;awk '&#123;print $2&#125;'`"->"
returncode=0
while test $returncode != 1 && test $returncode != 250
do
&nbsp;&nbsp;exec 3>&1
&nbsp;&nbsp;dialog --clear --colors --backtitle "$copyright_info" --title "$system_info" &#92;
&nbsp;&nbsp;--checklist "&#92;n&#92;n$list_server_do_result1选择服务器：" 25 70 14 &#92;
&nbsp;&nbsp;$list_server_do_result &#92;
&nbsp;&nbsp;2>$list_server_do_tempfile 

&nbsp;&nbsp;returncode=$?
&nbsp;&nbsp;
&nbsp;&nbsp;#对returncode值进行选择分支;
&nbsp;&nbsp;case $returncode in
&nbsp;&nbsp;#0为点击[OK]按钮；
&nbsp;&nbsp;0)
&nbsp;&nbsp;&nbsp;&nbsp;server_value=`cat $list_server_do_tempfile`
&nbsp;&nbsp;&nbsp;&nbsp;export server_value
&nbsp;&nbsp;&nbsp;&nbsp;#对功能ID进行选择
&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;counter=`echo "$server_value"&#124;awk '&#123;print NF&#125;'`
&nbsp;&nbsp;&nbsp;&nbsp;Gap=`expr 100 / $counter`
&nbsp;&nbsp;&nbsp;&nbsp;num=0
&nbsp;&nbsp;&nbsp;&nbsp;case $main_value in
&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;###########################################安全扫描########################################
&nbsp;&nbsp;&nbsp;&nbsp;3)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PCT=$Gap
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while test $PCT -le 100
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num=`expr $num + 1`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vlist=`echo "$server_value"&#124;awk -F " " '&#123;print $'$num'&#125;'`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vlist=`echo "$vlist"&#124;awk -F "&#92;"" '&#123;print $2&#125;'`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#通过nmap扫描服务器端口；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result=`nmap -p $scan_port $vlist&#124;awk 'NR==5,NR==12&#123;print $1"状态："$2&#125;' 2>&1`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#将扫描结果入库；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result_up=`$mysql_bin -h $mysql_host -u$mysql_user -p$mysql_passwd -e "update sysadmin.ty_server set SCANPORT='$result' where SERVER='$vlist';" 2>&1`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if [ -z "$result_up" ]; then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result_up_str="[√]ok:$vlist扫描结果$result已成功入库！"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result_up_str="[×]error:$vlist扫描结果$result入库失败！"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo "XXX"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $PCT
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo "&#92;n正在扫描$vlist...&#92;n-------------------------------------------------&#92;n$result"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo "XXX"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PCT=`expr $PCT + $Gap`

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#写运行结果到日志；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logs="[$(date +'%Y-%m-%d %H:%M:%S')]$result_up_str"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RecordLog
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;done
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;) &#124;dialog --title "$system_info" --gauge "&#92;n&#92;n&#92;n&#92;n&#92;n　　　　　　　　　　　　　开始扫描......" 18 70 0
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;

&nbsp;&nbsp;&nbsp;&nbsp;##########################################部署代理########################################
&nbsp;&nbsp;&nbsp;&nbsp;4)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#调用代理选择对话框；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add_agent
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#取选择代理的标志；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;agent_value=`cat /tmp/add_agent$main_pid`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#无选择与取消处理；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;&nbsp;[ "$agent_value" != "" ]; then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if [ "$agent_value" == "0" ]; then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#进度表显示运行状态；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PCT=$Gap
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while test $PCT -le 100
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num=`expr $num + 1`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#取第num列以空格分隔的字符(服务器)；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vlist=`echo "$server_value"&#124;awk -F " " '&#123;print $'$num'&#125;'`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#取第2列"号分隔字符串
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vlist=`echo "$vlist"&#124;awk -F "&#92;"" '&#123;print $2&#125;'`&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#循环代理个数；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for agentkey in $agent_value
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#取第2列"号分隔字符串
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;agentkey=`echo "$agentkey"&#124;awk -F "&#92;"" '&#123;print $2&#125;'`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#获取代理crontab类型；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AGENTCRONTAB=`$mysql_bin -h $mysql_host -u$mysql_user -p$mysql_passwd -e "select AGENTCRONTAB from sysadmin.ty_server_agent where AGENTNAME='$agentkey';" &#124; awk 'NR>1 &#123;print NR,$0&#125;'&#124;cut -b 3-100`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#创建代理目录；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sshto -i $sysadmin_path/identity -oConnectTimeout=$ConnectTimeout root@$vlist " mkdir -p /home/tyagent" 2>&1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result_check_conn=$?
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if [ $result_check_conn -eq 0 ]; then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#传输代理文件到客户端服务器；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scp -S sshto -oConnectTimeout=$ConnectTimeout -i $sysadmin_path/identity $sysadmin_path/tyagent/$agentkey root@$vlist:/home/tyagent 1>&3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result_do=$?
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if [ $result_do -eq 0 ]; then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#非crontab运行；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if [ "$AGENTCRONTAB" == "1" ]; then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sshto -i $sysadmin_path/identity -oConnectTimeout=$ConnectTimeout root@$vlist " if sed -n '1,100p' /etc/rc.local &#124; grep $agentkey;&nbsp;&nbsp;then echo '0'; else echo &#92;"/home/tyagent/$agentkey&#92;" >> /etc/rc.local;fi;" 2>&1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sshto -i $sysadmin_path/identity -oConnectTimeout=$ConnectTimeout root@$vlist " crontab -l > /home/tyagent/cron.tmp;if sed -n '1,100p' /home/tyagent/cron.tmp &#124; grep $agentkey;&nbsp;&nbsp;then echo '0'; else echo &#92;"$AGENTCRONTAB&#92;" >> /home/tyagent/cron.tmp;fi;crontab /home/tyagent/cron.tmp" 2>&1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#更新服务器字段代理标志；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result_up=`$mysql_bin -h $mysql_host -u$mysql_user -p$mysql_passwd -e "update sysadmin.ty_server set TO$agentkey='Y' where SERVER='$vlist';" 2>&1`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if [ -z "$result_up" ]; then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result_up_str="[√]ok:$vlist部署代理$agentkey成功！"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result_up_str="[×]error:$vlist部署代理$agentkey成功，但更新数据库失败！($result_up)"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result_up_str="[×]error:连接远程主机$vlist失败！"&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo "XXX"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $PCT
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo "&#92;n正在$vlist主机部署$agentkey代理。"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo "XXX"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result_up_str="[×]error:$vlist部署代理：$agentkey失败，连接服务器出现问题。"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PCT=`expr $PCT + $Gap`&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#写运行结果到日志；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logs="[$(date +'%Y-%m-%d %H:%M:%S')]$result_up_str"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RecordLog
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;done;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#循环结束；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;done
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;) &#124;dialog --title "$system_info" --gauge "&#92;n&#92;n&#92;n&#92;n&#92;n　　　　　　　　　　　　　准备部署......" 18 70 0
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;

&nbsp;&nbsp;&nbsp;&nbsp;##########################################远程终端########################################
&nbsp;&nbsp;&nbsp;&nbsp;7)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PCT=$Gap
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while test $PCT -le 100
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num=`expr $num + 1`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vlist=`echo "$server_value"&#124;awk -F " " '&#123;print $'$num'&#125;'`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vlist=`echo "$vlist"&#124;awk -F "&#92;"" '&#123;print $2&#125;'`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#检查远程服务器/etc/iptables.sh有无包含192.168.100.0/24 22关键字来判断是否开通远程ssh；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result=`sshto -i $sysadmin_path/identity -oConnectTimeout=$ConnectTimeout root@$vlist "if sed -ne '/192.168.100.0/&#123;/22/p&#125;' /etc/iptables.sh&#124;grep 192.168.100.0&#124;grep 22; then echo 1; fi; " 2>&1`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if [ $? -eq 0 ]; then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if [ -n "$result" ]; then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TOLD="N"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TOLDstr="关闭"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resultdo=`sshto -i $sysadmin_path/identity -oConnectTimeout=$ConnectTimeout root@$vlist "sed -i '/192.168.100.0/&#123;/22/d&#125;' /etc/iptables.sh;/etc/iptables.sh" 2>&1`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TOLD="Y"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TOLDstr="打开"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resultdo=`sshto -i $sysadmin_path/identity -oConnectTimeout=$ConnectTimeout root@$vlist "echo &#92;"iptables -A INPUT -s 192.168.100.0/24 -p tcp --dport 22 -j ACCEPT&#92;" >> /etc/iptables.sh;/etc/iptables.sh" 2>&1`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#更新服务器标志；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result_up=`$mysql_bin -h $mysql_host -u$mysql_user -p$mysql_passwd -e "update sysadmin.ty_server set TOLD='$TOLD' where SERVER='$vlist';" 2>&1`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if [ -z "$result_up" ]; then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result_up_str="[√]ok:$vlist服务器已$TOLDstr远程终端！"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result_up_str="[×]error:$vlist开/关远程终端，更新数据库失败！"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo "XXX"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $PCT
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo "&#92;n正在部署$vlist...&#92;n&#92;n$result_up_str"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo "XXX"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result_up_str="[×]error:$vlist开/关远程终端失败，连接服务器出现问题。"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PCT=`expr $PCT + $Gap`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep 1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#写运行结果到日志；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logs="[$(date +'%Y-%m-%d %H:%M:%S')]$result_up_str"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RecordLog&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;done
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;) &#124;dialog --title "$system_info" --gauge "&#92;n&#92;n&#92;n&#92;n&#92;n　　　　　　　　　　　　　准备部署......" 18 70 0
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;##########################################部署日志########################################
&nbsp;&nbsp;&nbsp;&nbsp;9)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PCT=$Gap
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while test $PCT -le 100
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num=`expr $num + 1`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vlist=`echo "$server_value"&#124;awk -F " " '&#123;print $'$num'&#125;'`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vlist=`echo "$vlist"&#124;awk -F "&#92;"" '&#123;print $2&#125;'`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#写客户端服务器/etc/syslog.conf文件；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result=`sshto -i $sysadmin_path/identity -oConnectTimeout=$ConnectTimeout root@$vlist "echo &#92;"*.notice;cron.none;authpriv.* @syslog.com.cn&#92;" >> /etc/syslog.conf;/etc/init.d/syslog restart" 2>&1`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result_do=$?
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if [ $result_do -eq 0 ]; then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#更新服务器标志；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result_up=`$mysql_bin -h $mysql_host -u$mysql_user -p$mysql_passwd -e "update sysadmin.ty_server set TOLOG='Y' where SERVER='$vlist';" 2>&1`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if [ -z "$result_up" ]; then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result_up_str="[√]ok:$vlist部署日志客户端成功！"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result_up_str="[×]error:$vlist部署日志客户端成功，但更新数据库失败！"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result_up_str="[×]error:$vlist部署日志客户端失败，连接服务器出现问题。"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo "XXX"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $PCT
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo "&#92;n正在部署$vlist...&#92;n&#92;n$result_up_str"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo "XXX"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PCT=`expr $PCT + $Gap`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep 1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#写运行结果到日志；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logs="[$(date +'%Y-%m-%d %H:%M:%S')]$result_up_str"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RecordLog&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;done
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;) &#124;dialog --title "$system_info" --gauge "&#92;n&#92;n&#92;n&#92;n&#92;n　　　　　　　　　　　　　准备部署......" 18 70 0
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;

##########################################部署应用########################################
&nbsp;&nbsp;&nbsp;&nbsp;10)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#调用应用选择对话框；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add_app
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#取选择firewall的标志；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;app_value=`cat /tmp/add_app$main_pid`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#无选择与取消处理；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;&nbsp;[ "$app_value" != "" ]; then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if [ "$app_value" == "0" ]; then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PCT=$Gap
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#进度表显示运行状态；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while [ $PCT -le 100 ]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num=`expr $num + 1`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#取第num列以空格分隔的字符(服务器)；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vlist=`echo "$server_value"&#124;awk -F " " '&#123;print $'$num'&#125;'`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#取第2列"号分隔字符串
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vlist=`echo "$vlist"&#124;awk -F "&#92;"" '&#123;print $2&#125;'`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#创建应用目录；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sshto -i $sysadmin_path/identity -oConnectTimeout=$ConnectTimeout root@$vlist " mkdir -p /home/tyagent/$app_value" 2>&1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result_check_conn=$?
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if [ $result_check_conn -eq 0 ]; then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scp -S sshto -oConnectTimeout=$ConnectTimeout -i $sysadmin_path/identity $sysadmin_path/tyapp/$app_value root@$vlist:/home/tyagent/$app_value/$app_value 1>&3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sshto -i $sysadmin_path/identity -oConnectTimeout=$ConnectTimeout root@$vlist " /home/tyagent/$app_value/$app_value "
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if [ $? -eq 0 ]; then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result_up_str="[√]ok:$vlist部署应用：$app_value成功！"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result_up_str="[×]error:$vlist部署应用：$app_value失败！"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#echo "XXX"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo "$result_up_str..................................................................[$PCT%]"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#echo "XXX"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result_up_str="[×]error:$vlist部署应用：$app_value失败，连接服务器出现问题。"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PCT=`expr $PCT + $Gap`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep 1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#写运行结果到日志；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logs="[$(date +'%Y-%m-%d %H:%M:%S')]$result_up_str"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RecordLog
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;done
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#) &#124;dialog --title "$system_info" --gauge "&#92;n&#92;n&#92;n&#92;n&#92;n　　　　　　　　　　　　　准备部署......" 18 70 0
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;##########################################部署防火墙########################################
&nbsp;&nbsp;&nbsp;&nbsp;11)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#调用firewall选择对话框；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add_firewall
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#取选择firewall的标志；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;firewall_value=`cat /tmp/add_firewall$main_pid`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#无选择与取消处理；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;&nbsp;[ "$firewall_value" != "" ]; then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if [ "$firewall_value" == "0" ]; then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#进度表显示运行状态；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PCT=$Gap
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while test $PCT -le 100
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num=`expr $num + 1`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#取第num列以空格分隔的字符(服务器)；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vlist=`echo "$server_value"&#124;awk -F " " '&#123;print $'$num'&#125;'`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#取第2列"号分隔字符串
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vlist=`echo "$vlist"&#124;awk -F "&#92;"" '&#123;print $2&#125;'`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scp -S sshto -oConnectTimeout=$ConnectTimeout -i $sysadmin_path/identity $sysadmin_path/firewall/$firewall_value root@$vlist:/etc/iptables.sh 1>&3
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result_do=$?
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if [ $result_do -eq 0 ]; then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sshto -i $sysadmin_path/identity -oConnectTimeout=$ConnectTimeout root@$vlist " if sed -n '1,100p' /etc/rc.local &#124; grep iptables.sh;&nbsp;&nbsp;then echo '0'; else echo &#92;"/etc/iptables.sh&#92;" >> /etc/rc.local;fi;chmod u+x /etc/iptables.sh;/etc/iptables.sh" 2>&1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result_up=`$mysql_bin -h $mysql_host -u$mysql_user -p$mysql_passwd -e "update sysadmin.ty_server set TOFIREWALL='Y' where SERVER='$vlist';" 2>&1`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if [ -z "$result_up" ]; then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result_up_str="[√]ok:$vlist部署Firewall成功！"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result_up_str="[×]error:$vlist部署Firewall成功，但更新数据库失败！"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result_up_str="[×]error:$vlist部署Firewall失败，连接服务器出现问题。"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo "XXX"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $PCT
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo "&#92;n正在部署$vlist...&#92;n&#92;n$result_up_str"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo "XXX"i
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PCT=`expr $PCT + $Gap`
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep 1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#写运行结果到日志；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logs="[$(date +'%Y-%m-%d %H:%M:%S')]$result_up_str"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RecordLog
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;done
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;) &#124;dialog --title "$system_info" --gauge "&#92;n&#92;n&#92;n&#92;n&#92;n　　　　　　　　　　　　　准备部署......" 18 70 0
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;esac
&nbsp;&nbsp;&nbsp;&nbsp;;;
&nbsp;&nbsp;#*为点击[Cancel]按钮或其它中断。
&nbsp;&nbsp;*)
&nbsp;&nbsp;&nbsp;&nbsp;dialog &#92;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --clear &#92;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --title "$system_info" &#92;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --yesno "&#92;n&#92;n确定要取消操作吗？" 10 30
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case $? in
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; returncode=99
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;;
&nbsp;&nbsp;&nbsp;&nbsp;esac
&nbsp;&nbsp;;;
&nbsp;&nbsp;esac
done
</textarea><br/><br/><a href="attachment.php?fid=156">点击这里下载文件</a><br/><br/>如大家有什么疑问或感兴趣的话题可以通过weibo与我交流：<a href="http://t.qq.com/yorkoliu" target="_blank">http://t.qq.com/yorkoliu</a><br/>Tags - <a href="https://blog.liuts.com/tags/sdr1.0/" rel="tag">sdr1.0</a> , <a href="https://blog.liuts.com/tags/linux%25E6%259C%258D%25E5%258A%25A1%25E5%2599%25A8%25E7%25AE%25A1%25E7%2590%2586/" rel="tag">linux服务器管理</a>
]]>
</description>
</item><item>
<link>https://blog.liuts.com/post/210/#blogcomment120</link>
<title><![CDATA[[评论] SDR1.0(SHELL+Dialog+RSA)Linux主机管理[原创]]]></title> 
<author>wgeto &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Mon, 02 Aug 2010 03:57:05 +0000</pubDate> 
<guid>https://blog.liuts.com/post/210/#blogcomment120</guid> 
<description>
<![CDATA[ 
	必须顶 沙发
]]>
</description>
</item><item>
<link>https://blog.liuts.com/post/210/#blogcomment121</link>
<title><![CDATA[[评论] SDR1.0(SHELL+Dialog+RSA)Linux主机管理[原创]]]></title> 
<author>neco &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Mon, 02 Aug 2010 05:06:18 +0000</pubDate> 
<guid>https://blog.liuts.com/post/210/#blogcomment121</guid> 
<description>
<![CDATA[ 
	顶顶!超赞的!
]]>
</description>
</item><item>
<link>https://blog.liuts.com/post/210/#blogcomment122</link>
<title><![CDATA[[评论] SDR1.0(SHELL+Dialog+RSA)Linux主机管理[原创]]]></title> 
<author>nazz &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Mon, 02 Aug 2010 06:39:27 +0000</pubDate> 
<guid>https://blog.liuts.com/post/210/#blogcomment122</guid> 
<description>
<![CDATA[ 
	求pm插件
]]>
</description>
</item><item>
<link>https://blog.liuts.com/post/210/#blogcomment125</link>
<title><![CDATA[[评论] SDR1.0(SHELL+Dialog+RSA)Linux主机管理[原创]]]></title> 
<author>vsion &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Mon, 02 Aug 2010 13:15:30 +0000</pubDate> 
<guid>https://blog.liuts.com/post/210/#blogcomment125</guid> 
<description>
<![CDATA[ 
	我的偶像，太崇拜你了。
]]>
</description>
</item><item>
<link>https://blog.liuts.com/post/210/#blogcomment126</link>
<title><![CDATA[[评论] SDR1.0(SHELL+Dialog+RSA)Linux主机管理[原创]]]></title> 
<author>health &lt;healthly@gmail.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Tue, 03 Aug 2010 02:08:32 +0000</pubDate> 
<guid>https://blog.liuts.com/post/210/#blogcomment126</guid> 
<description>
<![CDATA[ 
	不错，很牛吗，呵呵
]]>
</description>
</item><item>
<link>https://blog.liuts.com/post/210/#blogcomment129</link>
<title><![CDATA[[评论] SDR1.0(SHELL+Dialog+RSA)Linux主机管理[原创]]]></title> 
<author>langtao &lt;liaolangtao@gmail.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Tue, 03 Aug 2010 08:42:30 +0000</pubDate> 
<guid>https://blog.liuts.com/post/210/#blogcomment129</guid> 
<description>
<![CDATA[ 
	迫不及待的要读你的代码了。
]]>
</description>
</item><item>
<link>https://blog.liuts.com/post/210/#blogcomment130</link>
<title><![CDATA[[评论] SDR1.0(SHELL+Dialog+RSA)Linux主机管理[原创]]]></title> 
<author>[乌干达]小工 &lt;lr@isadba.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Tue, 03 Aug 2010 10:02:17 +0000</pubDate> 
<guid>https://blog.liuts.com/post/210/#blogcomment130</guid> 
<description>
<![CDATA[ 
	O(∩_∩)O~、很棒。我正在愁我的管理工具缺少规范化，这篇文章给我提供了很多参照和源码支持，非常感谢天师。
]]>
</description>
</item><item>
<link>https://blog.liuts.com/post/210/#blogcomment134</link>
<title><![CDATA[[评论] SDR1.0(SHELL+Dialog+RSA)Linux主机管理[原创]]]></title> 
<author>五谷 &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Wed, 04 Aug 2010 08:37:26 +0000</pubDate> 
<guid>https://blog.liuts.com/post/210/#blogcomment134</guid> 
<description>
<![CDATA[ 
	顶，老刘太强大了，呵呵，先看看有问题直接请教你
]]>
</description>
</item><item>
<link>https://blog.liuts.com/post/210/#blogcomment135</link>
<title><![CDATA[[评论] SDR1.0(SHELL+Dialog+RSA)Linux主机管理[原创]]]></title> 
<author>鸿雁 &lt;wangchengtai@gmail.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 05 Aug 2010 01:19:44 +0000</pubDate> 
<guid>https://blog.liuts.com/post/210/#blogcomment135</guid> 
<description>
<![CDATA[ 
	太厉害了，不错，很好很强大
]]>
</description>
</item><item>
<link>https://blog.liuts.com/post/210/#blogcomment149</link>
<title><![CDATA[[评论] SDR1.0(SHELL+Dialog+RSA)Linux主机管理[原创]]]></title> 
<author>Bristol &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Fri, 20 Aug 2010 12:56:12 +0000</pubDate> 
<guid>https://blog.liuts.com/post/210/#blogcomment149</guid> 
<description>
<![CDATA[ 
	真实牛人啊，佩服，佩服
]]>
</description>
</item>
</channel>
</rss>