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