通过批处理查询文件写入状态(CMD客户端到BASH服务器)

时间:2012-06-26 14:12:55

标签: bash batch-file cmd

短篇小说:需要一种方法从客户端(使用CMD批处理)获取服务器上文件的写入状态(使用BASH)。

长期潜伏,第一次海报。我对我正在寻找的变化做了很多搜索,但还没有找到足够的数据。

我正在CMD中编写批处理文件(因为客户端可能是安装了未知软件包的任何WinOS [XP-up])。批处理使用puTTY的“plink”通过SSH连接到服务器。连接到服务器后,plink会执行命令将数据写入新文件。 写完文件后,我使用PSCP将文件复制到客户端 到目前为止,这么好;我已成功完成所有这些。

该文件的创建是即时的,但编写所有数据所需的时间是未知/可变的。因此,我需要一个自动方法来确定文件何时完成,然后复制它。在我的情况下,简单地使用超时/睡眠时间为XX秒是不可行的。

到目前为止我所采用的方法(目前尚未成功)是使用“stat -c'%s'filemane”重复抓取文件大小并在循环中运行直到抓取EQU EQU2,表示完整文件。我发现这很困难,因为我无法将stat输出到CMD批处理中来处理它。

Q1:这是(统计结果进入CMD for循环)最好的方法吗?也许BASH中存在某种东西?

Q2:如果Q1为真,那么有关如何将统计结果作为变量来解析/分析数据的任何想法?

提前感谢您的建议和时间。 DCT

1 个答案:

答案 0 :(得分:0)

让编写文件的命令用临时文件名写入。因此,如果它被称为xyz.txt,请使用文件名tmpxyz.txt.tmp编写,那么最后一步将是重命名。

这样你就可以检查是否存在指定的文件。

我发现,通常一个好主意是给文件一个唯一的名称,可能包含日期和时间。