一時オフラインネットワーク共有を自動的にマウント

一時オフラインネットワーク共有を自動的にマウント

次の質問:ファイルをコピーするためにWindowsネットワーク共有をマウントする必要があるサーバーがあります。そのため、fstab起動時にインストールされるように共有を追加しました。

 //192.168.1.xx/share   /mnt/networkshare   cifs    noperm,username=user,password=******    0   0

スクリプトは、次のように繰り返して共有内のファイルをコピーします。

while [ true ]
  do
    if [ -f /path/to/the/file ]
    then
      mv /path/to/the/file /mnt/networkshare
    fi
done

問題は、Windowsコンピュータが午前中に起動すると夜に終了することです。まず、この間、while [true]スクリプトのため、サーバーの負荷は1つのコアに100%でした。次に、Windowsコンピュータの起動後にマウントが機能しなくなることがあります。 (crontabを実行し* * * * * mount -aてすべてのファイルを再マウントします。)ファイルはコピーされず、サーバーからマウントにアクセスできません。再起動する必要があります。

コンピュータの電源を入れたときにマウントが常にあるかどうかを確認するにはどうすれば共有をアンマウントする必要がありますか?毎晩削除できますが、日中にWindowsコンピュータが再起動した場合はどうなりますか? CPU負荷を軽減するために、夜にマウントされていないwhile [true]スクリプトをどのように一時停止できますか?

ご協力ありがとうございます!

答え1

移動する前にインストールを確認できます。

df | grep "/mnt/networkshare" |grep -v grep >/dev/null; r=${?}
if [ ${r} -eq 0 ]
then
  mv /path/to/the/file /mnt/networkshare
fi

sleepまた、プロセス内にコマンドを追加すると、100%CPU使用率の問題を軽減できます。プロセスを控えるのは良い考えではありません。

関連情報