MySQL备份数据到本地脚本
几年前写过一篇MySQL数据备份数据库的文章,今天我写这个是专门备份到本地的shell脚本,功能简单,和之前的shell脚本有所不同的是,在本次脚本中支持多个数据库备份,无需为每个数据库再定义一个shell备份脚本了。
Shell
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<span class="com">#!/bin/sh </span> <span class="com">#backup for mysql to local</span> <span class="com">#author jxcent@gmail.com 2015年10月27日 17:02:47</span> <span class="com">#备份到本地路径</span><span class="pln"> xBackupPath</span><span class="pun">=</span><span class="str">/home/</span><span class="pln">databackup</span><span class="pun">/</span> <span class="com">#mysqldump路径</span><span class="pln"> xMysqlPath</span><span class="pun">=</span><span class="str">/opt/</span><span class="pln">mysql</span><span class="pun">/</span><span class="pln">bin</span><span class="pun">/</span><span class="pln">mysqldump </span><span class="com">#数据库列表</span><span class="pln"> xDBNameList</span><span class="pun">=(</span><span class="pln">wpx</span><span class="pun">)</span><span class="pln"> xArrayLength</span><span class="pun">=</span><span class="pln">$</span><span class="pun">{#</span><span class="pln">xDBNameList</span><span class="pun">[@]}</span> <span class="kwd">for</span> <span class="pun">((</span><span class="pln"> i</span><span class="pun">=</span><span class="lit">0</span><span class="pun">;</span><span class="pln"> i</span><span class="pun"><</span><span class="pln">$</span><span class="pun">{</span><span class="pln">xArrayLength</span><span class="pun">};</span><span class="pln"> i</span><span class="pun">++</span> <span class="pun">))</span> <span class="pun">;</span> <span class="kwd">do</span><span class="pln"> xDateTime</span><span class="pun">=</span><span class="str">`date +%Y%m%d%H%M%S`</span><span class="pln"> $</span><span class="pun">{</span><span class="pln">xMysqlPath</span><span class="pun">}</span><span class="pln"> $</span><span class="pun">{</span><span class="pln">xDBNameList</span><span class="pun">[</span><span class="pln">$i</span><span class="pun">]}</span> <span class="pun">|</span><span class="pln"> gzip </span><span class="pun">></span><span class="pln"> $</span><span class="pun">{</span><span class="pln">xBackupPath</span><span class="pun">}</span><span class="str">"/"</span><span class="pln">$</span><span class="pun">{</span><span class="pln">xDBNameList</span><span class="pun">[</span><span class="pln">$i</span><span class="pun">]}</span><span class="str">"_"</span><span class="pln">$</span><span class="pun">{</span><span class="pln">xDateTime</span><span class="pun">}</span><span class="str">".gz"</span> <span class="kwd">done</span><span class="pln"> echo $</span><span class="pun">{</span><span class="pln">xArrayLength</span><span class="pun">}</span> <span class="str">'DB backup complete!'</span> |
如何使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<span class="pln">cd </span><span class="pun">/</span><span class="pln">root vi databackup</span><span class="pun">.</span><span class="pln">sh </span><span class="com">#复制脚本内容到databackup.sh文件中,根据配置文件内的提示按照个人实际需求进行修改</span> <span class="com">#需要修改的地方有xBackupPath xMysqlPath xDBNameList</span> <span class="com">#其中xDBNameList里面是数据库名中间以空格分隔开即可</span> <span class="com">#设置权限</span><span class="pln"> chmod </span><span class="lit">700</span><span class="pln"> databackup</span><span class="pun">.</span><span class="pln">sh chown root</span><span class="pun">:</span><span class="pln">root databackup</span><span class="pun">.</span><span class="pln">sh </span><span class="com">#运行测试</span> <span class="pun">/</span><span class="pln">root</span><span class="pun">/</span><span class="pln">databackup</span><span class="pun">.</span><span class="pln">sh </span><span class="com">#如果出现无法连接数据库的错误提示,请按照要求创建一个root@localhost用户,且密码为空</span> |
文件生成命名规则为“数据库名_生成日期.gz”,例如“test_201510271722.gz”,欢迎拍砖!

