多个 >> 通过 2 个脚本重定向到同一文件,中间句子中断

多个 >> 通过 2 个脚本重定向到同一文件,中间句子中断

我有 2 个程序,都写入同一个文件 ( /tmp/outfile)。同时由cron启动。

基本上这就是正在发生的事情:

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

同时:

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

输出文件显示“ 11111222222222211111”。这是一个例子,我正在谈论数百行,其中一行在句子中间被“剪切”,但简单地说,上面的事情正在发生。

如何防止这种行为?

答案1

有两种显而易见的方法可以解决这个问题:

  1. 将任务序列化。不要同时安排两个任务,而是安排一个依次运行任务的脚本。

  2. 使用建议锁定方案来锁定任务的写入操作,以便一次只有一个任务可以写入。查看标记为的问题

这两个任务可以组合成一个脚本,在后台运行这两个任务,而任务本身使用某种形式的锁定,以免产生乱码/混合的输出。

相关内容