【问题标题】:How to Monitor files that are present in another server如何监视另一台服务器中存在的文件
【发布时间】:2015-03-05 21:20:16
【问题描述】:

任何人都可以告诉我是否有任何方法可以监控不同服务器中存在的centOS(linux)中的目录,当新文件到达该目录时,我需要将该文件复制到我的服务器。

【问题讨论】:

  • 有很多方法可以做到这一点;一种方法是使用rsync
  • 我们可以在 Centos 中使用 rsync 吗?如果是这样,你能解释一下我是怎么做的(比如步骤),因为我是新手。感谢您的帮助。
  • 是的,rsync 是标准的 unix/linux 实用程序 - 主要用于保持文件从一台服务器同步到另一台服务器 (info)。您需要更详细地解释您的目标是什么,例如:(1)需要多久检查一次目录(2)服务器如何相互通信(3)文件的大小......等等。
  • 我的目标是持续监控主机 A 中存在的目录,并在新文件进入该目录时将文件从主机 A 复制到主机 B(我的服务器)。目前我正在测试这种环境。所以,我不担心文件大小。主机 A 和主机 B 应该通过私有 IP 地址进行通信。

标签: linux centos monitor


【解决方案1】:

一种方法是让 rync 命令在cron job 上定期运行。 rysnc 以其 delta-transfer 算法而闻名,该算法通过发送 只有源文件和现有文件之间的差异 目的地。

如果您想每隔 10 分钟运行一次从远程服务器到本地服务器的传输,您可以在 crontab 中添加如下所示的行。它还做了一些其他的事情:

  1. 压缩文件
  2. 通过 ssh 传输
  3. 日志输出

注意:您必须使用ssh key exchange 来避免密码提示。

*/10 * * * * /usr/bin/rsync -zrvh -e ssh root@<remoteIP>:<remoteDir> >/var/log/rsync_my.log  2>&1

【讨论】:

  • 但是当我尝试在两台服务器之间使用 rsync 时, rsync -vvv /home/username/rsynctest/* centos@172.31.46.199:/home/centos 它给出了以下错误:使用打开连接:ssh -l centos 172.31.46.199 rsync --server -vvve.Lsf。 /home/centos 无法建立主机'172.31.46.199(172.31.46.199)'的真实性。 ECDSA 密钥指纹为 f6:59:b3:d8:7f:3d:f8:9f:b2:d8:cc:d6:d4:17:d5:bc。您确定要继续连接(是/否)?是 警告:将“172.31.46.199”(ECDSA)永久添加到已知主机列表中。权限被拒绝(publickey、gssapi-keyex、gssapi-with-mic)。
  • 这可能是由于多种原因..我能想到的一个是 - 检查您正在连接到的服务器上的 ssh 设置...在 /etc/ssh/sshd_config ...(希望centos登录已定义)... 1。 serverfault.com/questions/598058/… 2. centos.org/forums/viewtopic.php?t=7687
  • 非常感谢 :) 选项 2 对我有用。我将处理 Cron 任务,如果遇到任何问题,我会发布。再次,谢谢你。这对我帮助很大。我为此付出了很多努力。
  • 没问题!很高兴它有帮助..不要忘记将其标记为答案:P
  • 我是 Stack Overflow 的新手,不知道如何回答 :(
猜你喜欢
  • 2023-03-06
  • 2016-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-23
  • 1970-01-01
  • 2021-06-22
  • 1970-01-01
相关资源
最近更新 更多