码迷,mamicode.com
首页 > 数据库 > 详细

mysql自动备份维护shell脚本

时间:2019-06-13 14:10:31      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:you   win   tap   文件   microsoft   ase   mkdir   root   设置   


/opt/backup_online.sh


#!/bin/bash
#功能说明:本功能用于备份数据库


#数据库用户名
dbuser=‘root‘
#数据库密码
dbpasswd=‘zLaaa‘
#数据库名,可以定义多个数据库,中间以空格隔开,如:test test1 test2
dbname=‘adb bdb ‘
#备份时间
backtime=`date +%Y%m%d%H%M%S`
#日志备份路径
logpath=‘/opt/garbageBackup/‘
#数据备份路径
datapath=‘/opt/garbageBackup/‘
echo ${table}
#日志记录头部
for db in $dbname; do
source=`mysqldump -u ${dbuser} -p${dbpasswd} ${db}> ${logpath}/${backtime}.sql` 2>> ${logpath}/mysqllog.log;
#备份成功以下操作
if [ "$?"==0 ];then
? cd $datapath
? zip -r ${table}${backtime}.zip ?${backtime}.sql > /dev/null
? rm -f ${datapath}/${backtime}.sql
fi
done
~ ? ?


每天4点备份mysql数据;

vim /etc/crontab

0 ? ? ?4 ?* * * /bin/sh ?/opt/backup_online.sh

?

3,删除超过7天的备份数据,保留3个月里的 10号 20号 30号的备份数据;

#创建shell文件

vim backup_mysql.sh


mysqldump -uroot -p123456 --all-databases > /data/dbdata/mysqlbak/`date +%Y%m%d`.sql

find /data/dbdata/mysqlbak/ -mtime +7 -name ‘*[1-9].sql‘ -exec rm -rf {} \;

find /data/dbdata/mysqlbak/ -mtime +92 -name ‘*.sql‘ -exec rm -rf {} \;


#创建定时任务

crontab –e

0 4 * * * /data/dbdata/backup_mysql.sh











mysql自动备份维护shell脚本

#!/bin/bash

#Mysql 自动备份 压缩并上传到 指定ftp

#设想每天凌晨3点备份mysql

#编辑crontab配置文件

#00 03 * * * backupmysql.sh

#压缩并以“服务器名+时间 ”命名打包文件

#数据量小的情况下以mail的方式发送到指定邮箱(需要建立sendmail服务)

#数据量大的情况下以ftp的方式传送到指定的ftp服务器(远程ftp需开启)

#linzhanghui.blog.chinaunix.net

#程序部分以伪代码方式存在。

#


#1.设置mysql登陆参数

dbuser=root

dbpassword=123456

dbserver=localhost

dbname=cacti

dbopt=--opt

backupdir=/tmp/dbbackup/


#2.设置ftp具体参数

ftpserver=192.168.137.3

ftpuser=userlin

ftppassword=passwdlin


#3.设置文件备份文件名,备份文件保存天数

fileprefix=lzhserver

dumpfilename=$backupdir$fileprefix`date -d now +%Y%m%d`.sql

newfile=$fileprefix-`date -d now +%Y%m%d`.tar.gz

keepdays=7


#4.写入操作到日志文件(事先需建立)

logfile=/var/log/mysqlbackup.log

logtmp=/var/log/mybackup.tmp


#=====如果没有备份文件夹则建立之======

if [ ! -d "$backupdir" ];

then

echo "无此文件夹,建立中..."

mkdir -p $backupdir

fi

#=====事先删除7天之前的备份数据库文件=====

echo "开始执行备份...">>$logfile

echo "删除保留天数之前的备份文件...">>$logfile

find $backupdir -name $fileprefix* -mtime +$keepdays -fls $logtmp -exec rm {};

echo "删除的备份文件:">>$logfile

cat $logtmp >>$logfile

echo "删除旧备份文件成功!" >>$logfile

#=====备份+打包======

if [ -f $backupdir$newfile ]

then

echo "$newfile 备份文件存在, 备份结束 ...">>$logfile

else

if [ -z $dbpasswd ]

then

mysqldump -u$dbuser -h$dbserver $dbopt $dbname >$dumpfilename

else

mysqldump -u$dbuser -p$dbpasswd -h$dbserver $dbopt $dbname >$dumpfilename

fi

tar czvf $backupdir$newfile $dumpfilename

echo "$backupdir$newfile 备份成功!+“$压缩包容量”">>$logfile

fi

#======以ftp方式发送=====

ftp -i -n <<end_ftp

open $ftpserver

user $ftpuser $ftppassword

lcd $backupdir

hash

prompt?

put $newfile

close

bye

end_ftp







?http://www.jb51.net/article/24393.htm ? ? ? ?

http://blog.csdn.net/phpfenghuo/article/details/29931837


http://blog.csdn.net/u010098331/article/details/50896175

http://www.cnblogs.com/batsing/p/4938986.html

http://blog.csdn.net/a00553344/article/details/51186954

http://www.cnblogs.com/batsing/p/4938986.html

http://www.linuxde.net/2012/03/9379.html

http://blog.csdn.net/win_turn/article/details/60880990

http://blog.csdn.net/keenweiwei/article/details/5903142

http://blog.csdn.net/joyous/article/details/48304405

http://blog.csdn.net/phpfenghuo/article/details/29931837

http://blog.csdn.net/catoop/article/details/8064817

http://blog.csdn.net/gsls200808/article/details/45127781

http://blog.csdn.net/u012403455/article/details/40535975


http://blog.csdn.net/u011225629/article/details/46785579


http://blog.csdn.net/jyf0412/article/details/36866041



#!/bin/bash

#功能说明:本功能用于备份数据库


#数据库用户名

dbuser=‘root‘

#数据库密码

dbpasswd=‘zLaaa‘

#数据库名,可以定义多个数据库,中间以空格隔开,如:test test1 test2

dbname=‘adb bdb ‘

#备份时间

backtime=`date +%Y%m%d%H%M%S`

#日志备份路径

logpath=‘/opt/garbageBackup/‘

#数据备份路径

datapath=‘/opt/garbageBackup/‘

echo ${table}

#日志记录头部

for db in $dbname; do

source=`mysqldump -u ${dbuser} -p${dbpasswd} ${db}> ${logpath}/${backtime}.sql` 2>> ${logpath}/mysqllog.log;

#备份成功以下操作

if [ "$?"==0 ];then

? cd $datapath

? zip -r ${table}${backtime}.zip ?${backtime}.sql > /dev/null

? rm -f ${datapath}/${backtime}.sql

fi

done

~ ? ?


每天4点备份mysql数据;

?

2,为节省空间,删除超过3个月的所有备份数据;

?

3,删除超过7天的备份数据,保留3个月里的 10号 20号 30号的备份数据;

#创建shell文件

vim backup_mysql.sh


mysqldump -uroot -p123456 --all-databases > /data/dbdata/mysqlbak/`date +%Y%m%d`.sql

find /data/dbdata/mysqlbak/ -mtime +7 -name ‘*[1-9].sql‘ -exec rm -rf {} \;

find /data/dbdata/mysqlbak/ -mtime +92 -name ‘*.sql‘ -exec rm -rf {} \;


#创建定时任务

crontab –e

0 4 * * * /data/dbdata/backup_mysql.sh


mysql自动备份维护shell脚本

标签:you   win   tap   文件   microsoft   ase   mkdir   root   设置   

原文地址:https://www.cnblogs.com/SyncNavigator-V8-4-1/p/11015852.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!