1. 程式人生 > >[MySQL] shell指令碼備份mysql裡面所有資料庫到遠端伺服器

[MySQL] shell指令碼備份mysql裡面所有資料庫到遠端伺服器

本地資料庫mysql,有多個數據庫要備份到遠端伺服器上,遠端伺服器提供vsftp服務

1 - 建立一個shell指令碼,寫入以下內容並儲存

vi.mysql_back.sh

寫入

#!/bin/bash

BIN_DIR="/usr/bin"
BACKUP_DIR="/var/mysql_dump/data"
DATE=`date +%Y%m%d`
mkdir -p $BACKUP_DIR

MYSQL=mysql
HOST="10.XXX.XX.XX"
USER="user"
PASSWORD="password"




# 獲取本地伺服器IP地址

local_ip=$(ifconfig | grep "inet addr" | grep -v 127.0.0.1 | awk '{print $2}' | awk -F ':' '{print $2}')




# 檢視mysql裡面所有資料庫名

command="show databases"
declare DBS=`$MYSQL -h${HOST} -u${USER} -p${PASSWORD} -e "${command}" --skip-column-name`
for DB_NAME in $DBS
do
        if [ "$DB_NAME" != "information_schema" ] && [ "$DB_NAME" != "mysql" ] && [ "$DB_NAME" != "performance_schema" ] && [ "$DB_NAME" != "tower_debug21" ]
        then
        #echo "$DB_NAME"

        # mysqldump出每個資料庫的備份,並壓縮
        $BIN_DIR/mysqldump --opt -u$USER -p$PASSWORD $DB_NAME | gzip > $BACKUP_DIR/$DB_NAME.dump_$DATE.sql.gz
        fi
done




# 上傳到遠端ftp 

ftp -n<<!
open 10.XXX.XX.XXX    
user ftpuser ******           
binary
hash
cd backups/database/$local_ip/
lcd $BACKUP_DIR                     
prompt
mput *.sql.gz

close
bye
!

rm -rf $BACKUP_DIR/*


2 - 修改屬性為可執行

chmod 755 mysql_back.sh

3 - crond定時任務每天00:00:00定時執行

0 0 * * * /var/mysql_dump/mysql_back.sh > /dev/null 2>&1



相關推薦

[MySQL] shell指令碼備份mysql裡面所有資料庫遠端伺服器

本地資料庫mysql,有多個數據庫要備份到遠端伺服器上,遠端伺服器提供vsftp服務1 - 建立一個shell指令碼,寫入以下內容並儲存vi.mysql_back.sh寫入#!/bin/bash BIN_DIR="/usr/bin" BACKUP_DIR="/var/mys

shell指令碼備份mysql資料表(分表備份

    有時候不僅需要備份指定的資料表,還需要備份資料庫中的所有資料表,老規矩,直接上程式碼。 #!/bin/bash HOST=127.0.0.1         #ip地址 USER=LGL                 #資料庫使用者名稱 PASSWORD=123

shell指令碼mysql資料庫備份,並壓縮

db_user="root"db_passwd="xxx"db_host="localhost" databases="xxx-prod" backup_dir="/backup/mysql_backup" backip_test="/home/ttx/app/mysql_backup/today"

shell指令碼實現mysql資料庫的增刪改查操作

一、shell指令碼實現mysql操作 通用的shell語句如下: mysql -hHOSTNAME−P{HOSTNAME} -PHOSTNAME−P{PORT} -uUSERNAME−p{USERNAME} -pUSERNAME−p{PASSWORD} -

python3.6指令碼備份mysql資料庫

環境cnetos7.3+python3.6+mysql5.7 安裝python3.6環境 1.安裝IUS軟體源 安裝EPEL依賴 sudo yum install epel-release 2.安裝python3.6 sudo yum install pyth

shell指令碼查詢MYSQL資料庫並進行相應處理

實際應用中用到利用shell指令碼執行一系列與mysql表中資料相關的操作,因此需要將mysql表中資料作為shell指令碼引數。shell指令碼如下: hostname=ipaddress port="3306" username="abcd" password="123

shell指令碼實現mysql資料庫表和表結構的對比

在專案維護和開發中,經常需要知道兩個資料庫之間有哪些差異,如兩個資料庫中資料表有什麼不同(表的名稱,數量),相同的表字段是否相同(欄位數目,約束,欄位型別,大小等),有各種資料庫管理工具可以實現這一點,但是別人的東西用起來總是沒有自己的順手(比如有的工具直接生成

Linux中使用Shell指令碼插入mysql資料庫中文欄位值亂碼問題

問題描述 我在shell指令碼寫了一段insert到mysql的語句,測試語句如下: mysql -h*** -P3306 -u*** -p*** -D *** -e "insert into test values('123456', '測試')"

shell指令碼操作mysql資料庫,使用mysql的-e引數可以執行各種sql的(建立,刪除,增,刪,改、查)等各種操作

來源:http://blog.163.com/xychenbaihu@yeah/blog/static/13222965520114116289991/ mysql  -hhostname -Pport -uusername -ppassword  -e  相關mysql的

案例:通過shell指令碼實現mysql資料備份與清理

開發十年,就只剩下這套架構體系了! >>>   

Shell指令碼讀取mysql結果集各資料項的值

在linux下用shell指令碼讀取mysql結果集各資料項的值,按行讀取sql結果,將sql執行結果讀取到shell變數中,然就可進行處理。 HOSTNAME="172.16.xx.xx"  

Shell指令碼備份Mongodb資料庫

目錄 環境還原 環境建立 編寫shell指令碼 準備檔案 建立shell指令碼 執行shell指令碼 進階版 感謝 誠邀訪問我的個人部落格:我在馬路邊 更好的閱讀體驗點選檢視原文:Shell指令碼備份Mongodb資料庫 原創部落格,轉

shell指令碼執行mysql儲存過程小記

#!/bin/bash HOSTNAME="127.0.0.1" #資料庫資訊 PORT="3306" USERNAME="root" PASSWORD="pwd" DBNAME="dbname" execSql="call procedureName(DATE_FORMAT(NOW()

shell 指令碼呼叫mysql儲存過程

#!/bin/sh ## The function of the script is used to balance statistics,we get ## data from the table accseqs,after the analysis and cal

Shell指令碼操作MySQL服務

1、編寫Shell指令碼 #! /bin/sh case $1 in start) /usr/local/mysql/bin/mysqld_safe --basedir=/usr/local/mysql --datadir=/usr/local/m

shell指令碼實現mysql自動還原(linux)

#!/bin/bash #主機地址 host="localhost"   #mysql使用者名稱 id="root"       #mysql祕密        pwd="sanyue"dbs=$(echo "show databases;" | mysql -u$id -

shell指令碼-備份上個月的檔案

前提檔案包含日期 #!/bin/bash #輸出上個月的日期 last_month=$(date -d "$(date +%Y%m)01 last month" +%Y%m) echo $last_month cd /log/ #查詢所有上個月日期的檔案 file=$(ls -d

shell指令碼備份更新資源

當檢測到更新目錄內有新的欲更新資源時備份舊的資源並更新新資源 先拷貝資源目錄內的舊資源(備份),然後再對比預備的資源目錄與資源,不存在的目錄直接拷貝,已經存在的目錄先刪除再拷貝 #!/bin/bash

shell指令碼求100以內所有正整數之和

#!/bin/bash declare -i sum=0 for ((i=1;i<=100;i++)) do let sum+=$i done echo "Sum:$sum" 1234567

Mysql 還原大備份mysql檔案失敗的解決方法

恢復一個大的mysql資料庫,恢復失敗.  ---    MySQL server has gone away   錯誤 用下面方法解決(管理mysql用的是navicat).,設定以下幾個引數的值後就正常了,以下語句也可以在mysql的控制檯上執行 . show v