【问题标题】:Scheduled disk scan计划的磁盘扫描
【发布时间】:2013-04-13 04:29:02
【问题描述】:

我有一个写入文件然后将该文件转储到数据库的脚本。我需要这个任务尽可能频繁地运行,但不要同时运行多个实例(否则它会将多余的东西写入同一个文件)。

我目前的做法是在 shell 脚本中检查文件是否存在,如果存在,我退出脚本。在每个脚本结束时,它会删除文件。

这在 95% 的情况下都有效。但是,如果服务器重新启动(这种情况经常发生),正在写入的文件将保留,之后每次调用脚本时它都会退出,因为该文件已经存在。

什么是解决这个问题的好方法?

【问题讨论】:

  • 每次重新启动时在 crontab 上安排文件审查怎么样?这是@restart 条件
  • this question,简而言之,这几乎就是你的状况

标签: linux unix cron


【解决方案1】:

您可以通过“fuser”检查是否有任何进程正在使用该文件。它将返回使用该文件的任何程序的 PID。如果没有 PIDS,您可以安全地擦除它并重新开始。

【讨论】:

  • 谢谢,用grepfuser 命令来检查文件“example.txt”是否被用户“root”使用?
  • "fuser example.txt" 虽然最好包含文件的完整路径
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-11
  • 2016-10-26
  • 2012-06-19
  • 2014-09-19
  • 2013-07-04
  • 2013-03-31
  • 1970-01-01
相关资源
最近更新 更多