Skip to content

Instantly share code, notes, and snippets.

@alexs77
Last active February 28, 2018 15:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alexs77/702325f4f724a745a64e5736c7b0ee21 to your computer and use it in GitHub Desktop.
Save alexs77/702325f4f724a745a64e5736c7b0ee21 to your computer and use it in GitHub Desktop.
Rundeck Job for removing E-Mails
<joblist>
<job>
<context>
<options preserveOrder='true'>
<option delimiter=' ' multivalueAllSelected='true' multivalued='true' name='patterns' required='true'>
<description>Pattern aus der `mailq` Zeile.</description>
</option>
</options>
</context>
<description>Lösche E-Mails, deren Mail Queue Zeile auf das angegebene Muster passt.</description>
<dispatch>
<excludePrecedence>true</excludePrecedence>
<keepgoing>true</keepgoing>
<rankOrder>ascending</rankOrder>
<successOnEmptyNodeFilter>false</successOnEmptyNodeFilter>
<threadcount>1</threadcount>
</dispatch>
<executionEnabled>true</executionEnabled>
<group>Mails</group>
<id>4ba6dcaa-f968-4860-9de8-7d801e001dbc</id>
<loglevel>INFO</loglevel>
<name>E-Mails entfernen</name>
<nodeFilterEditable>false</nodeFilterEditable>
<nodefilters>
<filter>tags:email name:ews45</filter>
</nodefilters>
<nodesSelectedByDefault>true</nodesSelectedByDefault>
<notification>
<onavgduration>
<email recipients='${job.username} &lt;${job.user.email}&gt;' subject='"${job.name}" #${job.execid} läuft ungewöhnlich lange.' />
</onavgduration>
<onfailure>
<email attachLog='true' recipients='${job.username} &lt;${job.user.email}&gt;' subject='"${job.name}" #${job.execid} fehlgeschlagen!' />
</onfailure>
<onsuccess>
<email attachLog='true' recipients='${job.username} &lt;${job.user.email}&gt;' subject='"${job.name}" #${job.execid} erfolgreich.' />
</onsuccess>
</notification>
<scheduleEnabled>false</scheduleEnabled>
<sequence keepgoing='true' strategy='node-first'>
<command>
<description>E-Mails löschen</description>
<fileExtension>.sh</fileExtension>
<script><![CDATA[#! /usr/bin/env bash
echo "================================================================================"
printf "Lösche E-Mails deren Queue ID Zeile auf Muster passen auf System %s.\n\n" "$( hostname )"
for pattern in $@; do
printf "Lösche E-Mails die auf '%s' matchen.\n\n" "$pattern"
ids=$( mailq | awk '/^[0-9A-AF]/' | awk "/$pattern/ "'{print $1}' | tr -d \!\* )
printf "IDs:\n%s\n\n" "$ids"
if [[ -n "$ids" ]]; then
#echo "$ids" | postsuper -d -
echo "$ids"
fi
printf "\n\n\n"
done
echo "********************************************************************************"
exit $?
# EOF]]></script>
<scriptargs>${option.patterns}</scriptargs>
</command>
</sequence>
<uuid>4ba6dcaa-f968-4860-9de8-7d801e001dbc</uuid>
</job>
</joblist>
- description: Lösche E-Mails, deren Mail Queue Zeile auf das angegebene Muster passt.
executionEnabled: true
group: Mails
id: 4ba6dcaa-f968-4860-9de8-7d801e001dbc
loglevel: INFO
name: E-Mails entfernen
nodeFilterEditable: false
nodefilters:
dispatch:
excludePrecedence: true
keepgoing: true
rankOrder: ascending
successOnEmptyNodeFilter: false
threadcount: 1
filter: tags:email name:ews45
nodesSelectedByDefault: true
notification:
onavgduration:
email:
recipients: ${job.username} <${job.user.email}>
subject: '"${job.name}" #${job.execid} läuft ungewöhnlich lange.'
onfailure:
email:
attachLog: true
recipients: ${job.username} <${job.user.email}>
subject: '"${job.name}" #${job.execid} fehlgeschlagen!'
onsuccess:
email:
attachLog: true
recipients: ${job.username} <${job.user.email}>
subject: '"${job.name}" #${job.execid} erfolgreich.'
options:
- delimiter: ' '
description: Pattern aus der `mailq` Zeile.
multivalueAllSelected: true
multivalued: true
name: patterns
required: true
scheduleEnabled: false
sequence:
commands:
- args: ${option.patterns}
description: E-Mails löschen
fileExtension: .sh
script: |-
#! /usr/bin/env bash
echo "================================================================================"
printf "Lösche E-Mails deren Queue ID Zeile auf Muster passen auf System %s.\n\n" "$( hostname )"
for pattern in $@; do
printf "Lösche E-Mails die auf '%s' matchen.\n\n" "$pattern"
ids=$( mailq | awk '/^[0-9A-AF]/' | awk "/$pattern/ "'{print $1}' | tr -d \!\* )
printf "IDs:\n%s\n\n" "$ids"
if [[ -n "$ids" ]]; then
#echo "$ids" | postsuper -d -
echo "$ids"
fi
printf "\n\n\n"
done
echo "********************************************************************************"
exit $?
# EOF
keepgoing: true
strategy: node-first
uuid: 4ba6dcaa-f968-4860-9de8-7d801e001dbc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment