複数の>>は2つのスクリプトを介して同じファイルにリダイレクトされ、文は途中で切り捨てられます。

複数の>>は2つのスクリプトを介して同じファイルにリダイレクトされ、文は途中で切り捨てられます。

2つのプログラムがあり、どちらも同じファイル(/tmp/outfile)に書き込んでいます。また、cronによって開始されました。

基本的に次のようなことが起こっています。

echo -n "1111111111" >> /tmp/outfile

同時に:

echo -n "2222222222" >> /tmp/outfile

出力ファイルに「11111222222222211111」が表示されます。これは例です。文の真ん中に行の1つが「切り取られる」数百行について話していますが、簡単に言えば上記のようなことが起こっています。

この動作を防ぐ方法は?

ベストアンサー1

この問題を解決する2つの明確な方法があります。

  1. ジョブをシリアル化します。両方のジョブを同時にスケジュールするのではなく、ジョブを順番に実行するスクリプトをスケジュールします。

  2. 一度に1つのジョブのみを書き込むことができるように、推奨されるロック方式を使用してジョブの書き込みジョブをロックします。タグ付けされた質問を見るそして

2つのジョブをバックグラウンドで2つのジョブを実行する単一のスクリプトにまとめることができます。

おすすめ記事