Автоматическое монтирование сетевого ресурса, который временно находится в автономном режиме

Автоматическое монтирование сетевого ресурса, который временно находится в автономном режиме

следующая проблема: у меня есть сервер, которому нужно смонтировать сетевой ресурс 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 выключается ночью при запуске утром. Во-первых, в это время нагрузка на сервер составляет 100% на одном ядре из-за скрипта while [true]. Во-вторых, иногда монтирование перестает работать после запуска компьютера с Windows. ( * * * * * mount -aзапускается crontab, чтобы снова смонтировать все). Файлы не копируются, и монтирование недоступно на сервере. Его нужно перезапустить.

Как мне убедиться, что монтирование всегда присутствует, пока компьютер включен? Может, мне нужно как-то размонтировать общий ресурс? Я могу размонтировать его каждую ночь, но что, если компьютер с Windows перезагрузится в течение дня? Как мне приостановить скрипт 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% загрузки ЦП. Забивать процесс без перерыва — не лучший подход.

Связанный контент