1

したがって、s1、s2、d1の3つのサーバーがあります。ここで、d1はsambaサーバーです。私が持っているプロセスは、s1で実行されているスクリプトがファイルを生成し、それらをd1にコピーしてから、s2がd1からそれらのファイルを取得し、それらに対していくつかのプロセスを実行することです。

私の問題は、s2で、ファイルを取得する前に、s1がd1へのファイルの書き込みを完全に完了していることを確認する必要があることです。これらは大きなファイルである場合があるため、s2でのcrontabの設定に基づいて、s2がファイルを取得する準備ができているときにs1がファイルをコピーしようとしている場所で重複する可能性があります。

私の最初の傾向はlsofを使用することでしたが、それはコマンドを実行しているサーバーによって使用されているファイルを教えてくれるだけで、別のサーバーがそのファイルを使用しているかどうかはわかりません。このファイルチェックをスクリプト化する方法について何かアイデアはありますか?

4

1 に答える 1

0

ローカルマシンとユーザーの公開鍵がリモートマシンとユーザーのauthorized_keysファイルにある場合は、ファイル名に対してsshとgrepを介してlsofを実行できます。

ssh user@host lsof | grep filename
if [ $? -eq 0 ]
    then
        docommand
    else
        dontdoit
fi
于 2012-04-18T18:55:33.480 に答える