Linux

多個 >> 通過 2 個腳本重定向到同一個文件,中間斷句

  • March 16, 2018

我有 2 個程序,都寫入同一個文件 ( /tmp/outfile)。同時由cron啟動。

基本上這是正在發生的事情:

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

同時:

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

輸出文件顯示“ 11111222222222211111”。這是一個例子,我說的是數百行,其中一行是在句子中間“剪切”,但簡單地說,上面的事情正在發生。

如何防止這種行為?

有兩種顯而易見的方法可以解決這個問題:

  1. 序列化任務。不要同時安排這兩個任務,而是安排一個一個接一個地執行任務的腳本。
  2. 使用諮詢鎖定方案來鎖定任務的寫入操作,使得一次只能寫入一個任務。查看帶有lockflock標記的問題。

這兩個可以組合成一個腳本,在後台執行這兩個任務,而任務本身使用某種形式的鎖定,以免產生亂碼/混合輸出。

引用自:https://unix.stackexchange.com/questions/430361