Shell指令碼備份資料庫生成壓縮包

2021-10-21 03:50:36 字數 1328 閱讀 2426

#!/bin/sh

# 備份資料庫

# mysql 使用者名稱密碼

mysql_user=root

mysql_pass=root

backup_dir=/

data

/backup/mysql

data_dir=/

data

/backup/dbdata

rm-f $backup_dir/*

# 查詢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)

# 當前日期

date=$(date -d '+0 days'

+%y%m%d%h%m)

# 打包名稱

zip_name="mysql_"

$date

".tar.gz"

# 刪除乙個月之前的資料庫備份

find $backup_dir

-name "mysql_*tar.gz"

-type f -mtime +30 -exec rm

\;# 迴圈備份資料庫

for dbname in $dbs

doif

["$dbname"

!= "庫名"

]; then

continue

fiif[!

-d $

]; then

mkdir -p $

fisql_file=$dbname

-$date

".sql"

/usr/local/mysql/bin/mysqldump -u$mysql_user

-p$mysql_pass

$dbname > $data_dir

/$sql_file

done

# tar打包所有sql檔案

tar -czvpf $backup_dir

/$zip_name

$data_dir

# 打包成功後刪除sql檔案

if[ $? = 0 ]

; then

rm-r $data_dir

fi

shell指令碼備份資料庫

自學使用shell指令碼備份資料庫,記錄一下 bin bash 定義變數 backdir mysql back date y m d t mysqldb 要備份的資料庫 mysqldb mysql mysqlusr root 手動輸入資料庫密碼 read p enter your password ...

Shell 定時備份資料庫指令碼

每天凌晨 2 10 備份 資料庫 atguigudb 到 data backup db 備份開始和備份結束能夠給出相應的提示資訊 備份後的檔案要求以備份時間為檔名,並打包成 tar.gz 的形式,比如 2018 03 12 230201.tar.gz 在備份的同時,檢查是否有 10 天前備份的資料庫...

shell指令碼定時備份資料庫

bin bash 功能說明 本功能用於備份mysql資料庫 path bin sbin usr bin usr sbin usr local bin usr local sbin usr local mysql bin export path 資料庫使用者名稱 dbuser 資料庫密碼 dbpass...