Linux 创建文件时自动在服务器之间传输文件

Linux file transfer between server automatically when a file is created

在我的工作中,我使用了 2 个 Linux 服务器。 第一个用于网络抓取并将其创建为文本文件。 另一个用于分析来自网络爬虫的文本文件。

所以问题是当在网络爬虫服务器上创建文本文件时, 需要在分析服务器上自动传输。

我使用了 shell 编程指南,参考了一些技巧, 并设置爬虫服务器以能够在不需要密码的情况下执行 scp 命令(通过使用 ssh-keygen 命令,在位于 /root/ 的 authorized_keys 文件上添加 ssh-key .ssh 目录) 但是我不知道如何在创建文件时以编程方式传输文件。

我的工作职位只是数据分析(不是编程) 所以,缺乏背景编程知识是我最大的担忧

如果有办法在创建文件时触发scp复制文件,请告诉我。

您可以使用 inotifywait 监视目录,并在目录中每次创建文件时使用 运行 命令。在这种情况下,您将触发 scp 命令。如果您已将其设置为不提示输入密码,那么您应该已经准备就绪。

inotifywait -mrq -e CREATE --format %w%f /path/to/dir | while read FILE; do scp "$FILE"analysis_server:/path/on/anaylsis/server/; done

您可以在 http://techarena51.com/index.php/inotify-tools-example/

上找到有关 inotifywait 的更多信息