コマンドラインからMySQLコマンドを実行したときにMySQLからファイルにログをインポートする

コマンドラインからMySQLコマンドを実行したときにMySQLからファイルにログをインポートする

コマンドラインからスクリプトを実行すると、MySQLのログをファイルにインポートしようとします。

例えば

mysql -v mydb u- alex -p**** < please_run_me.sql > /tmp/file.log

これで操作は完了しましたが、file.logは空です。私は-vが私が望む出力を与えると思います。私がどうするか知りたい

  1. MySQLの出力をfile.logにインポートします。
  2. または、操作が失敗した場合にのみfile.logに内容を入力することをお勧めします(ただし、コマンドラインでテストするときに何が起こっているのかを知りたいので、どちらも便利です)。
  3. エラーやその他のコンテンツを自分に電子メールで送信してください。

(最終的にはcronジョブで終了します)。

答え1

使用時にstderrログ出力を取得するにはリダイレクトが必要です-v

次の作業を行う必要があります。

mysql -v mydb u- alex -p**** < please_run_me.sql 2>&1 > /tmp/file.log

にリダイレクトし2>&1てからにリダイレクトされますstderr。これが上書きされることを覚えておいてください。追加したい場合はこれを使用してください。stdout/tmp/file.log>/tmp/file.log>>

関連情報