среда, 11 ноября 2015 г.

баг SMBGET (You don't have enough permissions to access smb)

Вот только вчера хвалил утилитку smbget, как сегодня она показала дулю с маком при попытке скачать каталог с сетевого ресурса, доступ на который осуществляется по логину/паролю.
Пишу команду:
smbget -R -u someuser -p somepassword smb://server/share/folder
Ругается вот так: Can't open directory и вот так: You don't have enough permissions to access
При этом, если написать:
smbget -u someuser -p somepassword smb://server/share/folder/file.ext
этот файл скачается.

Оказывается, это баг SMBGET-а.

Но на странице багзиллы есть решение. Надо пользователя и пароль прописать прямо в ссылке, вот так:
smbget -R smb://someuser:somepassword@server/share/folder
Такие дела.

вторник, 10 ноября 2015 г.

Копирование файлов с сетевого ресурса Windows (samba) из командной строки

Решил поделиться с миром способом скопировать файлы с сетевого ресурса Windows (Samba) в каталог на диске в Linux, но не с использованием графического интерфейса (Caja, Nautilus и т.д.), а прямо из командной строки. Это бывает необходимо, например, в скриптах для резервного копирования чего-либо с сетевых папок Windows.

Можно, конечно, сделать монтирование сетевой папки, а потом скопировать стандартной командой копирования CP куда угодно. Но это требует возни с точками монтирования, правами и прочей ненужной в данном случае ерунды. Да и зачем это нужно, если есть простой и элегантный способ решить задачу копирования файлов с сетевой папки windows? Итак, хватит болтовни. Вот она, заветная команда, вернее выдержка из её хелпа:
Использование: smbget [ПАРАМЕТР...] file
  -a, --guest                 Подключаться как гость
  -r, --resume                Автоматически повторять закачку при обрыве связи
  -U, --update                Скачивать только в том случае, если файл на сервере новее или отсутствует на локальном диске
  -R, --recursive             Скачивать рекурсивно, т.е. все файлы в подкаталогах с сохранением структуры этих каталогов
  -u, --username=STRING       Имя пользователя
  -p, --password=STRING       Пароль
  -w, --workgroup=STRING      Рабочая группа( можно не писать)
  -n, --nonprompt             Ничего не спрашивать
более подробную информацию о других параметрах команды читайте в smbget --help
Пример использования:
smbget -arR smb://192.168.0.1/netshare/Важная%20инфа/
скачает в текущий каталог всё содержимое каталога "Важная инфа", расположенного на сетевом ресурсе "netshare", расположенном на сервере "192.168.0.1". Войдет на сервер как Guest. Если надо задать логин и пароль, используйте ключи username и password. Сам каталог "Важная инфа" создан не будет.
Правда, похоже на использование wget? Это мне и понравилось.
Пользуйтесь на здоровье!