Wysyłanie plików przez Sambę za pomocą wiersza poleceń


17

Zastanawiałem się, czy istnieje sposób na użycie Samby do wysyłania elementów do komputera klienckiego za pomocą wiersza poleceń (muszę wysłać pliki z serwera Samby). Wiem, że zawsze mogłem użyć, scpale najpierw zastanawiałem się, czy można to zrobić z Sambą. Dzięki!

Odpowiedzi:


19

Użyj smbclientprogramu dostarczanego z Sambą:

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

Istnieje wiele flag, na przykład -Upozwalających na to, aby nazwa użytkownika zdalnego była inna niż nazwa lokalna.

W systemach, które dzielą Sambę na wiele pakietów binarnych, możesz mieć zainstalowane serwery Samby, ale wciąż ich brakuje smbclient. W takim przypadku należy sprawdzić repozytorium pakietów dla pakietu o nazwie smbclient, samba-clientlub podobnym.


Ciągle dostajęConnection to [IP] failed (Error NT_STATUS_CONNECTION_REFUSED)
— t0xic

Kiedy pisałem //serverpowyżej, mam na myśli to, co nazywacie maszyną klienta, która w tym przypadku działa jak serwer. Aby to działało, musi mieć udostępniony folder lub dysk przez SMB.
— Warren Young,

Och ... to tak naprawdę dla mnie nie zadziała. Chyba po prostu użyję scp. W każdym razie dzięki!
— t0xic

@ fleebow8: Możesz zainstalować serwer SCP innej firmy na komputerach klienckich, ale nie możesz kliknąć folderu w Eksploratorze Windows prawym przyciskiem myszy i powiedzieć „Udostępnij”?
— Warren Young,

Mam konkretny projekt, który wykonuję tam, gdzie chcę, aby wszystko było automatyczne.
— t0xic

12

curl obsługuje smbprotokół od wersji 7.40 : curl --upload-file /path/to/file.ext -u 'DOMAIN\Username' smb://172.16.17.52/ShareName/


To był świetny dla mnie curl --upload-file /home/me/local_file.txt --user "OurWindowsDomain\UserName:thePassword" smb://172.16.17.52/ShareName/Path/To/Remote/Dir. Mam listę wszystkich dostępnych nazw użytkownikówsmbclient -L //172.16.17.52 -U UserName%thePassword -W OurWindowsDomain
— Matthias Braun

to jest doskonałe!
— Psychozoic

2

Naprawdę działa to:

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

plik lokalny - plik z komputera lokalnego

plik zdalny - skopiuj do tego pliku na zdalnym komputerze


0

Innym sposobem, jeśli udział jest już zamontowany za pomocą bezpiecznika

Jeśli korzystasz z pulpitu z udziałami już zamontowanymi przez nautilus , caja lub inny menedżer plików , możesz użyć bezpiecznika (zamiast smbclient ).

Jeśli tak, możesz znaleźć niektóre punkty montowania w:

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

Tak, to jest punkt montowania !

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

I możesz użyć go jako zwykłego systemu plików.

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

0

smbclient Version 4.9.5-Debiani curl 7.64.0nie działało dla mnie ( Linux kali 4.19.0-kali4-amd64)

To spowodowało:

smbmap -H server -u username -p password --upload local-filename share\\remote-filename
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.