crontab -e
次のように使用して cronjob を設定しました。
12 22 * * * /usr/bin/mysql >> < FILE PATH >
これは mysql コマンドを実行しません。空のファイルを作成するだけです。一方、mysqldump コマンドは cron 経由で実行されています。問題は何でしょうか?
crontab -e
次のように使用して cronjob を設定しました。
12 22 * * * /usr/bin/mysql >> < FILE PATH >
これは mysql コマンドを実行しません。空のファイルを作成するだけです。一方、mysqldump コマンドは cron 経由で実行されています。問題は何でしょうか?
確かmysql
に、MySQL へのインタラクティブなインターフェイスです。
mysql
を実行して出力をファイルに追加しているだけだと仮定すると>>
、最初に標準入力から読み取ろうとすると、おそらくファイルの終わりを取得して終了します。
おそらく、次のようなコマンドを処理することを考えたいと思うかもしれません:
12 22 * * * /usr/bin/mysql
-u me
-p never_you_mind
-e "select * from my_table"
-D my_database
>>/home/me/output_file
(読みやすくするために複数行に分割されていますが、1 行にする必要があります)。
余談ですがps
、プロセスの実行中にパスワードが表示される可能性があるため、これはあまり安全ではありません。これは一例にすぎないので、あまり心配していませんが、my.cnf
このパスをたどる場合は、パスワードを適切に保護されたファイルに保存することを検討してください。
MySQLコマンドを実行するシェルスクリプトを実行するという点ではcron
、それも同様に機能するはずです。1 つの選択肢は、ヒアドキュメントを使用することです。
/usr/bin/mysql -u me -p never_you_mind -D my_database <<EOF
select * from my_table
select * from my_other_table where id = 74
EOF