Linux自動備份MySQL

王道中強流發表於2019-02-16

首先找到你的MySQL配置檔案my.cnf

$ locate my.cnf
> /etc/my.cnf

然後修改它,

$ nano /etc/my.cnf

[client]裡增加三行:

host = localhost
user = root
password = yourpassword

本來不需要這些操作,直接把使用者名稱密碼寫到備份指令碼里就可以,
但是 MySQL 5.6 之後在命令列裡寫密碼會出現警告。

然後建立指令碼檔案mybak.sh

$ nano ~/mybak.sh

檔案內容如下:

#!/bin/bash

root="/data/backup/"
dir=`date "+%y%m%d/"`

mkdir -p $root$dir
cd $root$dir

/usr/local/mysql/bin/mysqldump db1 > db1.sql
/usr/local/mysql/bin/mysqldump db2 > db2.sql
/usr/local/mysql/bin/mysqldump db3 > db3.sql

記得給它執行的許可權:

$ chmod +x ~/mybak.sh

然後再修改crontab

$ export EDITOR=nano
$ crontab -e

export EDITOR=nano 將nano設定為預設編輯器

新增一行

0 1 * * * ~/mybak.sh >> ~/mybak.log 2>&1 &

意思是每天1:00的時候執行~/mybak.sh,並且將所有輸出記錄到~/mybak.log

相關文章