มีวิธีไปยังไฟล์ tail 2 ระยะไกลหรือไม่?
ฉันมีเซิร์ฟเวอร์สองตัว (a และ b) อยู่เบื้องหลัง load balancer และฉันต้องการทำสิ่งนี้ถ้าเป็นไปได้:
tail -f admin@serverA:~/mylogs/log admin@serverB:~/mylogs/log
ขอบคุณ!
มีวิธีไปยังไฟล์ tail 2 ระยะไกลหรือไม่?
ฉันมีเซิร์ฟเวอร์สองตัว (a และ b) อยู่เบื้องหลัง load balancer และฉันต้องการทำสิ่งนี้ถ้าเป็นไปได้:
tail -f admin@serverA:~/mylogs/log admin@serverB:~/mylogs/log
ขอบคุณ!
คำตอบ:
สิ่งนี้ใช้ได้กับฉัน:
ssh -n user@hostname1 'tail -f /mylogs/log' &
ssh -n user@hostname2 'tail -f /mylogs/log' &
Ctrl+C
ด้วย
fg
; จากนั้นคุณสามารถctrl+c
มัน คุณต้องทำอย่างนั้นหนึ่งครั้งสำหรับแต่ละหางที่คุณวิ่งอยู่ หรือคุณสามารถpkill -f ssh
กำหนดเป้าหมายทั้งหมดของพวกเขาได้ในเวลาเดียวกัน
ตัวเลือกที่ฉันต้องการคือไปกับ multitail ฉันจะเรียกใช้บางสิ่งเช่น:
multitail -l 'ssh user@host1 "tail -f /some/log/file"' -l 'ssh user@host2 "tail -f /some/log/file"'
Operation not permitted
กับ 2 3 โหนดเว็บก็โอเค
Operation not permitted
เบาะแสใด ๆ
คุณสามารถใช้เนื้อผ้าเพื่อโฮสต์หลายโฮสต์ (และผลลัพธ์ grep หากต้องการ):
$ fab -P -u 'USER' -p 'PASSWORD' --linewise -H host1,host2,host3 -- tail -f /path/to/my/log.log | grep ERROR
ฉันคิดว่ามันอาจเป็นไปได้ที่จะใช้:
ssh -f user@hostname1 "tail -f /var/log/file" > /tmp/somefile &
ssh -f user@hostname2 "tail -f /var/log/file" > /tmp/somefile &
ตัวเลือก -f หลังจาก ssh อนุญาตให้คุณป้อนรหัสผ่านก่อนที่จะทำงานในพื้นหลัง จากนั้นคุณสามารถให้ผลลัพธ์ทีละบรรทัดในไฟล์เดียวและทำงาน:
tail -f /tmp/somefile
จะให้คุณควบคุมคำสั่ง "tail" ปัจจุบันเล็กน้อยในกรณีที่คุณต้องการใช้ตัวเลือก tail อื่น ๆ สำหรับการแสดงผล
ลองดูคำตอบนี้ใน stackoverflowมันใช้ dsh และ tail -f
Parallel sshมีทางออกที่ดีสำหรับสิ่งนี้:
pssh -t0 -H 'host-01 host-02 host-03 host-04' -P tail -f /var/log/app.log
-t0
ปิดใช้งานการหมดเวลาเชื่อมต่อมิฉะนั้น pssh ปิดการเชื่อมต่อ-H '<host>...'
เป็นรายการโฮสต์ที่จะเรียกใช้คำสั่ง-P
คือการเปิดใช้งานการพิมพ์ stdout ของแต่ละโฮสต์tail -f /var/log/app.log
สามารถเป็นคำสั่งใด ๆ ที่เปลือกระยะไกลของคุณสามารถทำงานได้คุณจะพูดอะไรเกี่ยวกับสิ่งนี้ http://gist.github.com/303175
เป็นเพียงวิธีแก้ปัญหาที่แปลก แต่ใช้งานได้!:
หน้าจอ 1
ssh user@hostname1 "tail -f /var/log/file" > /dev/pts/6
หน้าจอ 2
ssh user@hostname2 "tail -f /var/log/file" > /dev/pts/6
who am i
และจะแสดงให้คุณเห็น)
คุณสามารถชำระเงิน dbitail
เครื่องมือ Java ที่ฉันสร้างสามารถอ่านไฟล์โลคัลและรีโมตโดยใช้ SSH มันค่อนข้างใช้งานง่าย
คำอธิบายเพิ่มเติม: https://github.com/pschweitz/DBITail/wiki
เพียงดาวน์โหลดเวอร์ชันที่สอดคล้องกับระบบปฏิบัติการของคุณจาก native jar release ที่สามารถใช้งานได้ภายใน Java Runtime ของคุณ (ต้องใช้ java 8_40 หรือสูงกว่า):
https://github.com/pschweitz/DBITail/releases
คุณสามารถค้นหาเอกสารที่สมบูรณ์ (ฝังด้วยและหน้าของ I Github ด้วย)
ฟิลิปป์
หรือคุณสามารถใช้หน้าจอเพื่อสร้างสองเทอร์มินัลแล้วแยกออก
SSH เป็นโฮสต์แรกที่คุณต้องการตัดต่อไฟล์บันทึกของและก่อนเรียกใช้ tail ให้เข้าสู่หน้าจอ
จากนั้นทำตามไฟล์บนโฮสต์นี้
CTRL + A, c จะสร้างหน้าจอหรือหน้าต่างใหม่ จากหน้าต่างใหม่นี้ไปยังโฮสต์ที่ 2 และตัดไฟล์ที่นั่น
ตอนนี้เพื่อสร้างหน้าจอแยก
CTRL + A, SHIFT + S สิ่งนี้จะสร้างหน้าจอแยกที่มีเชลล์ปัจจุบันในส่วนบนและส่วนล่างว่างเปล่า หากต้องการสลับไปยังส่วนด้านล่างและวางหน้าจอแรกไว้ภายใน
CTRL + A, TAB สิ่งนี้จะย้ายคุณไปยังส่วนล่าง ตอนนี้เพื่อนำเซสชัน SSH แรกของคุณไปยังพื้นที่นี้:
CTRL + A, "(เครื่องหมายคำพูด) และเลือกเซสชั่นแรกและกด Enter
ฉันรู้ว่านี่อาจดูเหมือนยิมนาสติกจำนวนมากและเป็น แต่คุณจะได้ใช้มันเมื่อคุณใช้มันสองสามครั้ง
นี่คือการสอนที่ดีมากหรือการอ้างอิงอย่างรวดเร็วถึงคำสั่งของหน้าจอ: http://www.pixelbeat.org/lkdb/screen.html
นอกจากนี้คุณสามารถสร้างไฟล์. screenrc เพื่อให้สิ่งที่ฉันอธิบายไว้เป็นไปโดยอัตโนมัติในครั้งแรกที่คุณเข้าสู่หน้าจอ
อีกสิ่งที่ดีเกี่ยวกับเรื่องนี้คือคุณสามารถปิดเซสชันของคุณและดำเนินการต่อที่อื่น ตัวอย่างเช่นคุณกำลังทำงานและมีการตรวจสอบบางอย่างเกิดขึ้น คุณสามารถปิดเซสชันได้โดยไม่ต้องออกจากระบบและดำเนินการต่อเมื่อคุณกลับถึงบ้านหรือไปยังที่อื่น
คุณสามารถท้ายไฟล์จากระยะไกลโดยใช้ bash และ rsync ฉันใช้มันและมันเป็นสคริปต์ทุบตีที่ยอดเยี่ยมดูบทช่วยสอนต่อไปนี้