美文网首页
Linux使用shell脚本备份数据库

Linux使用shell脚本备份数据库

作者: 胡乱唱歌ing | 来源:发表于2019-11-19 10:55 被阅读0次

安装需要用到的依赖库

yum -y install sendmail
yum -y install mailx
yum -y install sshpass
yum install -y openssh-clients

shell代码

#!/bin/sh
#
# yum -y install sendmail
# yum -y install mailx
# yum -y install sshpass
# yum install -y openssh-clients
# systemctl start sendmail #启动sendmail
#
##检查是否是root 
if [ $(id -u) != "0" ];then
    echo "Error:请使用root用户进行操作"
    exit 1
fi

day=$(date "+%Y%m%d") #年月日
time=`date +%s` #时间戳
databse="test"
backup_path="/root/mysql/data/"
upload="root@192.168.233.137:/root/mysql/upload"
passwd="123456"
filename=$day"_test.sql"
mailaddress="xxx@163.com"

if [ ! -d $backup_path ];then
    mkdir -p $backup_path
    if [ "$?" != "0" ];then
        echo "cannot mkdir ..."
        exit 1
    fi                                                                                
fi

/Data/apps/mysql/bin/mysqldump -uroot -proot --default-character-set=utf8 $databse > $backup_path$filename

if [ "$?" != "0" ];then
    echo "cannot back up mysql data "
    echo "cannot back up mysql data"|mail -s "send by shell" $mailaddress
    exit 1 
fi  
#把备份的sql文件备份到远程服务器

sshpass -p $passwd scp $backup_path$filename $upload
if [ "$?" != "0" ];then
    echo "cannot upload mysql data"
    echo "cannot upload mysql data"|mail -s "send by shell" $mailaddress
    exit 1 
fi  

#删除30天以前的备份
filelist=`ls $backup_path`
                                                                                                             
deltime=`expr $time - 30 \* 86400 ` #获取30天前的时间戳
#delday=`date -r $deltime "+%Y%m%d"` #获取30天前的日期mac os                                                 
#delday=`date -d @$deltime "+%Y%m%d"` #获取30天前的日期 linux

for file in $filelist                                                                                        
do
    #获取备份文件的创建时间
    file_time=`stat -c %Y $backup_path$file`
    if [ "$file_time" -lt "$deltime" ];then
        rm -rf $backup_path$file
    fi
done  

echo "${day} - 数据库备份成功"|mail -s "${filename} - 数据库备份成功" $mailaddress


相关文章

网友评论

      本文标题:Linux使用shell脚本备份数据库

      本文链接:https://www.haomeiwen.com/subject/lzkwictx.html