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!

t0xic
sumber

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.

Warren Young
sumber
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/

eadmaster
sumber
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

Jack Belowzerooff
sumber
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/
techno
sumber
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
chefarov
sumber