Ubuntu

使用 crontab 自動創建備份

  • March 26, 2018

我正在嘗試使用 crontab 自動備份 mysql 數據庫,但是當我直接使用命令 int /etc/crontab 文件時,備份創建成功

19 16 * * * root mysqldump -u root -prootroot -h192.168.4.5 radius  | gzip > /etc/freeradius/nh.sql.gz

上面的命令很好用,但是當我在文件中執行這個命令並從 crontab 執行文件時,無法創建數據庫,這是 /etc/freeradius/backup.sh 的內容

mysqldump -u root -prootroot -h192.168.4.5 radius | gzip > /etc/freeradius/nh.sql.gz

這是 crontab 文件的內容

46 16     * * *   root    /etc/freeradius/backup.sh

但是即使命令像我在 syslog 文件中看到的那樣執行,也沒有任何事情發生

創建一個文件db_dump.sh-> 腳本將數據庫的內容轉儲到目錄“/backups/”中的單獨文件中

#!/bin/bash

mysqldump -x --add-drop-table  --all-databases > /backups/mysqldb-`date +%F-%I%p`.sql

/usr/bin/mysql -e 'show databases' | /usr/bin/awk '{print $1}' | /bin/grep -v "^Database$" | /usr/bin/xargs -i{} /usr/bin/mysqldump --single-transaction --opt -Q -r /backups/`date +%F-%I%p`-{}.sql {}

gzip -q /backups/*.sql

確保它db_dump.sh是可執行的。

添加到 crontab,在我的情況下,每天晚上 10 點:

crontab -e

並添加:

0 22 * * * /db_dump.sh

有關完整備份和很好的解釋,請訪問:https ://github.com/zauberware/automated-server-backups

引用自:https://serverfault.com/questions/870194