【问题标题】:Generate hash of newly downloaded file生成新下载文件的哈希
【发布时间】:2021-11-10 09:26:21
【问题描述】:

我希望我的 bash 脚本在每次将新文件下载到 /Downloads 时执行一个操作(生成下载文件的哈希并将其发送到 API)。到目前为止,我一直在尝试使用“inotify-tools”,但它只适用于新创建的文件,而且不会。

脚本应该像这样工作:

  1. 我通过浏览器下载文件(正常方式)
  2. 脚本注意到新文件并自动执行

提前感谢您的帮助:D

【问题讨论】:

  • 您应该edit您的问题并显示您的代码并描述您的示例场景、您获得的实际结果和预期结果。然后我们可以更好地帮助您改进您的代码或建议替代解决方案。
  • 为什么它对新文件不够有效?你还想成为什么触发器?
  • @BenjaminW。浏览器可能会使用一个临时文件进行下载,并在下载完成后重命名该文件。根据浏览器如何实现下载,重命名或关闭操作可能是相关事件。
  • 使用inotifywait,我会让它打印所有事件(列表here),然后看看哪一个最能触发你的活动。或者,您也可以利用 systemd(例如,参见 here)。

标签: linux bash shell automation


【解决方案1】:

您可以在启动时和每 n 分钟使用/etc/crontab 检查~/Downloads 文件夹。每 n 分钟运行一次的脚本可以做到这一点

  1. 保留文件的数量。如果数字减少脚本更新缓存。如果数量增加,则获取最新创建(或修改)的文件,并通过curl 将该文件的哈希发送到 api。

  2. 保留文件名。如果文件不再存在,则脚本会更新文件名的缓存。如果新文件再次出现,则通过curl 将哈希发送到api。

您可以保留/tmp 下的文件缓存。

如果你能提供一个示例场景,我可以写一个简单的脚本

【讨论】:

    猜你喜欢
    • 2016-07-16
    • 2015-01-02
    • 2012-11-19
    • 2016-10-06
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 2019-04-28
    相关资源
    最近更新 更多