วิธีการใช้ pssh เพื่อรันเซิร์ฟเวอร์หลายเครื่องด้วยคำสั่งต่างกัน?


0

ฉันต้องการทดสอบระบบแบบกระจายด้วยรีโมตเซิร์ฟเวอร์หลายตัวดังนั้นฉันจึงใช้ pssh ในเซิร์ฟเวอร์หลักเพื่อควบคุมผู้อื่น ที่นี่จำเป็นต้องเรียกใช้หลายเซิร์ฟเวอร์ด้วยคำสั่งที่แตกต่างกันตัวอย่างเช่น

ในเซิร์ฟเวอร์ 201 จำเป็นต้องเรียกใช้

java -jar test.jar 9001 **.**.**.** 9001
java -jar test.jar 9001 **.**.**.** 9002

ในเซิร์ฟเวอร์ 202 จำเป็นต้องเรียกใช้

java -jar test.jar 9001 **.**.**.** 9003
java -jar test.jar 9001 **.**.**.** 9004

ในเซิร์ฟเวอร์ 203 ต้องเรียกใช้

java -jar test.jar 9001 **.**.**.** 9005
java -jar test.jar 9001 **.**.**.** 9006

...

ข้อมูลเซิร์ฟเวอร์ทั้งหมดบันทึกไว้ใน hosts.txt ด้วยรูปแบบชื่อผู้ใช้ @ เซิร์ฟเวอร์ ดังนั้นวิธีการใช้ pssh ในเซิร์ฟเวอร์หลักเพื่อเรียกใช้คำสั่ง?

คำตอบ:


1

pssh ใช้เพื่อรันคำสั่งเดียวกันบนเซิร์ฟเวอร์ที่แตกต่างกันตัวอย่างของคุณแสดงให้เห็นว่าคุณต้องการเรียกใช้คำสั่งที่แตกต่างกันบนเซิร์ฟเวอร์ที่แตกต่างกัน (จุดเริ่มต้นของคำสั่งเหมือนกันทั้งหมด แต่จำนวนสุดท้ายแตกต่างกัน)

pssh -i -h hosts.txt script.shคุณสามารถทำอะไรจะใส่คำสั่งเหล่านี้ลงในแฟ้มสคริปต์ในแต่ละเซิร์ฟเวอร์ตามที่การทำให้แน่ใจว่าไฟล์สคริปต์ที่เรียกว่าเหมือนกันในแต่ละเซิร์ฟเวอร์จากนั้นใช้

ตัวอย่างเช่นบนเซิร์ฟเวอร์ 201 ใส่เข้าไป script.sh

#!/bin/sh
java -jar test.jar 9001 **.**.**.** 9001
java -jar test.jar 9001 **.**.**.** 9002

และบนเซิร์ฟเวอร์ 202 ใส่เข้าไป script.sh

#!/bin/sh
java -jar test.jar 9001 **.**.**.** 9003
java -jar test.jar 9001 **.**.**.** 9004

เป็นต้น

จากนั้นใส่script.shใน $ PATH ของผู้ใช้ที่จะเรียกใช้คำสั่งหรือให้เส้นทางแบบเต็มไปยังสคริปต์และอย่าลืมที่จะทำให้สคริปต์ปฏิบัติการบนเซิร์ฟเวอร์


ใช่มันใช้งานได้ดีขอบคุณมากสำหรับความช่วยเหลือของคุณ
Andi

นอกจากนี้ฉันมีคำถามอีกข้อหนึ่งถ้าฉันต้องการเสร็จสิ้นกระบวนการทั้งหมดในเซิร์ฟเวอร์ที่แตกต่างกันฉันใช้ pnuke แต่เมื่อเรียกใช้ pssh อีกครั้งก็กล่าวว่าพอร์ต (9001-900x) ยังคงใช้อยู่ดังนั้นวิธีแยกส่วนต่าง ๆ ให้แตกต่างกัน เซิร์ฟเวอร์สะดวกไหม
Andi

@Andi โปรดโพสต์เป็นคำถามแยกต่างหาก
ojs
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.