1. 程式人生 > >mysqldump 對Mysql資料庫 每天完全備份執行指令碼

mysqldump 對Mysql資料庫 每天完全備份執行指令碼

備份思想:每天凌晨進行全備份, 保留最近一週的, 之前保留間隔10天的, 保留3個月以內的

建立 backup_mysql.sh 檔案

mysqldump -h localhost -u root  -p123 test > /opt/data/mysqlbak/test_`date +%Y%m%d`.sql
find /opt/data/mysqlbak/ -mtime +7 -name '*[1-9].sql' -exec rm -rf {} \;
find /opt/data/mysqlbak/ -mtime +92 -name '*.sql' -exec rm -rf {} \;

建立定時執行任務

crontab - e 命令編輯執行任務

0 4 * * *  /home/backup_mysql.sh

wq 儲存, 每天凌晨4點執行備份指令碼

以下是 crontab 檔案的格式:

{minute}{hour}{day-of-month}{month}{day-of-week}{full-path-to-shell-script}
  • minute:區間為0–59;
  • hour:區間為0–23;
  • day-of-month:區間為0–31;
  • month:區間為1–12;1是1月,12是12月;
  • Day-of-week:區間為0–6;週日是0。

除了數字還有以下幾個特殊的符號需要特殊說明:
*:代表所有的取值範圍內的數字;
/:代表每的意思,”*/5″表示每5個單位;
-

:代表從某個數字到某個數字;
,:分開幾個離散的數字。

以下舉幾個例子說明問題:

每五分鐘執行*/5 * * * * /home/jelly/test.sh
每小時執行0****/home/jelly/test.sh
每天執行00***/home/jelly/test.sh
每週執行00**0/home/jelly/test.sh
每月執行001**/home/jelly/test.sh
每年執行0011*/home/jelly/test.sh

每天早上606***/home/jelly/test.sh
每兩個小時0*/2 * * * /home/jelly/test.sh

晚上11點到早上8點之間每兩個小時023-7/2***/home/jelly/test.sh

1
1日早上40411*/home/jelly/test.sh