Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- # setup ~/.pgpass to allow passwordless connection to postgres
- # keep last few executions for each job
- KEEP=100
- # db connection params
- HOST=YOURDBHOST
- PORT=YOURDBPORT
- USERNAME=YOURDBUSERNAME
- PASSWORD=YOURDBPASSWORD
- DB=YOURDB
- cd /var/lib/rundeck/logs/rundeck
- JOBS=`find . -maxdepth 3 -path "*/job/*" -type d`
- for j in $JOBS ; do
- echo "Processing job $j"
- ids=`find $j -iname "*.rdlog" | sed -e "s/.*\/\([0-9]*\)\.rdlog/\1/" | sort -n -r`
- declare -a JOBIDS=($ids)
- if [ ${#JOBIDS[@]} -gt $KEEP ]; then
- for job in ${JOBIDS[@]:$KEEP};do
- echo " * Deleting job: $job"
- echo " rm -rf $j/logs/$job.*"
- rm -rf $j/logs/$job.*
- workflowid=`mysql -h $HOST -P $PORT -u$USERNAME -p$PASSWORD -s -N -e "select workflow_id from execution where id=$job" $DB`
- 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`
- declare -a WSIDS=($workflowstepids)
- for workflowstepid in $WSIDS ; do
- echo " mysql -h $HOST -P $PORT -u$USERNAME -p$PASSWORD -e 'delete from workflow_workflow_step where workflow_step_id=$workflowstepid' $DB"
- mysql -h $HOST -P $PORT -u$USERNAME -p$PASSWORD -e "delete from workflow_workflow_step where workflow_step_id=$workflowstepid" $DB
- echo " mysql -h $HOST -P $PORT -u$USERNAME -p$PASSWORD -e 'delete from workflow_step where id=$workflowstepid' $DB"
- mysql -h $HOST -P $PORT -u$USERNAME -p$PASSWORD -e "delete from workflow_step where id=$workflowstepid" $DB
- done
- echo " mysql -h $HOST -P $PORT -u$USERNAME -p$PASSWORD -e 'delete from execution where id=$job' $DB"
- mysql -h $HOST -P $PORT -u$USERNAME -p$PASSWORD -e "delete from execution where id=$job" $DB
- echo " mysql -h $HOST -P $PORT -u$USERNAME -p$PASSWORD -e 'delete from base_report where jc_exec_id=$job' $DB"
- mysql -h $HOST -P $PORT -u$USERNAME -p$PASSWORD -e "delete from base_report where jc_exec_id=$job" $DB
- echo " mysql -h $HOST -P $PORT -u$USERNAME -p$PASSWORD -e 'delete from workflow where id=$workflowid' $DB"
- mysql -h $HOST -P $PORT -u$USERNAME -p$PASSWORD -e "delete from workflow where id=$workflowid" $DB
- done
- fi
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement