Crontabの編集

Crontabの編集

mysqldump、screen、crontab を使用して、データベースのテーブルを毎日バックアップしようとしています。 のみを実行すると、mysqldump正しくダンプされますが、 を介して実行するとscreen、出力ファイルは空白になります。

Crontabの編集

crontab -e

コマンドの追加

0 0 * * * screen -dmS MYDATABASE_MYTABLE_backup mysqldump -u MYUSERNAME -pMYPASSWORD -h MYHOSTNAME MYDATABASE MYTABLE --compress | gzip > /root/backup/database/MYDATABASE_MYTABLE_`date +\%Y-\%m-\%d`.sql.gz

答え1

このシナリオで screen を使って何を達成したいのか、なぜそれが必要なのか、よくわかりません。しかし、screen の出力をダンプ ファイルにパイプ (| .. > を使用) しているのであって、screen で実行されるプログラムの出力ではありません。コマンド全体を引用符で囲むか、コマンドをスクリプト ファイルに入れて、代わりにスクリプトを呼び出す方がよいでしょう。

myscript.sh:

#!/bin/sh
mysqldump -u MYUSERNAME -pMYPASSWORD -h MYHOSTNAME MYDATABASE MYTABLE --compress | gzip > /root/backup/database/MYDATABASE_MYTABLE_`date +\%Y-\%m-\%d`.sql.gz

画面 -dmS MYDATABASE_MYTABLE_backup myscript.sh

関連情報