次の質問:ファイルをコピーするために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使用率の問題を軽減できます。プロセスを控えるのは良い考えではありません。