gr68 Asked: 2021-02-06 02:07:47 +0800 CST2021-02-06 02:07:47 +0800 CST 2021-02-06 02:07:47 +0800 CST 哪些是在服务器位置查找新文件的方法 772 我正在尝试在 linux 服务器位置查找最近一小时内创建、复制、移动或修改的新文件/home/user/。 我想知道以下命令是否是涵盖所有情况(创建、复制、移动或修改)的最佳方式,或者此命令是否不涵盖所有情况,并且我可能会在搜索中丢失一些文件。 我会从搜索结果中排除所有简单执行或读取/访问的文件。 find /home/user/ -type f -newermt '-3600 seconds' -printf "%T+ %p\n" linux find 2 个回答 Voted DCLacoste 2021-02-10T16:23:17+08:002021-02-10T16:23:17+08:00 同意上面的评论, rsync 可能是更好的解决方案,具体取决于您尝试使用文件列表完成的任务。这是一个很好的答案,涵盖了很多方面,包括评论 https://serverfault.com/a/618740 rsync -zaic src/ dest/ | grep '^?c' | cut -d' ' -f2 --dry-run 只会列出修改后的文件(不同的校验和) Best Answer le_top 2021-02-14T15:06:25+08:002021-02-14T15:06:25+08:00 简单:测试文件时间属性 如果我会严格坚持这个问题,那么我会使用 find /home/user/ -type f -cmin -60 我对此进行了测试。这些命令还识别文件何时在目录中移动。 此命令不报告文件访问。 更好:观看活动 但是,我想您想在发生事件时做点什么。在这种情况下,您可能需要查看iwatch依赖于inotify. 它将触发系统事件,并允许您在事件发生时立即对其采取行动。 您不会错过仅临时出现的文件。 这是一个“/etc/iwatch/iwatch.xml”文件,与我实际使用的文件略有不同: <?xml version="1.0" ?> <!DOCTYPE config SYSTEM "/etc/iwatch/iwatch.dtd" > <config> <guard email="root@localhost" name="IWatch"/> <watchlist> <title>Document signing</title> <contactpoint email="root@localhost" name="Administrator"/> <path type="recursive" syslog="on" alert="off" events="close_write" exec="sudo -u sign /home/sign/signpdf %f 'Non-modification et Origine du do cument' >> /home/sign/pdf.log 2>/home/sign/pdf2.log">/home/sign/documents</path> </watchlist> </config> 它比使用“查找”更复杂,但也更细粒度。在上面,该命令仅在“close_write”上执行。因此,操作仍在写入的文件的风险降低了。
同意上面的评论, rsync 可能是更好的解决方案,具体取决于您尝试使用文件列表完成的任务。这是一个很好的答案,涵盖了很多方面,包括评论 https://serverfault.com/a/618740
只会列出修改后的文件(不同的校验和)
简单:测试文件时间属性
如果我会严格坚持这个问题,那么我会使用
我对此进行了测试。这些命令还识别文件何时在目录中移动。
此命令不报告文件访问。
更好:观看活动
但是,我想您想在发生事件时做点什么。在这种情况下,您可能需要查看
iwatch
依赖于inotify
.它将触发系统事件,并允许您在事件发生时立即对其采取行动。
您不会错过仅临时出现的文件。
这是一个“/etc/iwatch/iwatch.xml”文件,与我实际使用的文件略有不同:
它比使用“查找”更复杂,但也更细粒度。在上面,该命令仅在“close_write”上执行。因此,操作仍在写入的文件的风险降低了。