[英]Rundeck details of scheduled job
在 rundeck(帶有 H2SQL 的 OpenSource v3.3.1)中,有沒有辦法查看計划作業的詳細信息? 對我們來說,了解將執行作業的節點列表很重要。 我在文件和 H2 DB 中進行了搜索,但無法獲取用於安排作業的節點或過濾器。
您可以在“活動”面板上看到,單擊任何執行(計划或未計划),然后單擊“日志輸出”,您可以看到所有作業的詳細信息。 此外,您可以檢查執行日志,通常位於/var/lib/rundeck/logs/rundeck/<projectname>/job/<job-id>/logs
路徑。
您可以在此處查看更多信息。
更新 1:您可以使用預測 API 調用來檢查“要執行”的作業,我留下一個使用它的腳本:
#!/bin/sh
#############################################
echo "Insert the Rundeck Server hostname:"; read -r rundeckServer
echo -e "\nWhich port?:"; read -r rundeckPort
echo -e "\nCopy and Paste the Rundeck API Token:"; read -r rundeckApitoken
#############################################
# to run unatended mode, please comment the code above and uncomment the code below, and replace with your props
#############################################
# rundeckServer="node01.rundeck.local"
# rundeckPort="4440"
# rundeckApitoken="P0K0EvIAoWkAbmvj3JnlelmwaVhF5AJd"
#############################################
# Options Variables
#############################################
rundeckProtocol="http"
rundeckApiversion="31"
rundeckApiformat="json"
curlOptions="-s"
#############################################
echo
echo "The following Jobs are Scheduled:"
echo
for projectName in $(curl -X "GET" "$curlOptions" -H "Accept: application/$rundeckApiformat" -H "Content-Type: application/$rundeckApiformat" -H "X-Rundeck-Auth-Token: $rundeckApitoken" "$rundeckProtocol"://"$rundeckServer":"$rundeckPort"/api/"$rundeckApiversion"/projects|sed 's/,/\n/g'| grep name | cut -d ":" -f2 | tr -d '"')
do
for jobId in $(curl "$curlOptions" -X "GET" -H "Accept: application/$rundeckApiformat" -H "Content-Type: application/$rundeckApiformat" -H "X-Rundeck-Auth-Token: $rundeckApitoken" "$rundeckProtocol"://"$rundeckServer":"$rundeckPort"/api/"$rundeckApiversion"/project/"$projectName"/jobs | sed 's/,/\n/g' | grep id | cut -d ":" -f2 | tr -d '"')
do
output=$(curl "$curlOptions" -X "GET" -H "Accept: application/$rundeckApiformat" -H "Content-Type: application/$rundeckApiformat" -H "X-Rundeck-Auth-Token: $rundeckApitoken" "$rundeckProtocol"://"$rundeckServer":"$rundeckPort"/api/"$rundeckApiversion"/job/"$jobId"/forecast?time=7d | grep "futureScheduledExecutions")
if [ -n "$output" ]
then
echo $output | sed -r 's/.+("href":".+),.+("futureScheduledExecutions":\[.+\]),.+("project":".+),("name":".+).+/\1\n\3\n\4\n\2/g'
echo
fi
done
done
更新 2:我留下更簡單的預測 API 調用,(需要jq )。
curl --location --request GET 'http://localhost:4440/api/35/job/your-job-id/forecast' --header 'Accept: application/json' --header 'X-Rundeck-Auth-Token: your-user-token' --header 'Content-Type: application/json' --data-raw '' | jq
打印所有信息:
{
"href": "http://localhost:4440/api/35/job/328789d1-986f-4aa2-9013-de8eb6b6df98",
"id": "328789d1-986f-4aa2-9013-de8eb6b6df98",
"scheduleEnabled": true,
"scheduled": true,
"enabled": true,
"permalink": "http://localhost:4440/project/ProjectEXAMPLE/job/show/328789d1-986f-4aa2-9013-de8eb6b6df98",
"group": null,
"futureScheduledExecutions": [
"2020-08-06T14:33:00Z"
],
"description": "",
"project": "ProjectEXAMPLE",
"name": "ExampleJob"
}
更新 3:現在結合導出作業信息和預測 API 調用,您可以獲得作業信息和節點,我留下一個示例腳本:
#!/bin/sh
#####################################################
# rundeck instance values
server="localhost"
port="4440"
api="35"
jobid="328789d1-986f-4aa2-9013-de8eb6b6df98"
token="MhloqezoV3IygvOIA6yzE9TNlzYCbi4m"
info=$(curl -s --location --request GET "http://$server:$port/api/$api/job/$jobid/forecast" --header "Accept: application/json" --header "X-Rundeck-Auth-Token:$token" --header "Content-Type: application/json" | jq)
nodes=$(curl -s --location --request GET "http://$server:$port/api/$api/job/$jobid" --header "Accept: application/xml" --header "X-Rundeck-Auth-Token:$token" --header "Content-Type: application/xml" --data-raw "" | grep -oPm1 "(?<=<filter>)[^<]+")
echo "######################"
echo "Job information: $info"
echo "######################"
echo "Nodes: $nodes"
echo "######################"
使用以下數據:
######################
Job information: {
"href": "http://localhost:4440/api/35/job/328789d1-986f-4aa2-9013-de8eb6b6df98",
"id": "328789d1-986f-4aa2-9013-de8eb6b6df98",
"scheduleEnabled": true,
"scheduled": true,
"enabled": true,
"permalink": "http://localhost:4440/project/ProjectEXAMPLE/job/show/328789d1-986f-4aa2-9013-de8eb6b6df98",
"group": null,
"futureScheduledExecutions": [
"2020-08-07T14:33:00Z"
],
"description": "",
"project": "ProjectEXAMPLE",
"name": "ExampleJob"
}
######################
Nodes: localhost
######################
更新 4:作業定義數據在數據庫(H2 或其他任何東西)上“分布”。 因此,例如,如果您針對MySQL配置 Rundeck 並使用任何工具訪問數據庫,則節點過濾器將保存在scheduled_execution
表中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.