#!/bin/sh# Backup Database # Mysql user name Password mysql_user=rootmysql_pass=rootbackup_dir=/data/backup/mysqldata_dir=/data/backup/ dbdata# queries all database names in MySQL sql_string= "select Schema_name as db from INFORMATION_SCHEMA. Schemata WHERE schema_name not in (' MySQL ', ' information_schema ', ' Performance_schema '); dbs=$ (echo $SQL _string | mysql-u$mysql_user-p$mysql_pass-bs) # current date date=$ (date-d ' +0 days ' +%y%m%d%h%m) # package name Zip_name= " Mysql_ "$DATE". gz "# Delete database backup one months ago Find $BACKUP _dir-name" mysql_*.gz "-type f-mtime +30-exec rm {} \;# loop back up database for DBNAME I n $DBSdo if [!-D ${data_dir}], then mkdir-p ${data_dir } fi sql_file= $DBNAME-$DATE ". SQL" /usr/ Bin/mysqldump-u$mysql_user-p$mysql_pass $DBNAME > $DATA _dir/$SQL _filedone# tar package all SQL files TAR-CZVPF $BACKUP _dir/$ Zip_name $DATA _dir# After the package succeeds, delete the SQL file if [$ = 0]; Then rm-r $DATA _dirfi
Linux shell script backup MySQL Database