linux設置定時任務備份mysql數據庫


1.用root登錄服務器,先看服務器能否遠程連接數據庫,不能的話執行 yum install mariadb 語句,安裝完畢之后就能遠程連接mysql數據庫

2.編寫定時任務執行文件

#!/bin/bash
backupdir=/data/mcoop/backup
user=root
port=3307
password=nkNXJFhEoMjH0Ero
host=172.27.0.8
file=increment

echo "backup start" `date` >> $backupdir/backup_history.log

#case `date +%u` in
# 1)
echo "logic full backup" >> $backupdir/backup_history.log
mysqldump -u$user -p$password -h$host -P$port -e --single-transaction --max_allowed_packet=503316480 --net_buffer_length=16384 --opt --default-character-set=utf8 --hex-blob mcoop --skip-triggers | gzip >$backupdir/mcoop_`date +%Y%m%d%H%M%S`.zip
# ;;
# *) echo "error" >> $backupdir/backup_history.log
# ;;

注解:
(1、執行 /usr/bin/mysqldump;
(2、--opt是quick,add-drop-table,add-locks,extended-insert,lock-tables幾個參數的合稱,一般都要使用,具體意思自行搜索;
(3、-u數據庫用戶名 -p數據庫用戶密碼 -h數據庫地址 -P端口號 數據庫名 > 導出的文件路徑;
(4、`date +%Y%m%d%H%M%S`是shell中生成當前時間,包括時分秒,格式如2019-11-05,所以成功導出時生成的文件名為 mcoop_20191105030001.zip;
(5、下載生成的 sql文件 ,用文本編輯器打開檢查,本地導入測試數據庫,看是否有問題;

3.查看定時任務

crontab -l

4,vi root 編輯定時任務 編輯完成后,點ESC,然后:wq

00 03 *   * * /bin/sh /data/mcoop/backup/backup.sh   每天凌晨3點執行一次上述的命令文件,備份數據庫

時間格式

分鍾 小時 日期 月份 周 命令

數字范圍 0-59 0-23 1-31 1-12 0-7 echo "hello" >> abc.log

特殊字符的含義

*(星號) 代表任何時刻都接受。

,(逗號) 代表分隔時段的意思。

-(減號) 代表一段時間范圍內。

/n(斜線) 那個 n 代表數字,每隔 n 單位間隔。

eg1: 每年的五月一日 10:5 執行一次

5 10 1 5 * command(要是執行網址(curl "http://網址"),或者執行其它的直接寫路徑)

eg2: 每天的三點,六點各執行一次

00 3,6 * * * command

eg3: 每天的8:20, 9:20,10:20,11:20各執行一次

20 8-11 * * * command

eg4: 每五分鍾執行一次

*/5 * * * * command

eg5: 每周一十點執行一次

00 10 * * 1 command

5、重新啟動

#service crond restart


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM