<?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/192/</link>
<title><![CDATA[Mysql的备份与还原(shell对话框版)[原创]]]></title> 
<author>刘天斯 &lt;liutiansi@gmail.com&gt;</author>
<category><![CDATA[SHELL]]></category>
<pubDate>Sun, 18 Apr 2010 14:39:59 +0000</pubDate> 
<guid>https://blog.liuts.com/post/192/</guid> 
<description>
<![CDATA[ 
	几年前用SHELL+Dialog写的Mysql备份与还原对话框版<br/><strong>使用方法</strong><br/>1、如系统未安装dialog,安装方法<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content"><br/>CentOS:yum -y install dialog<br/>Ubuntu:apt-get install dialog<br/></div></div><br/><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content"><br/>#配制基本参数即可使用&nbsp;&nbsp;<br/>sys_info="运维进行时版权所有"&nbsp;&nbsp; #sys copyright&nbsp;&nbsp;<br/>db_path=/usr/local/mysql/bin&nbsp;&nbsp;#mysql bin 位置<br/>tem_path=/tmp/db_tmp&nbsp;&nbsp; #临时目录<br/>db_user=root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #数据库用户<br/>db_pass=123456&nbsp;&nbsp;&nbsp;&nbsp;#数据库密码<br/></div></div><br/><a href="https://blog.liuts.com/attachment.php?fid=101" target="_blank"><img src="https://blog.liuts.com/attachment.php?fid=101" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><textarea name="code" class="c" rows="15" cols="100">
#!/bin/bash
#功能：操作Mysql的导入/导出数据；
#作者：刘天斯&nbsp;&nbsp;liutiansi@gmail.com
#最后更新：2006-03-22 10:30

#配制相关参数：
sys_info="运维进行时版权所有"&nbsp;&nbsp; #sys copyright
db_path=/usr/local/mysql/bin&nbsp;&nbsp;#mysql bin path
tem_path=/tmp/db_tmp&nbsp;&nbsp; #tmp File path
db_user=root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #db user
db_pass=123456&nbsp;&nbsp;&nbsp;&nbsp;#db pass

ImportSucceed()
&#123;
&nbsp;&nbsp;dialog --clear --msgbox " 数据导入成功" 5 50
&nbsp;&nbsp;main
&#125;

ImportFailure()
&#123;
&nbsp;&nbsp;dialog --clear --msgbox " 数据导入失败($1)" 5 80
&nbsp;&nbsp;main
&#125;

ExportSucceed()
&#123;
&nbsp;&nbsp;dialog --clear --msgbox " 数据导出成功" 5 50
&nbsp;&nbsp;main
&#125;

ExportFailure()
&#123;
&nbsp;&nbsp;dialog --clear --msgbox " 数据导出失败($1)" 5 80
&nbsp;&nbsp;main
&#125;

##导入数据库文件；
import()&#123;
&nbsp;&nbsp;exno=0
&nbsp;&nbsp;while [ $exno -eq 0 ];do
&nbsp;&nbsp; dialog --clear --fselect /home/info.db 15 50 --stdout --ok-label "开始导入" --help-button --help-label "退出" --cancel-label "返回" --menu "请选择以下操作：" 4 50 0 "" "" >$tem_path/dialog_001.tmp
&nbsp;&nbsp; exno=$?&nbsp;&nbsp; ##获取用户选择项，[开始导入]返回0、[退出]返回2、[返回]返回1
&nbsp;&nbsp; dbfile=`cat $tem_path/dialog_001.tmp`&nbsp;&nbsp; ##调用文件选择框，获取文件path
&nbsp;&nbsp; echo "nothing">$tem_path/dialog_001.tmp&nbsp;&nbsp; ##初始化临时文件dialog_001.tmp
&nbsp;&nbsp; if [ $exno -eq 0 ];then&nbsp;&nbsp; ##选择[开始导入]
&nbsp;&nbsp; dialog --clear --title "请输入数据库名称：" --inputbox 数据库名： 10 50 2> $tem_path/dialog_002.tmp&nbsp;&nbsp; ##调用带输入框的对话框获取数据库名；
&nbsp;&nbsp; db_name=`cat $tem_path/dialog_002.tmp`
&nbsp;&nbsp; cd $db_path
&nbsp;&nbsp; echo -en " 　&nbsp;&nbsp; 正在导入,请稍后... ..."&nbsp;&nbsp; ##运行提示；
&nbsp;&nbsp; Getresult="$(./mysql -u $db_user -p$db_pass $db_name<$dbfile 2>&1)"&nbsp;&nbsp; ##获取运行返回值；
&nbsp;&nbsp; Getresult_bool=`echo $Getresult&#124;cut -c 1-5`&nbsp;&nbsp; ##截取前5位&nbsp;&nbsp;；
&nbsp;&nbsp; if [ -z $Getresult_bool ];then&nbsp;&nbsp; ##错误信息为空则成功运行；
&nbsp;&nbsp; ImportSucceed&nbsp;&nbsp; ##调用成功提示对话框；
&nbsp;&nbsp; else
&nbsp;&nbsp; ImportFailure "$Getresult"&nbsp;&nbsp; ##调用失败提示对话框；
&nbsp;&nbsp; fi
&nbsp;&nbsp; fi
&nbsp;&nbsp; if [ $exno -eq 1 ];then&nbsp;&nbsp; ##返回主界面
&nbsp;&nbsp; main
&nbsp;&nbsp; fi
&nbsp;&nbsp; if [ $exno -eq 2 ];then&nbsp;&nbsp; ##退出系统
&nbsp;&nbsp; rm -rf $tem_path&nbsp;&nbsp;
&nbsp;&nbsp; exit 0
&nbsp;&nbsp; fi 
&nbsp;&nbsp;done
&#125; 


##导出数据文件；
export()&#123;
&nbsp;&nbsp;exno=0
&nbsp;&nbsp;dialog --clear --title "请输入数据库名称：" --inputbox 数据库名： 10 50 2> $tem_path/dialog_003.tmp&nbsp;&nbsp; ##调用带输入框的对话框获取数据库名；
&nbsp;&nbsp;ex_db_name=`cat $tem_path/dialog_003.tmp`&nbsp;&nbsp; ##将数据库名赋予ex_db_name；
&nbsp;&nbsp;dialog --clear --title "请输入要导出的表名：" --inputbox 表名： 10 50 2> $tem_path/dialog_004.tmp&nbsp;&nbsp; ##调用带输入框的对话框获取表名；
&nbsp;&nbsp;ex_table_name=`cat $tem_path/dialog_004.tmp`&nbsp;&nbsp; ##将数据库名赋予ex_table_name；
&nbsp;&nbsp;dialog --clear --title "请输入要导出表的SQL条件：" --inputbox SQL查询条件[无条件为空]： 10 50 2> $tem_path/dialog_005.tmp&nbsp;&nbsp;##调用带输入框的对话框获取查询条件；
&nbsp;&nbsp;ex_table_sql=`cat $tem_path/dialog_005.tmp`&nbsp;&nbsp; ##将sql查询条件赋予ex_table_sql；&nbsp;&nbsp;
&nbsp;&nbsp;if [ -z $ex_table_sql ];then
&nbsp;&nbsp; ex_table_sql_str=""
&nbsp;&nbsp;else
&nbsp;&nbsp; ex_table_sql_str="-w $ex_table_sql "
&nbsp;&nbsp;fi
&nbsp;&nbsp;while [ $exno -eq 0 ];do
&nbsp;&nbsp; dialog --clear --fselect /home/$ex_table_name-$(date +%Y-%m-%d).db 15 50 --stdout --ok-label "开始导出" --help-button --help-label "退出" --cancel-label "返回" --menu "请选择以下操作：" 4 50 0 "" "" >$tem_path/dialog_006.tmp
&nbsp;&nbsp; exno=$?
&nbsp;&nbsp; ex_dbfile=`cat $tem_path/dialog_006.tmp`&nbsp;&nbsp; ##调用文件选择框，获取文件导出的path&nbsp;&nbsp;
&nbsp;&nbsp; if [ $exno -eq 0 ];then&nbsp;&nbsp; ##选择[开始导出]
&nbsp;&nbsp; cd $db_path
&nbsp;&nbsp; echo -en " 　&nbsp;&nbsp; 正在导出,请稍后... ..."&nbsp;&nbsp; ##运行提示；
&nbsp;&nbsp; ex_Getresult="$(./mysqldump -u $db_user -p$db_pass -t $ex_table_sql_str $ex_db_name $ex_table_name>$ex_dbfile 2>&1)"&nbsp;&nbsp; ##获取运行返回值；
&nbsp;&nbsp; ex_Getresult_bool=`echo $ex_Getresult&#124;cut -c 1-5`&nbsp;&nbsp; ##截取前5位&nbsp;&nbsp;；
&nbsp;&nbsp; if [ -z $ex_Getresult_bool ];then&nbsp;&nbsp; ##错误信息为空则成功运行；
&nbsp;&nbsp; dialog --clear --stdout --ok-label "压缩" --cancel-label "不压缩" --menu "导出成功！要对导出的文件进行压缩？" 4 50 0 "" ""
&nbsp;&nbsp; exno=$?
&nbsp;&nbsp; if [ $exno -eq 0 ];then
&nbsp;&nbsp; echo -en " 　&nbsp;&nbsp; 正在压缩,请稍后... ..."&nbsp;&nbsp; ##压缩提示；
&nbsp;&nbsp; tar -czf $ex_dbfile.tar.gz $ex_dbfile 1>/dev/null 2>/dev/null
&nbsp;&nbsp; fi
&nbsp;&nbsp; ExportSucceed&nbsp;&nbsp; ##调用成功提示对话框；
&nbsp;&nbsp; else
&nbsp;&nbsp; ExportFailure "$ex_Getresult"&nbsp;&nbsp; ##调用失败提示对话框；
&nbsp;&nbsp; fi
&nbsp;&nbsp;fi
&nbsp;&nbsp;if [ $exno -eq 1 ];then&nbsp;&nbsp; ##返回主界面
&nbsp;&nbsp; main
&nbsp;&nbsp;fi
&nbsp;&nbsp;if [ $exno -eq 2 ];then&nbsp;&nbsp; ##退出系统
&nbsp;&nbsp; rm -rf $tem_path&nbsp;&nbsp;
&nbsp;&nbsp; exit 0
&nbsp;&nbsp;fi 
&nbsp;&nbsp;done&nbsp;&nbsp;
&#125;

##主函数，导出数据[0]、导入数据[1]、退出[2]
main()&#123;
&nbsp;&nbsp;if [ ! -e $tem_path ];then
&nbsp;&nbsp; mkdir $tem_path
&nbsp;&nbsp;fi
&nbsp;&nbsp;exno=0
&nbsp;&nbsp;dialog --clear --stdout --colors --ok-label " ★导入数据 " --cancel-label " ★导出数据 " --help-button --help-label " ★退出 " --menu "&#92;Zb&#92;Z3请选择操作的菜单项(测试版) 作者：刘天斯" 20 50 1 "MysqlDB Import-Export @$sys_info" ""
&nbsp;&nbsp;exno=$?
&nbsp;&nbsp;case $exno in
 0)import;;
 1)export;;
 2)
 rm -rf $tem_path
 exit 0;
&nbsp;&nbsp;esac
&#125;
main 
</textarea><br/><br/><strong>功能截图</strong><br/><a href="https://blog.liuts.com/attachment.php?fid=102" target="_blank"><img src="https://blog.liuts.com/attachment.php?fid=102" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/><a href="https://blog.liuts.com/attachment.php?fid=103" target="_blank"><img src="https://blog.liuts.com/attachment.php?fid=103" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/><a href="https://blog.liuts.com/attachment.php?fid=104" target="_blank"><img src="https://blog.liuts.com/attachment.php?fid=104" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/><a href="https://blog.liuts.com/attachment.php?fid=105" target="_blank"><img src="https://blog.liuts.com/attachment.php?fid=105" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/><a href="https://blog.liuts.com/attachment.php?fid=106" target="_blank"><img src="https://blog.liuts.com/attachment.php?fid=106" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/><a href="https://blog.liuts.com/attachment.php?fid=107" target="_blank"><img src="https://blog.liuts.com/attachment.php?fid=107" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/><a href="https://blog.liuts.com/attachment.php?fid=109" target="_blank"><img src="https://blog.liuts.com/attachment.php?fid=109" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/><a href="https://blog.liuts.com/attachment.php?fid=110" target="_blank"><img src="https://blog.liuts.com/attachment.php?fid=110" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/><a href="https://blog.liuts.com/attachment.php?fid=108" target="_blank"><img src="https://blog.liuts.com/attachment.php?fid=108" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>Tags - <a href="https://blog.liuts.com/tags/shell/" rel="tag">shell</a> , <a href="https://blog.liuts.com/tags/mysql/" rel="tag">mysql</a> , <a href="https://blog.liuts.com/tags/%25E5%25A4%2587%25E4%25BB%25BD/" rel="tag">备份</a> , <a href="https://blog.liuts.com/tags/%25E8%25BF%2598%25E5%258E%259F/" rel="tag">还原</a>
]]>
</description>
</item><item>
<link>https://blog.liuts.com/post/192/#blogcomment70</link>
<title><![CDATA[[评论] Mysql的备份与还原(shell对话框版)[原创]]]></title> 
<author>showgirl &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Sun, 25 Apr 2010 14:05:14 +0000</pubDate> 
<guid>https://blog.liuts.com/post/192/#blogcomment70</guid> 
<description>
<![CDATA[ 
	不错，好东西，下来用一下。
]]>
</description>
</item><item>
<link>https://blog.liuts.com/post/192/#blogcomment533</link>
<title><![CDATA[[评论] Mysql的备份与还原(shell对话框版)[原创]]]></title> 
<author>tonyboob &lt;yoshinali@126.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Fri, 17 Dec 2010 04:57:02 +0000</pubDate> 
<guid>https://blog.liuts.com/post/192/#blogcomment533</guid> 
<description>
<![CDATA[ 
	您好<br/>把您的这段代码copy到我自己的linux机器后，运行。发现中文都不能正确显示。我的环境的是en-US.是不是需要设置一下语言环境?
]]>
</description>
</item>
</channel>
</rss>