0

短編小説: クライアントから (CMD バッチを使用して) サーバー上のファイルの書き込み状態を取得する方法が必要です (BASH を使用)。

久々の潜伏者、初ポスター。探しているもののバリエーションについて多くの検索を行いましたが、まだ十分なデータが見つかりません。

CMDでバッチファイルを作成しています(クライアントは、不明なパッケージがインストールされた任意のWinOS [XP-up]である可能性があるため)。バッチは、puTTY の「plink」を使用して、SSH 経由でサーバーに接続します。サーバーに接続すると、plink はコマンドを実行して新しいファイルにデータを書き込みます。そのファイルが書き込まれたら、PSCP を使用してファイルをクライアントにコピーします 。私はこれらすべてを成功裏に達成しました。

そのファイルの作成は瞬時に行われますが、すべてのデータを書き込むのにかかる時間は不明/可変です。したがって、ファイルがいつ完成したかを判断してコピーするための自動化された方法が必要です。私の状況では、単純に XX 秒間タイムアウト/スリープを使用することはできません。

私がこれまでに取ったアプローチ (まだ成功していない) は、「stat -c '%s' filemane」を使用してファイルサイズを繰り返し取得し、完全なファイルを示す、grab1 EQUgrab2 までループで実行することです。stat の出力を CMD バッチに入れて処理できないため、これが難しいと感じています。

Q1: これ (stat 結果が CMD for ループに入る) は最善のアプローチですか? たぶん、BASHに何かが存在しますか?

Q2: Q1 が true の場合、統計結果を変数として CMD バッチに取得してデータを解析/分析する方法についてのアイデアはありますか?

提案とあなたの時間を前もってありがとう. DCT

4

1 に答える 1

0

ファイルを書き込むコマンドに、一時ファイル名を付けて書き込みます。したがって、それが呼び出される場合はxyz.txt、ファイル名で記述しtmpxyz.txt.tmp、最後のステップは名前の変更になります。

そうすれば、名前付きファイルの存在を確認できます。

通常、ファイルに一意の名前を付けて、おそらく日付と時刻を組み込むことをお勧めします。

于 2012-06-26T14:22:52.763 に答える