Verbinden per mount
mount -t cifs -o username=benutzer,password=PW,domain=domain.com //10.0.0.1/Freigabe /mnt
Wenn man das Passwort weg lässt, wird nach dem Absetzen des Kommandos das Passwort abgefragt. Nach dem Mount stehen die üblichen Linux Kommandos zur Verfügung.
Verbinden per smbclient
smbclient verhält sich wie FTP. Pro Aufruf kann nur eine Datei übergeben werden.
smbclient -U benutzername%passwort //10.0.0.1/Freigabe --directory "Unterverzeichnis von Freigabe" -c 'put "test.pdf"'
Mit dem –directory Parameter wird ein Unterverzeichnis innerhalb der Freigabe angegeben.
Kopieren eines kompletten Verzeichnisses per smbclient
Bei meinen Tests konnte ich keine Dateien mit Lehrzeichen kopieren, daher ist diese Methode untauglich. Entweder mounten oder jede einzelne Datei per smblient, wie oben beschrieben, kopieren. Wobei das Mounten deutlich komfortabler ist und nach dem Mount die üblichen Linux Kommandos zur Verfügung stehen.
Laut der manpage für smbclient benötigt man das commando mget um Dateien auf das System zu kopieren und mput, um Dateien von dem System in ein Remoteverzeichnis zu kopieren. Mask und Recursion muss gesetzt sein. Dann welchselt man mit cd in das Verzeichnis, welches kopiert werden soll.
smbclient '\\server\freigabe' mask "" recurse ON prompt OFF cd 'pfad\zum\remote\ziel' lcd '~/lokaler/pfad/' mput *
Alles in einer Zeile:
smbclient -U benutzername%passwort '\\server\freigabe' -c 'prompt OFF;recurse ON;cd 'path\to\directory\';lcd '~/path/to/download/to/';mget *'