我有一个脚本写入文件,然后将该文件转储到数据库。我需要这个任务尽可能频繁地运行,但是从不同时运行多个实例(或者它将冗余的东西写入同一个文件)。
我目前的做法是在shell脚本中检查文件是否存在,如果存在,我退出脚本。在每个脚本的末尾删除文件。
95%的时间都有效。但是,如果服务器重新启动(这是半频繁发生的),则正在写入的文件将保留,并且每次调用脚本后,它将退出,因为该文件已存在。
解决这个问题的好方法是什么?
答案 0 :(得分:0)
您可以检查是否有任何进程正在使用带有'fuser'的文件。它将使用该文件返回任何程序的PID。如果没有PIDS,您可以安全擦拭它并重新开始。