我们有一个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
答案 0 :(得分:1)
简单(和推荐的man find
)解决方案是:
find /vol/security_ftp/ -mtime 0
查找过去24小时内修改过的/vol/security_ftp
个文件。试一试,看看它是否符合您的时间要求。如果默认设置不够快,我们可以寻找另一种解决方案。如果延迟是由/vol/security_ftp
下的众多子目录引起的,则使用以下内容限制深度和类型:
find /vol/security_ftp/ -maxdepth 1 -type f -mtime 0
答案 1 :(得分: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 )
但是,如果最近创建了任何文件,则不会自动应答。