LINUX

linux备份数据库

linux备份数据库,数据库备份,sh备份数据库,mysql备份

1.sh文件

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
export PATH
#数据库用户名
dbuser='root'
#数据库用密码
dbpasswd='密码'
dbname="数据库名称"

#备份时间
backtime=`date +%Y%m%d%H%M%S`

#日志备份路径
logpath='/data/mysqlbak'

#数据备份路径
datapath='/data/mysqlbak'
#echo   ${logpath}/${backtime}.sql

#正式备份数据库
for table in $dbname; do
mysqldump -u ${dbuser}  -p${dbpasswd}  $table> ${logpath}/${table}${backtime}.sql

#备份成功以下操作
if [ "$?" == 0 ];then
cd $datapath

#为节约硬盘空间,将数据库压缩
tar jcf  ${table}${backtime}.tar.bz2  ${table}${backtime}.sql

#删除原始文件,只留压缩后文件
rm -f ${datapath}/${table}${backtime}.sql

#删除七天前备份,也就是只保存7天内的备份
find $datapath -name "*.tar.bz2" -type f -mtime +7 -exec rm -rf {} \;

echo "数据库表 ${dbname} 备份成功!!" >> ${logpath}/mysqllog.log

else

#备份失败则进行以下操作
echo "数据库表 ${dbname} 备份失败!!" >> ${logpath}/mysqllog.log

fi
done


2.创建crontab 

cd /etc

vim crontab

在crontab里面加入
50 23 * * * root /data/mysqlbak/mysql.sh


50 23 * * * 这个可根据你自己的时间来定义(表示每天晚上23点50分执行)
/data/mysqlbak/mysql.sh 这个是你sh文件的路径(记得给这个文件有执行权限 chmod +x mysql.sh)


最后重新载入crontab

/sbin/service crond reload

相关crontab命令可参考 http://www.xiaoshu168.com/linux/113.html


(0)
分享:

本文由:xiaoshu168 作者:xiaoshu发表,转载请注明来源!

相关阅读