การส่งไฟล์ผ่าน Samba ด้วยบรรทัดคำสั่ง


17

ฉันสงสัยว่ามีวิธีใช้ Samba เพื่อส่งรายการไปยังเครื่องไคลเอนต์ผ่านทางบรรทัดคำสั่ง (ฉันต้องส่งไฟล์จากเซิร์ฟเวอร์ Samba) ฉันรู้ว่าฉันสามารถใช้งานได้ตลอดscpแต่ก่อนอื่นฉันก็สงสัยว่ามีวิธีการทำกับ Samba หรือไม่ ขอบคุณ!

คำตอบ:


19

ใช้smbclientโปรแกรมที่มาพร้อมกับ Samba:

$ 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ข้างต้นฉันหมายถึงสิ่งที่คุณกำลังเรียกเครื่องไคลเอนต์ซึ่งในกรณีนี้จะทำหน้าที่เป็นเซิร์ฟเวอร์ จำเป็นต้องมีโฟลเดอร์หรือไดรฟ์ที่แชร์ผ่าน SMB เพื่อให้ทำงานได้
Warren Young

โอ้ ... นั่นไม่ได้ผลสำหรับฉันจริงๆ scpผมคิดว่าผมก็จะใช้ ขอบคุณอยู่ดี!
t0xic

@ fleebow8: คุณสามารถติดตั้งเซิร์ฟเวอร์ SCP บุคคลที่สามบนเครื่องไคลเอนต์ แต่คุณไม่สามารถคลิกขวาที่โฟลเดอร์ใน Windows Explorer และพูดว่า "แบ่งปัน"
Warren Young

ฉันมีโครงการเฉพาะที่ฉันกำลังทำอยู่ที่ฉันต้องการให้ทุกอย่างเป็นไปโดยอัตโนมัติ
t0xic

12

curl รองรับsmbโปรโตคอลตั้งแต่ v7.40 : 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
Matthias Braun

สมบูรณ์แบบ!
Psychozoic

2

จะได้ผลจริงๆ:

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

ท้องถิ่นไฟล์ - ไฟล์จากเครื่องท้องถิ่น

remote-file - คัดลอกไปยังไฟล์นี้บนเครื่องระยะไกล


0

อีกวิธีหนึ่งถ้าใช้ร่วมกันถูกติดตั้งโดยฟิวส์

หากคุณใช้เดสก์ท็อปที่มีการแชร์เมานต์โดยnautilus , cajaหรือตัวจัดการไฟล์อื่น ๆคุณอาจใช้ฟิวส์ (แทน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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.