Get the App
SLTechnology News&Howtos  ›  Database  › 

Mysql backup script

Shulou Source: shulou.com Published: 2022-06-01 19:15:34 09月11日 Update

Read several scripts on the Internet, slightly modified according to the online, a little more accurate, that is, the lack of logging function, have not decided how to write, follow-up add

#! / bin/bash

# increase the number of backups

Backup_Max_Files=20

# Database backup directory

WORKING_DIR=$ (dirname "$0")

Export WORKING_DIR=$ (cd-P "$WORKING_DIR" / > / dev/null; pwd)

# Database IP address, account number, password

DB_Host= "XXXXXXX"

DB_User= "XXXXXX"

DB_Password= "XXXXXXX"

# databases to be backed up

Databases= (

"mysql"

"zabbix"

)

# =

Echo "# Bash Shell MySql Databases Backup Tools!"

# define variable = current date

Date_Time=$ (date +% F)

# define backup file prefix

BackDataFile=zhang "${Date_Time}"

Cd $WORKING_DIR

Mkdir $BackData_File

# count the number of databases that need to be backed up

Count=0

While ["x$ {Databases [count]}"! = "x"]

Do

Count=$ ((count + 1))

Echo "Databases=$count"

Done

Echo "[+] ${count} The database is about to be backed up"

For Databases in ${Databases [@]}

Do

Echo "[+] MySql-backing up: ${Databases}"

Echo-n "MySql Backup Start:"

Echo $(date + "% Y-%m-%d% H:%M:%S")

# use the Mysqdump tool to make a logical backup (full) and send a successful failure reminder using an email script

If $(mysqldump-h$ {DB_Host}-u$ {DB_User}-p$ {DB_Password}-- single-transaction-- flush-logs mysql > ${BackData_File} / ${Databases} .sql)

Then

Echo "Success Oklahs: Mysql database backup success!"

Python / root/jiaoben/mail.py "y@163.com"${Databases} Database backup succeeded"${Databases} > Database backup succeeded"

Else

Echo "Error notations: Failure of MySQL database backup!"

# python / root/jiaoben/mail.py "y@163.com"${Databases} Database backup failed"${Databases} > Database backup failed Please check"

Fi

Echo-n "Backup success:"

Echo $(date + "% Y-%m-%d% H:%M:%S")

Done

Echo

Echo "[+] Packaging and compressing folders with Tar...."

# package and compress the generated database files using the tar command

Cd $WORKING_DIR

Tar-cv ${BackData_File} | bzip2 > ${BackData_File} .tar.bz2 & & rm-rf ${BackData_File}

# Delete data files backed up n days ago

Echo "[+] Delete over time database backup files...."

Find $WORKINGDIR-name "zhang*.tar.bz2"-mtime + ${Backup_Max_Files}-exec rm-rf {}\

# find $WORKINGDIR-name "zhang*.tar.bz2"-mtime + ${Backup_Max_Files}-exec ls {}\

Replacement: email alarm script (online version, tested and available without problem)

#! / usr/bin/python

Coding=utf-8

# Test method: python 5.py XXXXX@163.com test test

# the ability to send an email indicates a success

Import smtplib

Import sys

From email.mime.text import MIMEText

Class send_mail (): mail_host= "smtp.163.com"

Mail_user= "XXXXXX@163.com" br/ > mail_host= "smtp.163.com"

Mail_user= "XXXXXX@163.com"

Mail_pass= "XXXXXx"

Mail_postfix= "163.com"

Def init (self,sub,content): self.me= "Zabbix-Alter" + "" br/ > self.me= "Zabbix-Alter" + ""

Self.msg ['From'] = self.me

Self.msg ['Subject'] = sub

Def sendMessage (self,user): self.msg ['To'] = ";" .join (user) try: s = smtplib.SMTP_SSL (host=self.mail_host,port=465) s.login (self.mail_user,self.mail_pass) s.sendmail (self.me, user, self.msg.as_string ())

# send email

S.close ()

Except Exception, e:

Print str (e)

If name = 'main':

Mailto_list= []

Mailto_list.append (sys.argv [1])

S = send_mail (sys.argv [2], sys.argv [3])

S.sendMessage (mailto_list)

Tags: Backup data database success mail script file test number prefix function variable command address password that is tool quantity method log Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno MariaDB Shulou Tech Info OPPO Reno MySQL vpn