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

PSSH - เรียกใช้คำสั่งบนระบบ Linux ระยะไกลหลายระบบ


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

แต่ข้อเสียที่ใหญ่ที่สุดของ OpenSSH คือ คุณไม่สามารถดำเนินการคำสั่งเดียวกันบนหลายโฮสต์ได้ในคราวเดียว และ OpenSSH ไม่ได้รับการพัฒนาเพื่อดำเนินการดังกล่าว

นี่คือจุดที่เครื่องมือ Parallel SSH หรือ PSSH มีประโยชน์ โดยเป็นแอปพลิเคชันที่ใช้ Python ซึ่งช่วยให้คุณสามารถรันคำสั่งบนหลายโฮสต์พร้อมกันได้

เครื่องมือ PSSH ประกอบด้วย OpenSSH เวอร์ชันคู่ขนานและเครื่องมือที่เกี่ยวข้อง เช่น:

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

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

ติดตั้ง PSSH หรือ Parallel SSH บน Linux

ในคู่มือนี้ เราจะดูขั้นตอนในการติดตั้งโปรแกรม PSSH เวอร์ชันล่าสุด (เช่น เวอร์ชัน 2.3.1) บนการกระจายแบบอิง RHEL เช่น Fedora, CentOS Stream , Rocky & AlmaLinux และการกระจายแบบ Debian เช่น Ubuntu และ Linux Mint โดยใช้คำสั่ง pip

คำสั่ง pip เป็นโปรแกรมขนาดเล็ก (แทนที่สคริปต์ easy_install) สำหรับการติดตั้งและจัดการดัชนีแพ็คเกจซอฟต์แวร์ Python

เกี่ยวกับการแจกแจงตาม RHEL

ในการแจกแจง RHEL คุณต้องติดตั้งแพ็คเกจ pip (เช่น python-pip) บนระบบของคุณก่อนจึงจะติดตั้ง PSSH โปรแกรมที่ใช้ yum หรือ dnf

yum install python-pip
OR
dnf install python-pip

เมื่อคุณติดตั้งเครื่องมือ pip แล้ว คุณสามารถติดตั้งแพ็คเกจ pssh ได้โดยใช้คำสั่ง pip ดังที่แสดงด้านล่าง

pip install pssh  

เกี่ยวกับการแจกแจงแบบเดเบียน

สำหรับการกระจายแบบ Debian จะใช้เวลาสักครู่ในการติดตั้ง pssh โดยใช้คำสั่ง pip

sudo apt install python-pip
sudo pip install pssh

ฉันจะใช้ pssh ใน Linux ได้อย่างไร

เมื่อใช้ pssh คุณจะต้องสร้างไฟล์โฮสต์พร้อมจำนวนโฮสต์ พร้อมด้วยที่อยู่ IP และหมายเลขพอร์ตที่คุณต้องเชื่อมต่อกับระบบระยะไกลโดยใช้ pssh

บรรทัดในไฟล์โฮสต์อยู่ในรูปแบบต่อไปนี้ และยังสามารถรวมบรรทัดว่างและความคิดเห็นได้ด้วย

192.168.0.10:22
192.168.0.11:22

เรียกใช้คำสั่งเดียวบนเซิร์ฟเวอร์ Linux หลายเครื่อง

คุณสามารถดำเนินการคำสั่งเดียวบนโฮสต์ Linux ที่แตกต่างกันหรือหลายโฮสต์บนเครือข่ายได้โดยการเรียกใช้คำสั่ง pssh มีตัวเลือกมากมายที่จะใช้กับ pssh ตามที่อธิบายไว้ด้านล่าง:

เราจะดูวิธีการดำเนินการคำสั่งบนโฮสต์จำนวนหนึ่งโดยใช้ pssh พร้อมตัวเลือกต่างๆ

  • หากต้องการอ่านไฟล์โฮสต์ ให้รวมตัวเลือก -h host_file-name หรือ --hosts host_file_name
  • หากต้องการรวมชื่อผู้ใช้เริ่มต้นบนโฮสต์ทั้งหมดที่ไม่ได้กำหนดผู้ใช้เฉพาะ ให้ใช้ตัวเลือก -l ชื่อผู้ใช้หรือ --ชื่อผู้ใช้
  • คุณยังสามารถแสดงเอาต์พุตมาตรฐานและข้อผิดพลาดมาตรฐานได้เมื่อแต่ละโฮสต์เสร็จสิ้น โดยใช้ตัวเลือก -i หรือ --inline
  • คุณอาจต้องการทำให้การเชื่อมต่อหมดเวลาหลังจากผ่านไปตามจำนวนวินาทีที่กำหนดโดยรวมตัวเลือก -t number_of_seconds
  • หากต้องการบันทึกเอาต์พุตมาตรฐานลงในไดเร็กทอรีที่กำหนด คุณสามารถใช้ตัวเลือก -o /directory/path
  • หากต้องการขอรหัสผ่านและส่งไปที่ SSH ให้ใช้ตัวเลือก -A

มาดูตัวอย่างและการใช้คำสั่ง pssh กัน:

เรียกใช้คำสั่งบนโฮสต์ Linux หลายเครื่อง

1. หากต้องการดำเนินการ echo “Hello TecMint ” บนเทอร์มินัลของโฮสต์ Linux หลายโฮสต์โดยผู้ใช้รูทและแจ้งให้ป้อนรหัสผ่านของผู้ใช้รูท ให้รันคำสั่งนี้ด้านล่าง

ข้อสำคัญ: โปรดจำไว้ว่าโฮสต์ทั้งหมดจะต้องรวมอยู่ในไฟล์โฮสต์

pssh -h pssh-hosts -l root -A echo "Hello TecMint"

Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 15:54:55 [SUCCESS] 192.168.0.10:22
[2] 15:54:56 [SUCCESS] 192.168.0.11:22

หมายเหตุ: ในคำสั่งด้านบน “pssh-hosts” คือไฟล์ที่มีรายการที่อยู่ IP ของเซิร์ฟเวอร์ Linux ระยะไกลและหมายเลขพอร์ต SSH ที่คุณต้องการดำเนินการคำสั่ง

ค้นหาการใช้ดิสก์ของโฮสต์ Linux หลายเครื่อง

2. หากต้องการค้นหาการใช้พื้นที่ดิสก์บนเซิร์ฟเวอร์ Linux หลายเซิร์ฟเวอร์บนเครือข่ายของคุณ คุณสามารถเรียกใช้คำสั่งเดียวดังต่อไปนี้

pssh -h pssh-hosts -l root -A -i "df -hT"

Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 16:04:18 [SUCCESS] 192.168.0.10:22
Filesystem     Type   Size  Used Avail Use% Mounted on
/dev/sda3      ext4    38G  4.3G   32G  12% /
tmpfs          tmpfs  499M     0  499M   0% /dev/shm
/dev/sda1      ext4   190M   25M  156M  14% /boot

[2] 16:04:18 [SUCCESS] 192.168.0.11:22
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs        30G  9.8G   20G  34% /
devtmpfs                devtmpfs  488M     0  488M   0% /dev
tmpfs                   tmpfs     497M  148K  497M   1% /dev/shm
tmpfs                   tmpfs     497M  7.0M  490M   2% /run
tmpfs                   tmpfs     497M     0  497M   0% /sys/fs/cgroup
/dev/sda1               xfs       497M  166M  332M  34% /boot

ค้นหาเวลาทำงานของโฮสต์ Linux หลายเครื่อง

3. หากคุณต้องการทราบ เวลาทำงาน ของเซิร์ฟเวอร์ Linux หลายเครื่องในคราวเดียว คุณสามารถเรียกใช้คำสั่งต่อไปนี้ได้

pssh -h pssh-hosts -l root -A -i "uptime"
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 16:09:03 [SUCCESS] 192.168.0.10:22
 16:09:01 up  1:00,  2 users,  load average: 0.07, 0.02, 0.00

[2] 16:09:03 [SUCCESS] 192.168.0.11:22
 06:39:03 up  1:00,  2 users,  load average: 0.00, 0.06, 0.09

คุณสามารถดูหน้าการป้อนข้อมูลด้วยตนเองสำหรับคำสั่ง pssh เพื่อรับตัวเลือกอื่นๆ มากมายเพื่อค้นหาวิธีอื่นๆ ในการใช้ pssh

pssh --help

สรุป

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

หวังว่าคู่มือนี้มีประโยชน์ และในกรณีที่มีข้อมูลเพิ่มเติมเกี่ยวกับ pssh หรือข้อผิดพลาดขณะติดตั้งหรือใช้งาน โปรดแสดงความคิดเห็นได้