【问题标题】:Copy file with a lock on it复制带有锁的文件
【发布时间】:2015-07-18 11:01:44
【问题描述】:

我有一个在服务器上运行的应用程序,它正在做一些事情并将它所做的所有事情都写入一个日志文件。
我还有辅助应用程序,它有点像也在服务器上运行的监控面板,但它是一个不同的进程。我想做的是:

我希望我的监控文件能够从其他应用程序复制当前已锁定的日志文件,然后通过电子邮件将其发送给我。 我曾尝试使用 scp 连接到服务器并将其手动复制到我的计算机(它确实有效),但是我希望能够通过我的 java 监控应用程序来做到这一点。我不知道从哪里开始。

【问题讨论】:

  • I have tried using scp to connect to the server and copy it manually to my computer 成功了吗?
  • @copeg 进行了编辑。是的,它是成功的,并且没有使写入日志的主应用程序崩溃。
  • 您可以使用JSch 通过您的监控应用程序来做同样的事情,而不是通过电子邮件发送给自己。

标签: java file-io java-io


【解决方案1】:

我尝试使用 scp 连接到服务器并将其手动复制到我的计算机(它确实有效)

JSch 库有一个ScpFrom 模块,您可以使用该模块scp 将数据从服务器复制到您的计算机或应用程序。这可以通过以下方式之一完成:

  1. 手动运行模块(如java -jar)
  2. 将模块的源代码复制到您的项目中,并将 JSch 库添加到 classpath(更多程序控制 - 首选方法)
  3. 以编程方式使用库模块,例如String[] args = {user@remotehost:file1" "localfile"}; SCPFrom.main(args);

【讨论】:

  • 我想让服务器上已经有的监控软件来做。是否有可能,或者我现在必须编写一个单独的应用程序才能在单独的计算机上运行才能正确连接和复制?
  • @Quillion, want the monitoring software that is already on the server to do it. Is it possible 感谢您的澄清 - 您应该能够 ssh/scplocalhost。这样做似乎有点矫枉过正,但如果它有效并且是绕过文件锁定的唯一方法......
  • 听起来像是一个有效的答案,加上一点疯狂。如果没有人提供更好的解决方案,我会在一天内接受你的正确解决方案。
  • with a pinch of insanity added in确实
猜你喜欢
  • 1970-01-01
  • 2011-08-27
  • 2011-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-09
相关资源
最近更新 更多