Advertisement
Guest User

Untitled

a guest
Mar 28th, 2017
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.38 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. # setup ~/.pgpass to allow passwordless connection to postgres
  4. # keep last few executions for each job
  5. KEEP=100
  6.  
  7. # db connection params
  8. HOST=YOURDBHOST
  9. PORT=YOURDBPORT
  10. USERNAME=YOURDBUSERNAME
  11. PASSWORD=YOURDBPASSWORD
  12. DB=YOURDB
  13.  
  14. cd /var/lib/rundeck/logs/rundeck
  15.  
  16. JOBS=`find . -maxdepth 3 -path "*/job/*" -type d`
  17.  
  18. for j in $JOBS ; do
  19. echo "Processing job $j"
  20. ids=`find $j -iname "*.rdlog" | sed -e "s/.*\/\([0-9]*\)\.rdlog/\1/" | sort -n -r`
  21. declare -a JOBIDS=($ids)
  22.  
  23. if [ ${#JOBIDS[@]} -gt $KEEP ]; then
  24. for job in ${JOBIDS[@]:$KEEP};do
  25. echo " * Deleting job: $job"
  26. echo " rm -rf $j/logs/$job.*"
  27. rm -rf $j/logs/$job.*
  28. workflowid=`mysql -h $HOST -P $PORT -u$USERNAME -p$PASSWORD -s -N -e "select workflow_id from execution where id=$job" $DB`
  29. workflowstepids=`mysql -h $HOST -P $PORT -u$USERNAME -p$PASSWORD -s -N -e "select workflow_step_id from workflow_workflow_step where workflow_commands_id=$workflowid" $DB`
  30. declare -a WSIDS=($workflowstepids)
  31. for workflowstepid in $WSIDS ; do
  32. echo " mysql -h $HOST -P $PORT -u$USERNAME -p$PASSWORD -e 'delete from workflow_workflow_step where workflow_step_id=$workflowstepid' $DB"
  33. mysql -h $HOST -P $PORT -u$USERNAME -p$PASSWORD -e "delete from workflow_workflow_step where workflow_step_id=$workflowstepid" $DB
  34. echo " mysql -h $HOST -P $PORT -u$USERNAME -p$PASSWORD -e 'delete from workflow_step where id=$workflowstepid' $DB"
  35. mysql -h $HOST -P $PORT -u$USERNAME -p$PASSWORD -e "delete from workflow_step where id=$workflowstepid" $DB
  36. done
  37. echo " mysql -h $HOST -P $PORT -u$USERNAME -p$PASSWORD -e 'delete from execution where id=$job' $DB"
  38. mysql -h $HOST -P $PORT -u$USERNAME -p$PASSWORD -e "delete from execution where id=$job" $DB
  39. echo " mysql -h $HOST -P $PORT -u$USERNAME -p$PASSWORD -e 'delete from base_report where jc_exec_id=$job' $DB"
  40. mysql -h $HOST -P $PORT -u$USERNAME -p$PASSWORD -e "delete from base_report where jc_exec_id=$job" $DB
  41. echo " mysql -h $HOST -P $PORT -u$USERNAME -p$PASSWORD -e 'delete from workflow where id=$workflowid' $DB"
  42. mysql -h $HOST -P $PORT -u$USERNAME -p$PASSWORD -e "delete from workflow where id=$workflowid" $DB
  43. done
  44. fi
  45. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement