ค้นหาเว็บไซต์

Pscp - ถ่ายโอน/คัดลอกไฟล์ไปยังเซิร์ฟเวอร์ Linux หลายเครื่องโดยใช้ Single Shell


ยูทิลิตี้ Pscp ช่วยให้คุณสามารถถ่ายโอน/คัดลอกไฟล์ไปยังเซิร์ฟเวอร์ Linux ระยะไกลหลายเครื่องโดยใช้เทอร์มินัลเดียวที่มีคำสั่งเดียว เครื่องมือนี้เป็นส่วนหนึ่งของ Pssh (เครื่องมือ Parallel SSH) ซึ่ง มี OpenSSH เวอร์ชันคู่ขนานและเครื่องมืออื่นๆ ที่คล้ายกัน เช่น:

  1. pscp – เป็นโปรแกรมอรรถประโยชน์สำหรับการคัดลอกไฟล์แบบขนานกับโฮสต์จำนวนหนึ่ง
  2. prsync – เป็นโปรแกรมอรรถประโยชน์สำหรับการคัดลอกไฟล์ไปยังหลายโฮสต์พร้อมกันอย่างมีประสิทธิภาพ
  3. pnuke – ช่วยฆ่ากระบวนการบนโฮสต์ระยะไกลหลายเครื่องพร้อมกัน
  4. pslurp – ช่วยในการคัดลอกไฟล์จากโฮสต์ระยะไกลหลายเครื่องไปยังโฮสต์กลางพร้อมกัน

เมื่อทำงานในสภาพแวดล้อมเครือข่ายที่มีโฮสต์หลายตัวบนเครือข่าย ผู้ดูแลระบบอาจพบว่าเครื่องมือเหล่านี้ตามรายการข้างต้นมีประโยชน์มาก

ในบทความนี้ เราจะดูตัวอย่างที่เป็นประโยชน์ของยูทิลิตี Pscp เพื่อถ่ายโอน/คัดลอกไฟล์ไปยังโฮสต์ Linux หลายเครื่องบนเครือข่าย

หากต้องการใช้เครื่องมือ pscp คุณต้องติดตั้งยูทิลิตี PSSH บนระบบ Linux ของคุณ สำหรับการติดตั้ง PSSH คุณสามารถอ่านบทความนี้ได้

  1. วิธีการติดตั้งเครื่องมือ Pssh เพื่อดำเนินการคำสั่งบนเซิร์ฟเวอร์ Linux หลายเครื่อง

ตัวเลือกต่างๆ เกือบทั้งหมดที่ใช้กับเครื่องมือเหล่านี้จะเหมือนกัน ยกเว้นตัวเลือกบางตัวที่เกี่ยวข้องกับฟังก์ชันการทำงานเฉพาะของยูทิลิตี้ที่กำหนด

วิธีใช้ Pscp เพื่อถ่ายโอน/คัดลอกไฟล์ไปยังเซิร์ฟเวอร์ Linux หลายเครื่อง

ขณะใช้ pscp คุณต้องสร้างไฟล์แยกต่างหากที่รวมหมายเลขที่อยู่ IP ของเซิร์ฟเวอร์ Linux และหมายเลขพอร์ต SSH ที่คุณต้องเชื่อมต่อกับเซิร์ฟเวอร์

คัดลอกไฟล์ไปยังเซิร์ฟเวอร์ Linux หลายเครื่อง

มาสร้างไฟล์ใหม่ชื่อ “myscphosts.txt” และเพิ่มรายการที่อยู่ IP ของโฮสต์ Linux และหมายเลขพอร์ต SSH (ค่าเริ่มต้น 22) ตามที่แสดง

192.168.0.3:22
192.168.0.9:22

เมื่อคุณเพิ่มโฮสต์ลงในไฟล์แล้ว ก็ถึงเวลาคัดลอกไฟล์จากเครื่องท้องถิ่นไปยังโฮสต์ Linux หลายโฮสต์ภายใต้ไดเร็กทอรี /tmp โดยใช้คำสั่งต่อไปนี้

pscp -h myscphosts.txt -l tecmint -Av wine-1.7.55.tar.bz2 /tmp/
OR
pscp.pssh -h myscphosts.txt -l tecmint -Av wine-1.7.55.tar.bz2 /tmp/
ผลลัพธ์ตัวอย่าง
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 17:48:25 [SUCCESS] 192.168.0.3:22
[2] 17:48:35 [SUCCESS] 192.168.0.9:22

คำอธิบายเกี่ยวกับตัวเลือกที่ใช้ในคำสั่งข้างต้น

  1. สวิตช์ -h ใช้เพื่ออ่านโฮสต์จากไฟล์และตำแหน่งที่กำหนด
  2. สวิตช์ -l อ่านชื่อผู้ใช้เริ่มต้นบนโฮสต์ทั้งหมดที่ไม่ได้กำหนดผู้ใช้เฉพาะ
  3. สวิตช์ -A บอกให้ pscp ถามรหัสผ่านและส่งไปที่ ssh
  4. สวิตช์ -v ใช้เพื่อเรียกใช้ pscp ในโหมดรายละเอียด

คัดลอกไดเร็กทอรีไปยังเซิร์ฟเวอร์ Linux หลายเครื่อง

หากคุณต้องการคัดลอกทั้งไดเร็กทอรีให้ใช้ตัวเลือก -r ซึ่งจะคัดลอกไดเร็กทอรีทั้งหมดซ้ำตามที่แสดง

pscp -h myscphosts.txt -l tecmint -Av -r Android\ Games/ /tmp/
OR
pscp.pssh -h myscphosts.txt -l tecmint -Av -r Android\ Games/ /tmp/
ผลลัพธ์ตัวอย่าง
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 17:48:25 [SUCCESS] 192.168.0.3:22
[2] 17:48:35 [SUCCESS] 192.168.0.9:22

คุณสามารถดูหน้าการป้อนด้วยตนเองสำหรับ pscp หรือใช้คำสั่ง pscp --help เพื่อขอความช่วยเหลือ

บทสรุป

เครื่องมือนี้คุ้มค่าที่จะลองใช้เหมือนกับว่าคุณควบคุมระบบ Linux หลายระบบและมีการตั้งค่าการเข้าสู่ระบบแบบไม่ใช้รหัสผ่านแบบคีย์ SSH อยู่แล้ว