用于检查文件是否正在创建的 Bash 脚本

标签 bash ubuntu

我们有一个 Amazon EC2 实例,我们可以在其中上传来自安全摄像头的输出。摄像机时不时会出现问题,停止上传,需要重新启动。我们确定这一点的简单方法是查看文件是否没有被创建。问题是它会创建很多很多文件。如果我将 find 与 -ctime 一起使用,则此脚本需要很长时间才能运行。有没有更快的方法来检查文件是否从昨天开始创建?我只需要捕获结果,(是的,有一些文件,或者没有,)并通过电子邮件发送消息,但是如果有一些不需要半小时运行的东西会很好。

 #!/bin/bash

 find /vol/security_ftp/West -ctime -1
 find /vol/security_ftp/BackEntrance -ctime -1
 find /vol/security_ftp/BoardroomDoor -ctime -1
 find /vol/security_ftp/MainEntrance -ctime -1
 find /vol/security_ftp/North -ctime -1
 find /vol/security_ftp/South -ctime -1

最佳答案

使用 find是一个自然的解决方案,但如果你真的必须避免它,你可以使用 ls 查看目录中的最新文件并根据 ctime 对输出进行排序,例如。

ls /vol/security_ftp/West -clt | head --lines=1

如果您想查看日期,这就足够了。
如果您需要格式更好的输出(或仅 ctime 进一步处理),您可以将文件名提供给 stat :
stat --format="%z" $( ls /vol/security_ftp/West -ct | head --lines=1 )

但是,如果最近创建了任何文件,这不会自动回答。

关于用于检查文件是否正在创建的 Bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26855035/

相关文章:

windows - 缺少 meta 和 alt 键?

java - 如何修复 ubuntu 18.04 中的 "Command ' appletviewer' not found"

bash - 通过 dpkg-query 安装缺失包的脚本

laravel php artisan serve 命令有效,但 localhost url 在 ubuntu 18.10 中不起作用

android - 不能写.bashrc来添加android NDK的路径

linux - 将 Find 命令的输出附加到 Bash 脚本中的变量

linux - 检查文件是否是从现在起 10 分钟后创建的

linux - 从现在开始 5 秒后运行命令 `at `

linux - 如何根据公共(public)列合并文件?

linux - 运行时 : failed to create new OS thread with Docker