MySQL簡單備份指令碼

2021-08-15 02:35:42 字數 1597 閱讀 7806

mkdir /backup

mkdir /backup/backupset

mkdir /backup/script

# 建立備份目錄,存放指令碼和備份集

# 這是乙個使用mysqldump的簡單備份指令碼

# 使用該命令mysqldump會鎖表

# 如果資料庫有較大容量的表時不建議使用該命令備份庫

# 建議使用xtrabackup命令進行備份

vi /backup/script/backup.sh

#!/bin/sh

. ~/.bash_profile

myuser=root

mypass=vincent

databases="mysql test"

logfile=/backup/script/log_backup.log

socket=/usr/local/mariadb/run/mysql.sock

mycmd="/usr/local/mariadb/bin/mysql -u$myuser -p$mypass -s$socket"

mydump="/usr/local/mariadb/bin/mysqldump -u$myuser -p$mypass -b --flush-privileges --single-transaction --master-data=2 --triggers --routines --events --hex-blob -s$socket"

# --flush-logs

time=$(date +%f_%h-%m-%s)

echo

-e''

$_'\b#'>>$logfile

echo

-e''

$_'\b#'>>$logfile

echo

-e"\n$(date +%f' '%t) [info] start backup database\n">>$logfile

for database in$do

echo

-e"$(date +%f' '%t) [info] start backup database $database">>$logfile

$mydump

$database|gzip >/backup/backupset/$_$.sql.gz

zcat /backup/backupset/$_$.sql.gz|head -50|grep 'change master to'>>$logfile

echo

-e"$(date +%f' '%t) [info] end backup database $database\n">>$logfile

find /backup/backupset -name "$database*" -mtime +3 -exec rm -f {} \;

done

# 指令碼如上

chmod +x /backup/script/backup.sh

# 新增可執行許可權

crontab -l

#maridb backup

00 * * * /backup/script/backup.sh

# 新增自動任務

編寫mysql備份指令碼 mysql 備份指令碼的編寫

最近在為做一些邊邊角角的工作,現在有乙個需求要每天把mysql的資料庫dump出來到備份機器上面去.看似簡單的任務也潛在了很多的需求,整理如下 自動執行 crontab 指令碼的環境變數設定 由於通過crontab 啟動執行的指令碼環境變數沒有設定,需要在指令碼中設定環境變數 使用何種方式備份資料庫...

mysql備份 MySQL備份指令碼

第乙個指令碼 bin bash mysql備份指令碼bak dir data backup date y m d mysqldb 資料庫名mysqluser 使用者mysqlpwd 密碼mysqlcmd usr bin mysqldumpmysqlser 資料庫伺服器mysqlport 埠if d ...

mysql的備份指令碼 mysql的備份指令碼

1 描述 我相信很多朋友在工作都都會有這種需求,老闆或領導讓你每天都要備份mysql資料庫,你該如何實現呢,是每天到一定的時間在伺服器上敲一遍mysql的備份命令,還是想寫個指令碼,定時定點的自動備份呢?我相信大家都想讓它自動備份,接下來我通 shell指令碼 定時任務 的方式來實現自動備份mysq...