Centos 使用 cron 作業備份 mysql
根據本教程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
一些想法:
- 由於您使用的是 CentOS,因此 Cron 日誌的預設位置應該是
/var/log/cron
. 那裡可能沒有太多資訊,但它至少應該告訴您 Cron 守護程序是否正在嘗試執行您的腳本。- 上面 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 自動化只會使故障排除更加困難。