【发布时间】:2012-06-26 22:22:52
【问题描述】:
简短的故事:需要一种方法从客户端(使用 CMD 批处理)获取服务器上文件的写入状态(使用 BASH)。
长期潜伏者,首次海报。我对我要查找的内容的变体进行了多次搜索,但尚未找到足够的数据。
我正在用 CMD 编写一个批处理文件(因为客户端可以是安装了未知软件包的任何 WinOS [XP - up])。该批次使用 puTTY 的“plink”通过 SSH 连接到服务器。一旦连接到服务器,plink 就会执行命令将数据写入新文件。 写入该文件后,我使用 PSCP 将文件复制到客户端 到目前为止,一切都很好;我已经成功地完成了这一切。
该文件的创建是即时的,但写入所有数据所需的时间是未知/可变的。因此,我需要一种自动化方法来确定文件何时完成,然后复制它。在我的情况下,简单地使用超时/睡眠 XX 秒是不可行的。
到目前为止,我采取的方法(到目前为止还没有成功)是使用“stat -c '%s' filemane”重复抓取文件大小并循环运行,直到grab1 EQU grab2,指示一个完整的文件。我发现这很困难,因为我无法将 stat 的输出放入 CMD 批处理中进行处理。
Q1:这是(进入 CMD for 循环的统计结果)最好的方法吗?也许 BASH 中存在一些东西?
Q2:如果 Q1 为真,关于如何将统计结果作为变量放入 CMD 批处理以解析/分析数据的任何想法?
提前感谢您的建议和您的宝贵时间。 DCT
【问题讨论】:
-
为什么不能在 PLINK 退出前让写文件的命令完成?
-
我无法控制创建/写入文件的程序。一旦我发出“制作文件”命令,它会以成功消息进行响应,但是文件不一定会完成。如果成功消息“连接”到文件完成,我就不必解决这个问题。
-
“我发现这很困难,因为我无法将 stat 的输出放入 CMD 批处理中进行处理。”我建议使用 WSH/VBScript 而不是 CMD 来处理这样的事情,因为您描述的将命令的输出输入到 CMD.EXE 进行处理时遇到的困难。
-
我能够将 stat 的输出保存到 cmd 中,方法是将 stat 字符串保存为本地文件,然后将该文件拉入批处理中的变量中。我仍在研究比较文件 a 和文件 b 的逻辑……速度很慢,但正在取得进展。谢谢!
标签: bash batch-file cmd