ฉันมีเซิร์ฟเวอร์ CI ที่มีอินเตอร์เฟสบรรทัดคำสั่งที่อนุญาตให้ฉันเริ่มต้นงานจากระยะไกล ( jenkins
เซิร์ฟเวอร์ CI และjenkins-cli.jar
เครื่องมือ)
หลังจากที่ฉันปิดงานฉันtail -f
บันทึก (ขออภัยสำหรับคำสั่งยุ่ง):
ssh -t my-jenkins-host.com "tail -f \"/var/lib/jenkins/jobs/$job_name/builds/\`ls -ltr /var/lib/jenkins/jobs/$job_name/builds/ | grep '^l' | tail -n 1|awk '{print \$9}'\`/log\""
หลังจากงานเสร็จสมบูรณ์โดยปกติหลังจากอย่างน้อย 5 นาทีฉันได้รับบรรทัดต่อไปนี้ในผลลัพธ์:
Finished: SUCCESS
มีวิธีที่ดีในการหยุดบันทึกตามจุดนี้หรือไม่? เช่นจะมีtail_until 'some line' my-file.log
คำสั่งหรือไม่?
โบนัส:เครดิตพิเศษถ้าคุณสามารถให้คำตอบที่ส่งกลับ 0 เมื่อจับคู่ความสำเร็จได้ 1 เมื่อจับคู่ FAILURE ได้และโซลูชันของคุณทำงานบน mac! (ซึ่งฉันเชื่อว่าเป็น bsd ตาม)