今天在做了一下 mysql 数据库备份的shell 脚本,不过开始也搞错了一点地方就是和 mongodump 的一个参数搞混乱了,希望他人看了之后不再犯错误,希望对你有所帮助。下次会给出 mongodump 的简单代码示例
#/bin/bash
td=`date "+%Y-%m-%d"`
backpath=/var/www/backup/$td
dbBinPath=/usr/local/mysql/bin/mysqldump
echo $1
echo $2
if [ -d "$backpath" ]
then
rm $backpath -rf
echo "备份数据库数据表"
fi
mkdir -p $backpath
###如果传一个参数或者不传递参数则进行导出数据库,传递参数说明导出具体的数据库(仅仅导出数据表结构)
if [ $# -lt 3 ]
then
if [ -z "$1" ] ### 主要是考虑到不传递参数的判断如何写 所以逻辑上调整了一下
then
$dbBinPath -d test > $backpath/test.sql
$dbBinPath -d drupal > $backpath/drupal.sql
elif [ $1 = db -a $# = 2 ]
then
$dbBinPath $2 > $backpath/db_$2.sql
else
$dbBinPath -d $1 > $backpath/str_$1.sql
fi
else
#### 如果给定了两个参数则说明导出某一个数据库下的莫一个数据表
### 不写入表的任何行信息。如果你只想得到一个表的结构的导出,这是很有用的!
###--opt
###同--quick --add-drop-table --add-locks --extended-insert --lock-tables
if [ $1 = tab_structure ]
then
echo "仅仅导出表结构"
$dbBinPath -d $2 --add-drop-table $2 > $backpath/tb_structure_$2_$3.sql
elif [ $1 = tab_db ]
then
echo "仅仅导出数据表中的数据"
$dbBinPath -t $2 $3 > $backpath/tb_db_$2_$3.sql
elif [ $1 = tab ]
then
echo "开始执行导出数据表和数据"
$dbBinPath $2 $3 > $backpath/one_db_$2_$3.sql
else
echo "参数错误"
fi
fi
mysqldump 的其它操作参数可以自己研究一下....如果有什么不对的地方,朋友需要可以在我的blog中留言
或者发送邮件 Email:[email protected]
本文出自 “追梦” 博客,请务必保留此出处http://dreameng.blog.51cto.com/1187899/1395969
shell脚本中mysqldump的基本使用,古老的榕树,5-wow.com