Ich versuche, die Ausgabe des Startskript von Jenkins zu erfassen, aber alles, was ich bekomme, ist eine leere Ausgabe.So erfassen Sie den Jenkins-Start Log
Die Ausgabe von Jenkins im Terminal
erscheint#!/bin/bash
function sendNotificationOnSlack() {
curl -X POST ...
}
export -f sendNotificationOnSlack
java -Dhudson.DNSMultiCast.disabled=true -jar /usr/local/opt/jenkins/libexec/jenkins.war --httpPort=3999 | awk '/Jenkins is fully up and running/ {system("bash -c sendNotificationOnSlack")}'
ich auch versucht habe, die Ausgabe des TTY zu erfassen, aber als leer
#!/bin/bash
currentTTY=$(tty)
echo $currentTTY
function sendNotificationOnSlack() {
curl -X POST ...
}
export -f sendNotificationOnSlack
java -Dhudson.DNSMultiCast.disabled=true -jar /usr/local/opt/jenkins/libexec/jenkins.war --httpPort=3999
tail -f $currentTTY | awk '/Jenkins is fully up and running/ {system("bash -c sendNotificationOnSlack")}'
Ich habe versucht, überall zu suchen, aber ich erscheint kann die Datei jenkins.log nicht finden, hat jemand einen Vorschlag?
Ich bin nicht ganz sicher, über das Problem, aber wenn Sie die Ausgabe erfassen müssen, sollten Sie vielleicht Jenkins in einem Prozess spawnen und das Protokoll von einem anderen erfassen. Das heißt, vielleicht sollten Sie die Ausgaben [so] "abschlagen" (http://stackoverflow.com/questions/692000/how-do-i-write-stderr-to-a-file-while-using-tee- mit-a-pipe) in Dateien und verarbeiten von dort aus, entfernen Sie die Rohrleitungen in "awk". 'awk' kann für die Dateien verwendet werden, die von' tee' geschrieben wurden. – alok
Außerdem gehe ich davon aus, dass die Logs nicht in '/ var/log/jenkins/jenkins.log' fallen sollen, richtig? – alok
@alok Danke für die Antwort. Das Problem ist, dass die Ausgabe nicht erfasst wird und selbst wenn piped "awk" in der Shell angezeigt wird (ein Zeichen, das nicht umgeleitet wird, aber immer noch an denselben Ort geht). Ich habe bereits überprüft auf '/ var/log/jenkins /' und der Ordner ist leer –