在脚本执行之间保存结果

在脚本执行之间保存结果

/opt我有一个由 Cron 定期调用的脚本。该脚本需要在执行之间写入和读取状态标志。我应该将标志存储在哪个目录中?我认为这/tmp可能不是一个好的选择,因为不能保证在脚本执行之间保留包含该标志的文件。

答案1

检查文件系统层次结构标准查看 Linux 系统上存在哪些标准位置。

如果您需要保证在执行之间保留文件,那么确实/tmp位置不对。/tmp通常在重新启动时会被擦除,并且通常有一个 cron 作业也会从中删除旧的未打开文件/tmp

/var/tmp通常不会自动删除。显然不应该在重新启动时擦除它。这可能是一个可以接受的选择;但请注意,系统管理员可能决定手动擦除该目录,因此只有当您确信系统管理员知道您的文件不会被删除时,您才应该使用它。此外/var/tmp是公开可写的(如/tmp),所以要注意权限。特别要注意的是,如果您的脚本尚未运行,其他用户可能会按预期名称创建文件,然后您的脚本将使用错误数据运行。

最好使用运行脚本的用户私有的位置。如果脚本由人类用户的帐户执行,则将该文件存储在用户主目录中的某个位置(通常为点文件)。如果脚本由系统帐户执行,则该文件应存储在以下位置/var,这是可修改文件与/tmp.具体来说,为您的脚本创建一个目录在下面/var/lib,并给予其适当的权限。一个变体是在下面创建一个目录/var/opt/var/opt/PACKAGENAME/(使用而不是/var/lib/PACKAGENAME/属于代码和静态数据所在包的变量数据的约定/var/opt/PACKAGENAME/并未得到普遍遵循)。

相关内容