Здравствуйте!
Разбираюсь сейчас с работой с удаленными каталогами - примонтированном SAMBA-ресурсе или каталогом на облачным хранилище.
Монтирую каталог через smbmount или хранилище через программу cloudfuse.
Сразу после монтирования все обычно нормально - как минимум, небольшие файлы могу легко копировать. Проблемы возникают позднее, и их две.
1.
Спустя какое-то время после монтирования (несколько часов), каталог удаленного ресурса перестает открываться. При этом ресурс примонтирован, команда mount показывает что монтирование есть. Вариант для облака:
$ mount
...
fuse on /mnt/storage type fuse (rw,nosuid,nodev,user=user)
Узнать, что каталог перестал открываться можно одним способом - попробовать войти в каталог (cd) и попробовать получить список файлов (ls). Если терминал повиснет, значит нужно перемонтироваться. Терминал виснет так, что даже Ctrl+C не помогает.
Отмонтирование с целью дальнейшего монтирования приходится делать с опциями -f -l, иначе не отмонтируется:
#umount -f -l /mnt/storage
Я не могу придумать способ проверить в шелл скрипте, доступен ли каталог хранилища для работы или нет. Ведь статус через mount нормальный, а при любой попытке доступа к каталогу - полное зависание шела.
2.
Проблема может возникнуть в середине копирования большого файла. То есть, на начало копирования каталог хранилища доступен. В середине копирования (не всегда, вероятность 50/50) все виснет напрочь, как и в п.1.
Я не могу придумать способ копирования так, чтобы было ясно - копирование зависло и не завершилось, или прошло нормально. Каким способом можно в таких нестабильных условиях сделать проверку - копирование зависло, его надо прибить, и скопировать заново?