1. 程式人生 > >mysql資料庫定時備份,儲存3天

mysql資料庫定時備份,儲存3天

mysql備份

備份指令碼,檔案保留3天

#!/bin/bash
backupdir=/home/backup/mysql
# 定義備份檔案存放目標
time=_`date +%Y%m%d_%H%M%S`
# 定義時間格式
db1_name=crm
# 定義資料庫1的庫名
db2_name=jira
# 定義資料庫2的庫名
db3_name=oa
# 定義資料庫3的庫名
db4_name=sso
# 定義資料庫4的庫名
mysqldump $db1_name | gzip > $backupdir/$db1_name$time.sql.gz
mysqldump $db2_name | gzip > $backupdir/$db2_name$time.sql.gz
mysqldump $db3_name | gzip > $backupdir/$db3_name$time.sql.gz
mysqldump $db4_name | gzip > $backupdir/$db4_name$time.sql.gz
# 備份資料庫 ,以gzip格式進行壓縮,並命名為 dbname_time_sql.gz格式
find $backupdir -name "*.sql.gz" -type f -mtime +3 -exec rm {} \; > /dev/null 2>&1
# 查詢資料庫備份目錄下符合條件為 ".sql.gz"結尾、檔案mtime時間為3天前的檔案,並執行刪除操作,丟棄所有輸出資訊

注: 規避mysql輸出告警

如果使用 “mysqldump -uusername -ppassword DatabaseName”格式命令 mysql5.7在終端輸出告警“mysqldump: [Warning] Using a password on the command line interface can be insecure” 影響指令碼美觀

規避方法: 在/etc/my.cnf檔案中加入[mysqldump]模組

命令:vi /etc/my.cnf

....
[mysqldump]
user="root"
password="Password"

在配置檔案中新增mysqldump模組之後,即可使用“mysqldump DatabaseNmae”命令格式進行備份,無需在命令列中新增“使用者名稱、密碼等資訊”,即可避免mysql告警。 為了保證密碼的安全建議將/etc/my.cnf 檔案許可權改為640 ,避免密碼外漏。

定時備份

使用crontab定時任務,完成定時備份任務

命令: crontab -e

0 1 * * * /root/mysqlbackup.sh

可使用“crontab -l” 命令檢視定時任務。

[[email protected] ~]# crontab -l
*/20 * * * * /sbin/ntpdate pool.ntp.org > /dev/null 2>&1
0 18 * * * /root/mysqlbackup.sh