我想锁定一个文件,运行一些测试然后解锁文件。我怎样才能做到这一点。我可以使用命令行、perl 或 shell 脚本。
我想锁定文件的原因是有时在连接ftp
到我们的 Apache 服务器时,我们在删除文件时收到错误:“无法打开或删除包含正在运行的程序的文件”。我想使用ftp
移动命令而不是删除命令进行测试,看看我是否发现了这个错误。我想测试锁定文件是否会导致此错误。
我想锁定一个文件,运行一些测试然后解锁文件。我怎样才能做到这一点。我可以使用命令行、perl 或 shell 脚本。
我想锁定文件的原因是有时在连接ftp
到我们的 Apache 服务器时,我们在删除文件时收到错误:“无法打开或删除包含正在运行的程序的文件”。我想使用ftp
移动命令而不是删除命令进行测试,看看我是否发现了这个错误。我想测试锁定文件是否会导致此错误。
快速:文件锁定通常仅由高级语言支持(据我所知)。
对于 perl 示例,您可以从这里开始https://stackoverflow.com/questions/34920/how-do-i-lock-a-file-in-perl或任何 Perl 经典,如https://docstore.mik.ua /orelly/perl/cookbook/ch07_12.htm(注意 SSL 证书问题)或类似的东西。
对于 shell 脚本,您必须考虑 JdeBP 的评论:为什么要锁定您的文件。根据您的回答,您可以考虑临时更改文件的写入权限、重命名文件并在改回文件名之前处理重命名的文件、处理副本并随后重写原始文件等策略。
你可以使用flock命令:flock man file
这是我了解它的地方。https://stackoverflow.com/questions/24388009/linux-flock-how-to-just-lock-a-file
这是我的脚本,用于锁定一个名为
2.txt
10 秒的文件(来自链接中脚本的小改编):