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.