私は、MySQLのデータダンプを行う小さなBashスクリプトを作成しました。ダンプがかなり大きくなる可能性があるので、プロセスをバックグラウンドに置き、エラーまたはログがファイルシステムに表示されるのを待ちます。BashファイルでSTDERRをリダイレクトすると、エラーがなくてもファイルが作成されます。どうして?
mysqldump main_db > /loc/to/dmp/file.sql 2>/loc/to/error/log/file.log &
問題は、私は「/loc/to/error/log/file.logが0のサイズのファイルを得るということです(私は推測本当のエラーを意味しない)時には:私は、次のコードを持っていますこのコマンドが実行され、エラーがなくてもプロセスを強制終了します。
書き込みするデータがないときにSTDERRがファイルを書き込む理由がわかりません。これは&
バックグラウンドプロセスのためですか?
さて、私はSTDERRが働いていた、とAのチェックと思ったのか分かりませんでしたファイルサイズが0の場合は、深刻な問題のための手助けとなります。 – null
問題は「STDERRのしくみ」ではありません。シェルのリダイレクトがどのように機能するかです。 –