วิธีเรียกใช้หลายคำสั่งบนเซิร์ฟเวอร์ Linux หลายเครื่อง
หากคุณกำลังจัดการเซิร์ฟเวอร์ Linux หลายเครื่อง และคุณต้องการรันหลายคำสั่งบนเซิร์ฟเวอร์ Linux ทั้งหมด แต่คุณไม่รู้ว่าต้องทำอย่างไร ไม่ต้องกังวล ในคู่มือการจัดการเซิร์ฟเวอร์ง่ายๆ นี้ เราจะแสดงให้คุณเห็นวิธีการรันหลายคำสั่งบนเซิร์ฟเวอร์ Linux หลายเครื่องพร้อมกัน
เพื่อให้บรรลุเป้าหมายนี้ คุณสามารถใช้โปรแกรม pssh (ssh แบบขนาน) ซึ่งเป็นยูทิลิตีบรรทัดคำสั่งสำหรับเรียกใช้งาน ssh แบบขนานบนโฮสต์จำนวนหนึ่ง ด้วยเครื่องมือนี้ คุณสามารถส่งข้อมูลไปยังกระบวนการ ssh ทั้งหมดจากเชลล์สคริปต์ได้
ความต้องการ
- ติดตั้ง Pssh เพื่อรันคำสั่งบนเซิร์ฟเวอร์ Linux ระยะไกลหลายตัว
- คุณต้องใช้การตรวจสอบสิทธิ์แบบไม่ใช้รหัสผ่าน SSH สำหรับเซิร์ฟเวอร์ระยะไกลทั้งหมด
สร้างเชลล์สคริปต์
ดังนั้นคุณต้องเริ่มต้นด้วยการเตรียมสคริปต์ซึ่งมีคำสั่ง Linux ที่คุณต้องการดำเนินการบนเซิร์ฟเวอร์ต่างๆ ในตัวอย่างนี้ เราจะเขียนสคริปต์ที่จะรวบรวมข้อมูลต่อไปนี้จากเซิร์ฟเวอร์หลายเครื่อง:
- ตรวจสอบสถานะการออนไลน์ของเซิร์ฟเวอร์
- ตรวจสอบว่าใครเข้าสู่ระบบและกำลังทำอะไรอยู่
- แสดงรายการกระบวนการที่ทำงานอยู่ 5 อันดับแรกตามการใช้หน่วยความจำ
ขั้นแรกให้สร้างสคริปต์ชื่อ commands.sh ด้วยโปรแกรมแก้ไขที่คุณชื่นชอบ
vi commands.sh
จากนั้นเพิ่มคำสั่งต่อไปนี้ลงในสคริปต์ดังที่แสดง
#!/bin/bash
###############################################################################
#Script Name : commands.sh
#Description : execute multiple commands on multiple servers
#Author : Aaron Kili Kisinga
#Email : [email
################################################################################
echo
show system uptime
uptime
echo
show who is logged on and what they are doing
who
echo
show top 5 processe by RAM usage
ps -eo cmd,pid,ppid,%mem,%cpu --sort=-%mem | head -n 6
exit 0
บันทึกไฟล์และปิด จากนั้นทำให้สคริปต์ปฏิบัติการได้ดังที่แสดง
chmod +x commands.sh
สร้างไฟล์โฮสต์ PSSH
จากนั้น เพิ่มรายการเซิร์ฟเวอร์ที่คุณต้องการเรียกใช้คำสั่งในไฟล์ hosts.txt ในรูปแบบ [user@]host[:port]
หรือ เพียงให้ที่อยู่ IP ของเซิร์ฟเวอร์
แต่เราขอแนะนำให้คุณใช้นามแฝง ssh ซึ่งสามารถระบุได้ในไฟล์ .ssh/config ตามที่อธิบายไว้ในวิธีกำหนดค่าการเชื่อมต่อ ssh ที่กำหนดเองเพื่อทำให้การเข้าถึงระยะไกลง่ายขึ้น
วิธีการนี้มีประสิทธิภาพและเชื่อถือได้มากกว่า โดยช่วยให้คุณสามารถระบุตัวเลือกการกำหนดค่า (เช่น ชื่อโฮสต์ ระบุไฟล์ พอร์ต ชื่อผู้ใช้ ฯลฯ...) สำหรับเซิร์ฟเวอร์ระยะไกลแต่ละตัว
ต่อไปนี้เป็นไฟล์นามแฝงโฮสต์ ssh ตัวอย่างของเรา หรือที่เรียกว่าไฟล์การกำหนดค่า ssh เฉพาะผู้ใช้
vi ~/.ssh/config
จากนั้น ให้สร้างไฟล์ hosts.txt ซึ่งคุณสามารถระบุนามแฝง (ชื่อที่กำหนดโดยใช้คีย์เวิร์ด Host ในไฟล์ .ssh/config) ดังที่แสดงไว้ที่นี่
vi hosts.txt
เพิ่มนามแฝงเซิร์ฟเวอร์
server1
server2
server3
เรียกใช้คำสั่งผ่านสคริปต์บนเซิร์ฟเวอร์ Linux หลายเครื่อง
ตอนนี้ให้รันคำสั่ง pssh ต่อไปนี้โดยระบุไฟล์ hosts.txt พร้อมกับสคริปต์ที่มีหลายคำสั่งเพื่อรันบนเซิร์ฟเวอร์ระยะไกลหลายตัว
pssh -h hosts.txt -P -I<./commands.sh
ความหมายของแฟล็กที่ใช้ในคำสั่งข้างต้น:
-h
– อ่านไฟล์โฮสต์-P
– บอกให้ pssh แสดงเอาต์พุตเมื่อมาถึง-I
– อ่านอินพุตและส่งไปยังแต่ละกระบวนการ ssh
แค่นั้นแหละ! ในบทความนี้ เราได้แสดงวิธีดำเนินการหลายคำสั่งบนเซิร์ฟเวอร์หลายเครื่องใน Linux คุณสามารถแบ่งปันความคิดใด ๆ ที่เกี่ยวข้องกับหัวข้อนี้ผ่านทางส่วนความคิดเห็นด้านล่าง