linux shell指令碼備份mysql資料庫

2021-09-07 06:24:12 字數 1026 閱讀 3267

#!/bin/sh

# 備份資料庫

# mysql 使用者名稱密碼

mysql_user=root

mysql_pass=root

backup_dir=/data/backup/mysql

data_dir=/data/backup/dbdata

# 查詢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".gz"

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

find $backup_dir -name "mysql_*.gz" -type f -mtime +30 -exec rm {} \;

# 迴圈備份資料庫

for dbname in $dbs

do if [ ! -d $ ]; then

mkdir -p $

fisql_file=$dbname-$date".sql"

/usr/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

LINUX shell指令碼練習 備份檔案(1)

接觸linux時間還很短,利用學到的一點知識編寫了乙個shell指令碼的小練習程式,來幫助自己熟悉linux系統和簡單的指令碼程式設計。寫乙個指令碼來備份乙個檔案。要求 1,先建立乙個備份目錄 opt backup 先判斷有沒有,沒有則建立 2,指令碼名backup.sh,執行的時候後面接乙個當前目...

分享我的自動備份指令碼 Linux shell

linux shell 乙個自動備份指令碼 有時自己在拍照的時候希望能把自己的 實時的備份到乙個目錄,但有經常有新的 更新。所以我就寫了乙個這樣的指令碼,它可一把你備份目錄沒有的檔案實時的進行備份,目前這個指令碼的缺點是他這能備份你備份目錄不存在的檔案 但不能備份你那些經常修改的文件之類的。所以目前...

Linux Shell指令碼基礎

shell指令碼在處理自動迴圈或大的任務方面可節省大量時間,且功能強大。任何指令碼都可能有注釋,加注釋需要此行的第乙個字元為 直譯器對此行不予解釋。指令碼不是複雜的程式,它是按行解釋的。指令碼第一行總是以 bin sh開始,這段指令碼通知shell使用系統上的 bourne shell直譯器。指令碼...