Смонтировать корень SMB-сервера

У меня есть сервер Windows, на котором я хочу автоматически создавать резервные копии всех общих ресурсов с помощью сценария на моем MacBook Pro под управлением OSX 10.6.8. Нет общей папки, в которой находятся все общие ресурсы, они просто монтируются как файлы \\SERVER\Share_Name. Я хочу иметь сценарий, который циклически перебирает все общие ресурсы на сервере (даже если имена папок неизвестны во время создания сценария) и создавать резервную копию в локальной папке на моем Mac. Или, если есть более простой способ, чем скрипт, или перетаскивание (это не всегда копирует все файлы)

Ответы (1)

В протоколе Samba нет рута. Чтобы перечислить общие ресурсы на вашем сервере, вы можете использовать smbutil(1):

$ smbutil view //Administrator@10.211.55.8/ | awk '$2=="Disk"{print $1}'
ADMIN$    
C$        

а затем используйте вывод с помощью mount_smbfs(8):

smbutil view //Administrator@10.211.55.8/ | awk '$2=="Disk"{print $1}' | while read sharename; do 
  mkdir ${BASE}/${sharename}; 
  mount_smbfs //Administrator@10.211.55.8/${sharename} ${BASE}/${sharename};
done

Пожалуйста, прочитайте справочные страницы, чтобы проверить другие опции, которые я здесь не использовал.

Лучшей утилитой для резервного копирования, которую я знаю, является rsync(1). Вы можете найти его на MacPorts. Будет интересно, если вы знаете лучше.

+1 за протокол Samba. Прошлой ночью я еще немного почитал об этом и увидел эту часть. Мне нравится идея использования сценария, но мне еще нужно больше узнать о RSYNC. Я попробую ваш скрипт, затем отметьте как ответ, если он работает. Я предполагаю, что чуть выше doneстроки я помещаю свою cpкоманду?
Я знаю, что есть некоторые проблемы с поддержкой UTF-8. Я использую Mac OS X Lion 10.7.2, и у меня возникают проблемы с монтированием неанглийских общих ресурсов при использовании mount_smbfs или Finder. Я думаю, что это общая проблема Mac OS X. И не забудьте сделать sudo(1) перед запуском этого скрипта