我们有一个 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/