Mengirim file melalui Samba dengan baris perintah


17

Saya bertanya-tanya apakah ada cara untuk menggunakan Samba untuk mengirim barang ke mesin klien melalui baris perintah (saya perlu mengirim file dari server Samba). Saya tahu saya selalu bisa menggunakan scptetapi pertama saya bertanya-tanya apakah ada cara untuk melakukannya dengan Samba. Terima kasih!

Jawaban:


19

Gunakan smbclient, sebuah program yang dilengkapi dengan Samba:

$ smbclient //server/share -c 'cd c:/remote/path ; put local-file'

Ada banyak flag, seperti -Uuntuk memungkinkan nama pengguna jarak jauh berbeda dari yang lokal.

Pada sistem yang membagi Samba menjadi beberapa paket biner, Anda mungkin sudah menginstal server Samba namun masih hilang smbclient. Dalam kasus seperti itu, periksa repositori paket Anda untuk paket bernama smbclient, samba-client, atau serupa.


Saya terus mendapatkanConnection to [IP] failed (Error NT_STATUS_CONNECTION_REFUSED)
t0xic

Ketika saya menulis di //serveratas, maksud saya apa yang Anda panggil mesin klien, yang dalam hal ini bertindak sebagai server. Perlu memiliki folder atau drive yang dibagikan melalui SMB agar ini berfungsi.
Warren Young

Oh ... itu tidak akan berhasil bagiku. Saya kira saya hanya akan menggunakan scp. Bagaimanapun, terima kasih!
t0xic

@ fleebow8: Anda dapat menginstal server SCP pihak ketiga pada mesin klien, tetapi Anda tidak dapat mengklik kanan folder di Windows Explorer dan mengatakan "Bagikan"?
Warren Young

Saya memiliki proyek spesifik yang saya lakukan di mana saya ingin semuanya otomatis.
t0xic

12

curl mendukung smbprotokol sejak v7.40 : curl --upload-file /path/to/file.ext -u 'DOMAIN\Username' smb://172.16.17.52/ShareName/


Ini bekerja besar bagi saya: curl --upload-file /home/me/local_file.txt --user "OurWindowsDomain\UserName:thePassword" smb://172.16.17.52/ShareName/Path/To/Remote/Dir. Saya mendapat daftar semua nama sharenames yang tersedia dengansmbclient -L //172.16.17.52 -U UserName%thePassword -W OurWindowsDomain
Matthias Braun

ini sempurna!
Psychozoic

2

Sungguh bekerja adalah ini:

$ smbclient //server/share -c 'cd c:/remote/path ; put local-file remote-file'

local-file - file dari mesin lokal

remote-file - salin ke file ini di mesin jarak jauh


0

Cara lain jika bagian tersebut sudah dipasang oleh sekering

Jika Anda menjalankan beberapa desktop dengan share yang sudah di-mount oleh nautilus , caja atau manajer file lainnya , Anda bisa menggunakan sekering (bukan smbclient ).

Jika demikian, Anda dapat menemukan beberapa titik mount di:

ls -l /run/user/$UID/gvfs/
drwx------ 1 charlie charlie 0 Feb  2 10:04 smb-share:server=hostname,share=documents

Ya ini adalah mountpoint !

df -h /run/user/$UID/gvfs/*
Filesystem      Size   Used  Avail  Use% Mounted on
gvfsd-fuse      16.2T  3.6T  12.6T   59% /run/user/1000/gvfs

Dan Anda bisa menggunakannya sebagai sistem file biasa.

cp $HOME/myfile \
    /run/user/$UID/gvfs/smb-share:server=hostname,share=documents/destpath/

0

smbclient Version 4.9.5-Debiandan curl 7.64.0tidak bekerja untuk saya ( Linux kali 4.19.0-kali4-amd64)

Ini berhasil:

smbmap -H server -u username -p password --upload local-filename share\\remote-filename
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.