Передача файлов с помощью smbclient
На этом заключительном этапе мы узнаем, как передавать файлы между нашей системой Linux и общим ресурсом SMB.
Повторное подключение к общему ресурсу
Давайте снова подключимся к нашему общему ресурсу SMB:
smbclient //localhost/testshare -U labex
Введите пароль при появлении запроса:
Enter WORKGROUP\labex's password:
Вы должны увидеть приглашение smbclient:
Try "help" to get a list of possible commands.
smb: \>
Загрузка файлов на общий ресурс
Давайте загрузим тестовый файл, который мы создали ранее, на общий ресурс SMB. Сначала нам нужно проверить наш текущий локальный каталог:
smb: \> !pwd
Это выполняет команду pwd
в вашей локальной системе и должно отобразить:
/home/labex/project
Нам нужно перейти в каталог, где находится наш тестовый файл:
smb: \> lcd ~/project/smb-files
Убедитесь, что мы находимся в правильном каталоге:
smb: \> !ls
Вы должны увидеть:
test.txt
Теперь давайте загрузим файл на общий ресурс SMB:
smb: \> put test.txt
Вы должны увидеть сообщение, указывающее на то, что файл был передан:
putting file test.txt as \test.txt (38.5 kb/s) (average 38.5 kb/s)
Убедитесь, что файл был загружен:
smb: \> ls
Вы должны увидеть:
. 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
Загрузка файлов с общего ресурса
Теперь давайте загрузим файл с общего ресурса SMB в нашу локальную систему. Сначала давайте создадим новый каталог для хранения загруженных файлов:
smb: \> !mkdir -p ~/project/smb-downloads
Перейдите в этот каталог:
smb: \> lcd ~/project/smb-downloads
Теперь загрузите файл:
smb: \> get shared-test.txt
Вы должны увидеть сообщение, указывающее на то, что файл был передан:
getting file \shared-test.txt of size 37 as shared-test.txt (37.0 KiloBytes/sec) (average 37.0 KiloBytes/sec)
Убедитесь, что файл был загружен:
smb: \> !ls
Вы должны увидеть:
shared-test.txt
Использование mget и mput для нескольких файлов
Команды mget
и mput
позволяют передавать несколько файлов одновременно. Давайте попробуем создать еще несколько файлов в нашей локальной системе:
smb: \> !cd ~/project/smb-files && touch file1.txt file2.txt file3.txt
Теперь давайте загрузим все файлы .txt одновременно:
smb: \> lcd ~/project/smb-files
smb: \> mput *.txt
Для каждого файла вам будет предложено подтверждение. Введите Y
, чтобы подтвердить каждую передачу:
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)
Если вы хотите передать все файлы без подтверждения, вы можете отключить запрос:
smb: \> prompt
smb: \> mput *.txt
Аналогично, чтобы загрузить несколько файлов:
smb: \> lcd ~/project/smb-downloads
smb: \> mget *.txt
Когда вы закончите, выйдите из сеанса smbclient:
smb: \> quit
Неинтерактивные команды
Вы также можете использовать smbclient
для выполнения команд без входа в интерактивную оболочку. Например, чтобы вывести список содержимого общего ресурса:
smbclient //localhost/testshare -U labex -c 'ls'
Введите пароль при появлении запроса, и вы увидите список каталогов:
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
Чтобы загрузить файл одной командой:
smbclient //localhost/testshare -U labex -c 'get test.txt /home/labex/project/test-download.txt'
Эта команда загружает файл test.txt
с общего ресурса и сохраняет его как test-download.txt
в вашем каталоге проекта.
Теперь у вас есть хорошее понимание того, как использовать smbclient
для подключения к общим ресурсам SMB, навигации по каталогам и передачи файлов. Эти навыки необходимы при работе в смешанных средах Windows/Linux.