web-dev-qa-db-ja.com

cronジョブを使用したCentosバックアップ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)フォルダbackupbackup-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実行可能ファイルを作成(10月:0755)

4)フォルダーdbbackupを作成しました。パス:/home/USERNAME/dbbackup/

5)ログインしてPuTTY.exeを使用し、crontab –eと入力して、Enterキーを押します。後で、cron構成ファイルがディレクトリ/var/spool/cron/にあり、ファイル名がrootであることがわかりました。

6)Notepad ++でrootファイルを開き、次のコードを貼り付けました

45 14 * * *     /bin/sh /home/USERNAME/backup/backup-cron-mysql.sh
[email protected]

結果として、/home/USERNAME/dbbackup/はいくつかのファイルを参照する必要があります。しかし、何も表示されません(空のフォルダー)。

Mysqlをバックアップするために何を修正する必要があるかアドバイスしてください

2
Andris

以下のファイルでcronログの出力を確認してください。/var/log/syslog

次のコマンドを使用してログをフィルタリングすることもできます。

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

0
Zeeshan

いくつかの考え:

  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ファイルは、いくつかの点で細心の注意を払っています。 1つの方法は、ファイルの最後の行として空白行を必要とすることです。ファイルの最後に少なくとも1行の空行があることを確認することをお勧めします(数行があっても問題ないので、そこにカップルを入れて適切に測定できます)。

  4. Cronで自動化する前に、バックアップスクリプトを手動で実行しましたか?スクリプト自体に問題がある場合、その上にCron自動化を追加すると、トラブルシューティングが難しくなるだけです。

2
jon