Centos

Centos 使用 cron 作業備份 mysql

  • October 21, 2013

根據本教程http://www.a2hosting.com/kb/getting-started-guide/backing-up-your-data/backups-on-dedicated-servers-and-vps嘗試備份 mysql 數據庫

我做了:

1)在home目錄中創建文件夾。/home/USERNAME/backup/

2)在文件夾中backup創建的文件,命名backup-cron-mysql.sh

3)創建的內容backup-cron-mysql.sh

#!/bin/bash
db_name=dabase_name
db_user=user
db_password=password
backup_filename=$db_name-`date +%F`

mysqldump -h localhost -u $db_user -p$db_password $db_name | gzip > /home/USERNAME/dbbackup/$backup_filename.sql.gz

使 backup-cron-mysql.sh 可執行(八進制:0755)

4)創建文件夾dbbackup。小路:/home/USERNAME/dbbackup/

5)使用putty.exe登錄並輸入crontab –e,然後輸入。後來發現cron配置文件位於目錄/var/spool/cron/下,文件名是root

6)root用記事本++打開文件並粘貼以下程式碼

45 14 * * *     /bin/sh /home/USERNAME/backup/backup-cron-mysql.sh
MAILTO=my@mail.com

結果/home/USERNAME/dbbackup/必須看到一些文件。但什麼也看不到(空文件夾)。

請指教需要糾正什麼,備份mysql

檢查以下文件以獲取 cron 日誌輸出。/var/log/系統日誌

您還可以使用以下命令過濾日誌:

grep CRON /var/log/syslog

要配置登錄您的 cron 作業:

45 14 * * *     /bin/sh /home/USERNAME/backup/backup-cron-mysql.sh 2>&1 >> /var/log/myjob.log

https://askubuntu.com/questions/56683/where-is-the-cron-crontab-log

一些想法:

  1. 由於您使用的是 CentOS,因此 Cron 日誌的預設位置應該是/var/log/cron. 那裡可能沒有太多資訊,但它至少應該告訴您 Cron 守護程序是否正在嘗試執行您的腳本。
  2. 上面 Zeeshan 的輸出重定向可能會成功,但更簡單的表示法是使用“將所有輸出重定向到文件”……例如

45 14 * * * /bin/sh /home/USERNAME/backup/backup-cron-mysql.sh &> /some/file

Bash 重定向方法的一個很好的概述位於此處:

http ://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html 3. Crontab 文件在幾個方面都很挑剔。一種方法是它們需要一個空行作為文件中的最後一行。我建議確保文件末尾至少有一個空行(有幾個不會有什麼壞處,所以你可以在裡面放幾行。) 4. 在嘗試使用 Cron 自動執行備份腳本之前,您是否手動執行過備份腳本?如果腳本本身存在問題,在其之上添加 Cron 自動化只會使故障排除更加困難。

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