Установленный ресурс самбы - как проверить, есть ли он в сети - PullRequest
0 голосов
/ 12 сентября 2018

Мне нужно проверить, подключен ли он в сценарии. и завершите эту проверку в течение не более 1 секунды.

Я пытался:

  1. smbclient -L -U user%pass - но это занимает слишком много времени и создает мусор в лог-файле сервера назначения из-за relogin

  2. stat /mnt/samba/file - но он зависает, когда общий ресурс Samba отключен

Может быть, один из Вас поможет найти другой способ завершить это?

Самба-адресат использует протокол SMB3.0.

Привет

1 Ответ

0 голосов
/ 12 сентября 2018

С программной точки зрения это сложнее, чем кажется.Чтобы проверить наверняка, я бы сказал, что вам нужно создать файл или попытаться прочитать каталог.Однако linux не поддерживает асинхронный открытый системный вызов И это та же самая причина, по которой утилиты зависают в течение длительного времени (которое, я думаю, должно быть около 2 минут, это минимальное время ожидания TCP-смерти). Так что если выЧтобы реализовать это, вы должны установить меньшее время ожидания, пытаясь выполнить стат или открытый вызов для папки назначения и просто прекратить поток (или отправить туда сигнал) по истечении времени ожидания.

...