【问题标题】:Linux file transfer between server automatically when a file is createdLinux 文件创建时在服务器之间自动传输文件
【发布时间】:2016-06-14 17:33:06
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 为什么需要2台电脑?网络爬虫不能边爬边分析吗?
  • 看看inotifywait。使用它来观察创建网络爬虫文件的目录并将其rsync 放到分析框。
  • 为什么需要2台电脑?网络爬虫不能边爬边做分析吗? >>> 是的,但是我们需要使用那个分析服务器。可惜……
  • 当然,但您问的是服务器之间自动传输吗?你的ssh 密钥设置和工作了吗?你为什么使用 root 帐户作为 ssh 密钥?私钥应该在网络爬虫上的$HOME/.ssh$HOME/.ssh/authorized_keys 上分析的公钥。
  • @David C. Rankin 啊...没有理由使用 root 帐户。并且 ssh 密钥设置运行良好(我使用 scp 命令检查了它)。 inotifywait命令是C语言吗??

标签: linux shell ssh scp inotify


【解决方案1】:

您可以使用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的信息

【讨论】:

  • 哇...Dir My Savior...
    1. 我在服务器 1(爬虫)上安装 inotify-tools
    2. 创建如下 shell 脚本
    #!/bin/sh inotifywait -mrq -e CREATE --format %w%f /home/solugen/test/script/txt |读取文件时;做 scp "$FILE" 211.238.134.72:/data/chano/solugen_wordcloud/;完成
    终于,完美运行了..
    当在服务器1上创建一个txt文件时,它立即传输到服务器2
    谢谢!
猜你喜欢
  • 2021-06-23
  • 2019-11-26
  • 2015-05-17
  • 2017-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多