मुझे एक कमांड-लाइन इंटरफ़ेस वाला 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 तब रिटर्न करता है जब SUCCESS का मिलान होता है, 1 जब FAILURE मिलान होता है, और आपका समाधान मैक पर काम करता है! (जो मुझे लगता है कि bsd आधारित है)