Pscp - ถ่ายโอน/คัดลอกไฟล์ไปยังเซิร์ฟเวอร์ Linux หลายเครื่องโดยใช้ Single Shell
ยูทิลิตี้ Pscp ช่วยให้คุณสามารถถ่ายโอน/คัดลอกไฟล์ไปยังเซิร์ฟเวอร์ Linux ระยะไกลหลายเครื่องโดยใช้เทอร์มินัลเดียวที่มีคำสั่งเดียว เครื่องมือนี้เป็นส่วนหนึ่งของ Pssh (เครื่องมือ Parallel SSH) ซึ่ง มี OpenSSH เวอร์ชันคู่ขนานและเครื่องมืออื่นๆ ที่คล้ายกัน เช่น:
- pscp – เป็นโปรแกรมอรรถประโยชน์สำหรับการคัดลอกไฟล์แบบขนานกับโฮสต์จำนวนหนึ่ง
- prsync – เป็นโปรแกรมอรรถประโยชน์สำหรับการคัดลอกไฟล์ไปยังหลายโฮสต์พร้อมกันอย่างมีประสิทธิภาพ
- pnuke – ช่วยฆ่ากระบวนการบนโฮสต์ระยะไกลหลายเครื่องพร้อมกัน
- pslurp – ช่วยในการคัดลอกไฟล์จากโฮสต์ระยะไกลหลายเครื่องไปยังโฮสต์กลางพร้อมกัน
เมื่อทำงานในสภาพแวดล้อมเครือข่ายที่มีโฮสต์หลายตัวบนเครือข่าย ผู้ดูแลระบบอาจพบว่าเครื่องมือเหล่านี้ตามรายการข้างต้นมีประโยชน์มาก
ในบทความนี้ เราจะดูตัวอย่างที่เป็นประโยชน์ของยูทิลิตี Pscp เพื่อถ่ายโอน/คัดลอกไฟล์ไปยังโฮสต์ Linux หลายเครื่องบนเครือข่าย
หากต้องการใช้เครื่องมือ pscp คุณต้องติดตั้งยูทิลิตี PSSH บนระบบ Linux ของคุณ สำหรับการติดตั้ง PSSH คุณสามารถอ่านบทความนี้ได้
- วิธีการติดตั้งเครื่องมือ 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
คำอธิบายเกี่ยวกับตัวเลือกที่ใช้ในคำสั่งข้างต้น
- สวิตช์ -h ใช้เพื่ออ่านโฮสต์จากไฟล์และตำแหน่งที่กำหนด
- สวิตช์ -l อ่านชื่อผู้ใช้เริ่มต้นบนโฮสต์ทั้งหมดที่ไม่ได้กำหนดผู้ใช้เฉพาะ
- สวิตช์ -A บอกให้ pscp ถามรหัสผ่านและส่งไปที่ ssh
- สวิตช์ -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 อยู่แล้ว