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!

t0xic
źródło

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.

Warren Young
źródło
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/

eadmaster
źródło
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

Jack Belowzerooff
źródło
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/
techno
źródło
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
szef kuchni
źródło