Mounten Sie das Stammverzeichnis des SMB-Servers

Ich habe einen Windows-Server, auf dem ich alle Freigaben über ein Skript automatisch auf meinem MacBook Pro mit OSX 10.6.8 sichern möchte. Es gibt keinen gemeinsamen Ordner, in dem sich alle Freigaben befinden, sie werden einfach als \\SERVER\Share_Name. Ich möchte ein Skript haben, das alle Freigaben auf einem Server durchläuft (auch wenn die Ordnernamen zum Zeitpunkt der Erstellung des Skripts unbekannt sind), und ein Backup in einem lokalen Ordner auf meinem Mac erstellen. Oder, wenn es einen einfacheren Weg als ein Skript oder Drag-and-Drop gibt (das scheint nicht immer alle Dateien zu kopieren)

Antworten (1)

Es gibt kein Root im Samba-Protokoll. Um Freigaben auf Ihrem Server aufzulisten, können Sie Folgendes verwenden smbutil(1):

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

und verwenden Sie dann die Ausgabe mit 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

Bitte lesen Sie die Manpages, um andere Optionen zu überprüfen, die ich hier nicht verwendet habe.

Das beste Dienstprogramm zum Erstellen von Backups, das ich kenne, ist rsync(1). Sie können es von MacPorts finden. Es wird interessant sein, wenn Sie es besser wissen.

+1 für die Sache mit dem Samba-Protokoll. Ich habe gestern Abend noch etwas darüber gelesen, und ich habe diesen Teil gesehen. Mir gefällt die Idee, ein Skript zu verwenden, aber ich muss noch mehr über RSYNC lernen. Ich werde Ihr Skript ausprobieren und dann als Antwort markieren, wenn es funktioniert. Ich nehme an, direkt über der doneZeile habe ich meinen Befehl eingegeben cp?
Ich weiß, dass es einige Probleme mit der UTF-8-Unterstützung gibt. Ich verwende Mac OS X Lion 10.7.2 und habe Probleme mit dem Mounten nicht-englischer Freigaben, wenn ich mount_smbfs oder Finder verwende. Ich denke, es ist ein allgemeines Mac OS X-Problem. Und vergessen Sie nicht, sudo(1) zu erstellen, bevor Sie dieses Skript ausführen