Linux系统shell脚本之mysql备份

Posted 江湖有缘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统shell脚本之mysql备份相关的知识,希望对你有一定的参考价值。

Linux系统shell脚本之mysql备份

一、脚本要求

1.备份/var/lib/mysql的内容
2.备份mysql数据库全部内容
3.单独备份mysql内每个数据库

二、脚本内容

[root@192 scripts]# cat ./mysql_bak.sh 
#!/bin/bash
########################################
#Author:jeven
#time:Fri 20 May 2022 07:20:38 PM CST
#filename:mysql_bak.sh
#Script description:
######################################

# Database info

DB_USER="admin"
DB_PASS="admin123"
DB_HOST="192.168.3.146"
MYSQL_DIR=/var/lib/mysql/
DATE=$(date '+%Y%m%H%M')

if [ ! -d  /backup/mysql ];then
         mkdir -p /backup/mysql
        
else
 cp -ar $MYSQL_DIR /backup/mysql/mysql-$DATE

/usr/bin/mysqldump -h"$DB_HOST"  -u"$DB_USER" -p"$DB_PASS" --all-databases >  /backup/mysql/all_databases.sql-$DATE

DB_NAME=$(mysql -h"$DB_HOST"  -u"$DB_USER" -p"$DB_PASS" -Bse 'show databases')
for i in $DB_NAME
do
              /usr/bin/mysqldump -h"$DB_HOST"  -u"$DB_USER" -p"$DB_PASS" $i  --skip-lock-tables  > /backup/mysql/$i.sql-$DATE
done
fi




三、脚本执行结果

[root@192 scripts]# ./mysql_bak.sh
[root@192 mysql]# ll /backup/mysql/
total 2244
-rw-r--r--  1 root  root   514276 May 20 22:34 all_databases.sql-2022052234
-rw-r--r--  1 root  root  1244117 May 20 22:34 information_schema.sql-2022052234
drwxr-xr-x. 4 mysql mysql     165 May 20 19:40 mysql-2022052234
-rw-r--r--  1 root  root   514139 May 20 22:34 mysql.sql-2022052234
-rw-r--r--  1 root  root    16744 May 20 22:34 performance_schema.sql-2022052234
[root@192 mysql]# 

以上是关于Linux系统shell脚本之mysql备份的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统shell脚本之定期清理备份文件

linux下shell编程之mysql备份(适合初学者)

Linux学习日记—Shell脚本与计划任务

Linux学习日记—Shell脚本与计划任务

Linux之常用Shell脚本总结

Linux系统shell脚本入门之break