定期備份Mysql資料庫

2021-08-25 00:14:28 字數 2242 閱讀 8296

#!/bin/sh

# system + mysql backup script

# full backup day - sun (rest of the day do incremental backup)

# this script is licensed under gnu gpl version 2.0 or above

# automatically generated by 

# ### system setup ###

##備份本件本地目錄##

dirs="/home/***x"

backup=/tmp/backup.$$

##日期格式 可以自己調節##

now=$(date +"%y-%m-%d")

incfile="/home/***x"

day=$(date +"%u")

##星期天完全備份 可以自己調節##

fullbackup="7"

### mysql setup ###

muser="chaos"

mpass="password"

mhost="host"

mysql="$(which mysql)"

mysqldump="$(which mysqldump)"

gzip="$(which gzip)"

### ftp server setup ###

##增量備份路徑##

ftpd="/backup/***x/incremental"

ftpu="chaos"

ftpp="password"

ftps="***.***.com"

### other stuff ###

emailid="[email protected]"

### start backup for file system ###

[ ! -d $backup ] && mkdir -p $backup || :

### see if we want to make a full backup ###

if [ "$day" == "$fullbackup" ]; then

##完全備份路徑##

ftpd="/backup/***x/full"

file="fs-full-$now.tar.gz"

tar -zcvf $backup/$file $dirs

else

i=$(date +"%hh%mm%ss")

file="fs-i-$now-$i.tar.gz"

tar -g $incfile -zcvf $backup/$file $dirs

fi### start mysql backup ###

# get all databases name

##備份所有資料庫 可自行調整 或備份指定資料庫##

dbs="$($mysql -u $muser -h $mhost -p$mpass -bse 'show databases')"

for db in $dbs

dofile=$backup/mysql-$db.$now-$(date +"%t").gz

$mysqldump -u $muser -h $mhost -p$mpass $db | $gzip -9 > $file

done

### dump backup using ftp ###

#start ftp backup using lftp

##ubuntu上可以使用ncftp 自行調節##

#ncftp -u"$ftpu" -p"$ftpp" $ftpsmkdir $ftpd/$now

cd $ftpd/$now

lcd $backup

mput *

quit

eof### find out if ftp backup failed or not ###

if [ "$?" == "0" ]; then

rm -f $backup/*

else

t=/tmp/backup.fail

echo "date: $(date)">$t

echo "hostname: $(hostname)" >>$t

echo "backup failed" >>$t

mail  -s "backup failed" "$emailid" <$t

rm -f $t

fi 改一下裡面的一些路徑和賬號密碼等資訊就可以了

docker上定期備份mysql資料庫

container name 容器名稱,此處也可填容器id。db user 資料庫賬號。db password 資料庫密碼。database 要備份的資料庫。file path 備份出來的檔名。docker exec it mysqldump u p 1.能指定要備份的資料庫 2.將備份出來的sql...

linux資料庫定期備份

目標 每隔1分鐘,匯出.sql,壓縮,並按日期儲存在 data 下,每分鐘後刪除.sql檔案,每隔2分鐘刪除.tar.gz檔案 知識 定時任務 crontab mysqldump 匯出 tar 打包壓縮,按日期建立檔案 date 準備部分 1.建立mysqldump軟鏈結 必須在 目錄下建立軟鏈結 ...

定期備份資料庫資料

場景 整庫備份,用exp方式,按周迴圈,備份檔案存在oracle下的db backup目錄,周一備份到成dbbackup 1.dmp,周二 dbbackup 2.dmp,週三 dbbackup 3.dmp,周四 dbbackup 4.dmp,周五 dbbackup 5.dmp,週六 dbbackup...