Perl 多个脚本并行访问公共数据文件-可能吗?

Perl 多个脚本并行访问公共数据文件-可能吗?,perl,unix,Perl,Unix,我在基于unix的服务器上有一些Perl脚本,它们访问一个包含服务器IP和登录凭据的公共文本文件,这些文件用于在这些服务器上登录和执行例行操作。目前,这些脚本在不同的时间手动运行 我想知道,如果我cron这些脚本同时执行,是否会导致从文本文件访问数据时出现任何问题(文件锁定?),因为所有脚本基本上都会同时访问数据文件 还有,有没有更好的方法(不使用数据库-因为我不能,因为有一些服务器限制)?这取决于哪种访问方式 从多个进程读取数据文件没有问题。如果您想在可以读取数据文件时更新数据文件,最好以原子

我在基于unix的服务器上有一些Perl脚本,它们访问一个包含服务器IP和登录凭据的公共文本文件,这些文件用于在这些服务器上登录和执行例行操作。目前,这些脚本在不同的时间手动运行

我想知道,如果我cron这些脚本同时执行,是否会导致从文本文件访问数据时出现任何问题(文件锁定?),因为所有脚本基本上都会同时访问数据文件

还有,有没有更好的方法(不使用数据库-因为我不能,因为有一些服务器限制)?

这取决于哪种访问方式


从多个进程读取数据文件没有问题。如果您想在可以读取数据文件时更新数据文件,最好以原子方式进行(例如,使用不同的名称编写新版本,而不是重命名它)。

同时读取同一文件没有风险。风险在于阅读正在写入或同时写入的内容。请参见
perldoc-f flock
:您可能希望在每个读取的实例上获得一个锁,如果有人正在写入,编写器应该获得一个锁。听起来您需要一个SQLite数据库。我想不出任何服务器限制会阻止您使用SQLite,因为它不需要服务器进程。我将只读取文件,不更新它。谢谢!您的更新解决方案仅在任何时候只有一个更新程序时有效。否则,您将有一个竞赛条件。