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

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


หากคุณกำลังจัดการเซิร์ฟเวอร์ Linux หลายเครื่อง และคุณต้องการรันหลายคำสั่งบนเซิร์ฟเวอร์ Linux ทั้งหมด แต่คุณไม่รู้ว่าต้องทำอย่างไร ไม่ต้องกังวล ในคู่มือการจัดการเซิร์ฟเวอร์ง่ายๆ นี้ เราจะแสดงให้คุณเห็นวิธีการรันหลายคำสั่งบนเซิร์ฟเวอร์ Linux หลายเครื่องพร้อมกัน

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

ความต้องการ

  1. ติดตั้ง Pssh เพื่อรันคำสั่งบนเซิร์ฟเวอร์ Linux ระยะไกลหลายตัว
  2. คุณต้องใช้การตรวจสอบสิทธิ์แบบไม่ใช้รหัสผ่าน 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 คุณสามารถแบ่งปันความคิดใด ๆ ที่เกี่ยวข้องกับหัวข้อนี้ผ่านทางส่วนความคิดเห็นด้านล่าง