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
done2.创建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
本文由:xiaoshu168 作者:xiaoshu发表,转载请注明来源!