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 หรือข้อผิดพลาดขณะติดตั้งหรือใช้งาน โปรดแสดงความคิดเห็นได้