Übertragen von Dateien mit smbclient
In diesem letzten Schritt erfahren wir, wie man Dateien zwischen unserem Linux-System und der SMB-Freigabe überträgt.
Erneutes Verbinden mit der Freigabe
Verbinden wir uns erneut mit unserer SMB-Freigabe:
smbclient //localhost/testshare -U labex
Geben Sie das Passwort ein, wenn Sie dazu aufgefordert werden:
Enter WORKGROUP\labex's password:
Sie sollten die smbclient-Eingabeaufforderung sehen:
Try "help" to get a list of possible commands.
smb: \>
Hochladen von Dateien in die Freigabe
Laden wir die Testdatei, die wir zuvor erstellt haben, in die SMB-Freigabe hoch. Zuerst müssen wir unser aktuelles lokales Verzeichnis überprüfen:
smb: \> !pwd
Dies führt den Befehl pwd
auf Ihrem lokalen System aus und sollte Folgendes anzeigen:
/home/labex/project
Wir müssen in das Verzeichnis wechseln, in dem sich unsere Testdatei befindet:
smb: \> lcd ~/project/smb-files
Überprüfen Sie, ob wir uns im richtigen Verzeichnis befinden:
smb: \> !ls
Sie sollten Folgendes sehen:
test.txt
Laden wir nun die Datei in die SMB-Freigabe hoch:
smb: \> put test.txt
Sie sollten eine Meldung sehen, die anzeigt, dass die Datei übertragen wurde:
putting file test.txt as \test.txt (38.5 kb/s) (average 38.5 kb/s)
Überprüfen Sie, ob die Datei hochgeladen wurde:
smb: \> ls
Sie sollten Folgendes sehen:
. D 0 Tue Nov 30 12:02:00 2022
.. D 0 Tue Nov 30 12:00:00 2022
shared-test.txt N 37 Tue Nov 30 12:00:00 2022
test-directory D 0 Tue Nov 30 12:01:00 2022
test.txt N 33 Tue Nov 30 12:02:00 2022
8467839 blocks of size 4096. 3524491 blocks available
Herunterladen von Dateien von der Freigabe
Laden wir nun eine Datei von der SMB-Freigabe auf unser lokales System herunter. Erstellen wir zuerst ein neues Verzeichnis, um die heruntergeladenen Dateien zu speichern:
smb: \> !mkdir -p ~/project/smb-downloads
Wechseln Sie in dieses Verzeichnis:
smb: \> lcd ~/project/smb-downloads
Laden Sie nun die Datei herunter:
smb: \> get shared-test.txt
Sie sollten eine Meldung sehen, die anzeigt, dass die Datei übertragen wurde:
getting file \shared-test.txt of size 37 as shared-test.txt (37.0 KiloBytes/sec) (average 37.0 KiloBytes/sec)
Überprüfen Sie, ob die Datei heruntergeladen wurde:
smb: \> !ls
Sie sollten Folgendes sehen:
shared-test.txt
Verwenden von mget und mput für mehrere Dateien
Die Befehle mget
und mput
ermöglichen es Ihnen, mehrere Dateien gleichzeitig zu übertragen. Versuchen wir, ein paar weitere Dateien auf unserem lokalen System zu erstellen:
smb: \> !cd ~/project/smb-files && touch file1.txt file2.txt file3.txt
Laden wir nun alle .txt-Dateien gleichzeitig hoch:
smb: \> lcd ~/project/smb-files
smb: \> mput *.txt
Für jede Datei werden Sie nach einer Bestätigung gefragt. Geben Sie Y
ein, um jede Übertragung zu bestätigen:
mput test.txt? Y
putting file test.txt as \test.txt (38.5 kb/s) (average 38.5 kb/s)
mput file1.txt? Y
putting file file1.txt as \file1.txt (0.0 kb/s) (average 19.2 kb/s)
mput file2.txt? Y
putting file file2.txt as \file2.txt (0.0 kb/s) (average 12.8 kb/s)
mput file3.txt? Y
putting file file3.txt as \file3.txt (0.0 kb/s) (average 9.6 kb/s)
Wenn Sie alle Dateien ohne Bestätigung übertragen möchten, können Sie die Abfrage deaktivieren:
smb: \> prompt
smb: \> mput *.txt
Ebenso zum Herunterladen mehrerer Dateien:
smb: \> lcd ~/project/smb-downloads
smb: \> mget *.txt
Wenn Sie fertig sind, beenden Sie die smbclient-Sitzung:
smb: \> quit
Nicht-interaktive Befehle
Sie können smbclient
auch verwenden, um Befehle auszuführen, ohne die interaktive Shell aufzurufen. Um beispielsweise den Inhalt einer Freigabe aufzulisten:
smbclient //localhost/testshare -U labex -c 'ls'
Geben Sie das Passwort ein, wenn Sie dazu aufgefordert werden, und Sie sehen die Verzeichnisauflistung:
Enter WORKGROUP\labex's password:
. D 0 Tue Nov 30 12:03:00 2022
.. D 0 Tue Nov 30 12:00:00 2022
file1.txt N 0 Tue Nov 30 12:03:00 2022
file2.txt N 0 Tue Nov 30 12:03:00 2022
file3.txt N 0 Tue Nov 30 12:03:00 2022
shared-test.txt N 37 Tue Nov 30 12:00:00 2022
test-directory D 0 Tue Nov 30 12:01:00 2022
test.txt N 33 Tue Nov 30 12:03:00 2022
8467839 blocks of size 4096. 3524491 blocks available
Um eine Datei mit einem einzigen Befehl herunterzuladen:
smbclient //localhost/testshare -U labex -c 'get test.txt /home/labex/project/test-download.txt'
Dieser Befehl lädt die Datei test.txt
von der Freigabe herunter und speichert sie als test-download.txt
in Ihrem Projektverzeichnis.
Sie haben jetzt ein gutes Verständnis dafür, wie man smbclient
verwendet, um sich mit SMB-Freigaben zu verbinden, Verzeichnisse zu navigieren und Dateien zu übertragen. Diese Fähigkeiten sind unerlässlich, wenn Sie in gemischten Windows/Linux-Umgebungen arbeiten.