कमांड लाइन के साथ सांबा पर फाइलें भेजना


17

मैं सोच रहा था कि क्या कमांड लाइन के माध्यम से क्लाइंट मशीन को आइटम भेजने के लिए सांबा का उपयोग करने का एक तरीका है (मुझे सांबा सर्वर से फाइलें भेजने की आवश्यकता है)। मुझे पता है कि मैं हमेशा उपयोग कर सकता हूं scpलेकिन पहले मैं सोच रहा था कि क्या सांबा के साथ ऐसा करने का कोई तरीका है। धन्यवाद!

जवाबों:


19

का प्रयोग करें smbclient, एक प्रोग्राम है जो सांबा के साथ आता है:

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

कई झंडे हैं, जैसे -Uकि दूरस्थ उपयोगकर्ता नाम को स्थानीय एक से अलग करने की अनुमति देना।

सांबा को कई बाइनरी पैकेज में विभाजित करने वाले सिस्टम पर, आपके पास अभी तक स्थापित सांबा सर्वर अभी भी गायब हो सकते हैं smbclient। इस तरह के एक मामले में, नाम के एक पैकेज के लिए अपने पैकेज भंडार की जांच smbclient, samba-client, या इसी तरह।


मैं प्राप्त कर रहा हूंConnection to [IP] failed (Error NT_STATUS_CONNECTION_REFUSED)
t0xic

जब मैंने //serverऊपर लिखा था , मेरा मतलब है कि आप क्लाइंट मशीन को क्या कह रहे हैं, जो इस मामले में एक सर्वर के रूप में काम कर रहा है। इसे काम करने के लिए एसएमबी के माध्यम से साझा किया जाने वाला एक फ़ोल्डर या ड्राइव होना चाहिए।
वॉरेन यंग

ओह ... यह वास्तव में मेरे लिए काम नहीं करेगा। मुझे लगता है मैं सिर्फ उपयोग करेंगे scp। वैसे भी धन्यवाद!
t0xic

@ fleebow8: आप क्लाइंट मशीनों पर एक तृतीय-पक्ष एससीपी सर्वर स्थापित कर सकते हैं, लेकिन आप विंडोज एक्सप्लोरर में एक फ़ोल्डर पर राइट-क्लिक नहीं कर सकते हैं और "शेयर" कह सकते हैं?
वॉरेन यंग

मेरे पास एक विशिष्ट परियोजना है जो मैं कर रहा हूं जहां मैं चाहता हूं कि सब कुछ स्वचालित हो।
t0xic

12

v7.40 से कर्ल smbप्रोटोकॉल का समर्थन करता है : curl --upload-file /path/to/file.ext -u 'DOMAIN\Username' smb://172.16.17.52/ShareName/


यह मेरे लिए बहुत अच्छा काम किया curl --upload-file /home/me/local_file.txt --user "OurWindowsDomain\UserName:thePassword" smb://172.16.17.52/ShareName/Path/To/Remote/Dir:। मुझे smbclient -L //172.16.17.52 -U UserName%thePassword -W OurWindowsDomain
माथियास ब्रौन

यह पूर्ण है!
साइकोजोइक

2

वास्तव में काम यह होगा:

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

लोकल-फाइल - लोकल मशीन से फाइल

रिमोट-फाइल - रिमोट मशीन पर इस फाइल की कॉपी


0

एक और तरीका है अगर शेयर पहले से ही फ्यूज द्वारा मुहिम शुरू की गई है

यदि आप नॉटिलस , काजा या किसी अन्य फ़ाइल प्रबंधक द्वारा पहले से ही साझा किए गए शेयरों के साथ कुछ डेस्कटॉप चला रहे हैं , तो आप फ्यूज ( smbclient के बजाय ) का उपयोग कर सकते हैं ।

यदि हां, तो आपको कुछ माउंटपॉइंट मिल सकते हैं:

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

हाँ यह एक आरोह है !

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

और आप इसे एक नियमित फाइल सिस्टम के रूप में उपयोग कर सकते हैं।

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

0

smbclient Version 4.9.5-Debianऔर curl 7.64.0मेरे लिए काम नहीं किया ( Linux kali 4.19.0-kali4-amd64)

यह किया:

smbmap -H server -u username -p password --upload local-filename share\\remote-filename
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.