tft每日頭條

 > 科技

 > 數據庫中備份命令語句

數據庫中備份命令語句

科技 更新时间:2024-08-12 20:12:26
概述

如何用shell腳本的case語句備份MySQL數據庫?下面分享一個備份的腳本,大家可以看下。

數據庫中備份命令語句(如何利用case備份數據庫--)1


需求:

利用case語句備份數據庫,要求

1.執行db_dump.sh westos (數據庫密碼)

2.腳本執行後會備份數據庫中的所有數據到/mnt/mysqldump目錄下

3.備份文件名稱為“庫名稱.sql”,當此文件存在是跳過,并詢問動作

4.輸入”s“跳過備份,輸入”b“備份“庫名稱.sql”文件為”庫名稱_backup.sql”,輸入”o“覆蓋原文件


1.腳本内容:

#!/bin/bash DATABASE=`mysql -uroot -EN -e "show databases;" | grep -E "^\*|schema$" -v` mkdir -p /mnt/mysqldump //建立目錄 for DATABASE_NAME in $DATABASE do [ -e "/mnt/mysqldump/${DATABASE_NAME}.sql" ] || { mysqldump -uroot $DATABASE_NAME > /mnt/mysqldump/${DATABASE_NAME}.sql echo -e "${DATABASE_NAME}.sql is backup!!" //文件不存在,備份 } && { //文件存在時詢問動作 read -p "[S]kip [B]ackup [O]verwrite Please input action: " ACTION ACTION=`echo $ACTION | tr 'A-Z' 'a-z'` case $ACTION in s) //直接跳過 ;; b) //更新名字備份 mysqldump -uroot $DATABASE_NAME > /mnt/mysqldump/${DATABASE_NAME}_backup.sql echo "${DATABASE_NAME}_backup.sql is backup!!" ;; o) //覆蓋備份 mysqldump -uroot $DATABASE_NAME > /mnt/mysqldump/${DATABASE_NAME}.sql echo "${DATABASE_NAME}.sql is overwrite!!" ;; exit) //退出 echo "bye" exit 0 ;; *) //其他顯示錯誤 echo error esac } done

數據庫中備份命令語句(如何利用case備份數據庫--)2


2.執行

[root@localhost mnt]# sh db_dump.sh linux.sql is backup!! [S]kip [B]ackup [O]verwrite Please input action: s mysql.sql is backup!! [S]kip [B]ackup [O]verwrite Please input action: exit bye [root@localhost mnt]# sh db_dump.sh [S]kip [B]ackup [O]verwrite Please input action: b linux_backup.sql is backup!! [S]kip [B]ackup [O]verwrite Please input action: exit bye [root@localhost mnt]# sh db_dump.sh [S]kip [B]ackup [O]verwrite Please input action: o linux.sql is overwrite!! [S]kip [B]ackup [O]verwrite Please input action: exit bye

數據庫中備份命令語句(如何利用case備份數據庫--)3


大家有空也可以自己測試一下,不過建議改寫成自動定時備份好點,比較有實際意義。後面小編會分享更多Linux方面内容,感興趣的朋友走一波關注哩~

數據庫中備份命令語句(如何利用case備份數據庫--)4

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved