---
name: "rt-crontool-5"
section: "1"
platform: "linux"
package: "request-tracker5"
version: "5.0.7+dfsg-4+deb13u3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/rt-crontool-5"
---

# rt-crontool-5(1)

Command-line interface to Request Tracker

## NAME

rt-crontool - Command-line interface to Request Tracker

## SYNOPSIS

```
    # find all active tickets in the queue 'general' and set their priority to 99 if they are overdue:
    rt-crontool \
      --search RT::Search::ActiveTicketsInQueue  --search-arg general \
      --condition RT::Condition::Overdue \
      --action RT::Action::SetPriority --action-arg 99 \
      --verbose
    # Escalate tickets
      rt-crontool \
        --search RT::Search::ActiveTicketsInQueue  --search-arg general \
        --action RT::Action::EscalatePriority
    # Process tickets in parallel
      rt-crontool \
        --search RT::Search::ActiveTicketsInQueue  --search-arg general \
        --action RT::Action::SomeTimeConsumingAction
        --max-processes 10 --max-tickets-per-process 100
    # Combine multiple actions:
    # Find all tickets that are 'new' or 'stalled' and set their priority to 99 if they are overdue
    # also, escalate them and set their status to open:
      rt-crontool \
        --search RT::Search::FromSQL \
        --search-arg "(Status='new' OR Status = 'stalled')" \
        --condition RT::Condition::Overdue \
        --action RT::Action::SetPriority \
        --action-arg 99 \
        --action RT::Action::LinearEscalate \
        --action-arg "RecordTransaction: 1" \
        --action RT::Action::SetStatus \
        --action-arg open
```

## DESCRIPTION

This script is a tool to act on tickets from an external scheduling tool, such as cron.

Security:

This tool allows the user to run arbitrary Perl modules from within RT. If this tool were setgid, a hostile local user could use this tool to gain administrative access to RT. It is incredibly important that non-privileged users not be allowed to run this tool. It is suggested that you create a non-privileged Unix user with the correct group membership and RT access to run this tool.

## OPTIONS

- search

  Specify the search module you want to use

- search-arg

  An argument to pass to --search

- condition

  Specify the condition module you want to use

- condition-arg

  An argument to pass to --condition

- action

  Specify the action module you want to use.

  This option may be repeated to apply multiple actions to found tickets.

- action-arg

  An argument to pass to --action.

  This option may be repeated to pass corresponding arguments to multiple calls of --action. In this case, each --action-arg option must come after the --action argument it applies to. Actions with no --action-arg must come at the end.

- template

  Specify name or id of template(s) you want to use

- transaction

  Specify if you want to use either 'first', 'last' or 'all' transactions

- transaction-type

  Specify the comma separated list of transactions' types you want to use

- reload-ticket

  Reload ticket before processing in tickets iteration. This is to refresh ticket metadata, which is useful especially for long-running jobs.

- max-processes

  Specify the max number of children to maintain. This implies parallel processing, which is false by default.

- max-tickets-per-process

  Specify the max number of tickets to process in each child. Only take effect with --max-processes. Default is 100.

- log

  Adjust LogToSTDERR config option

- verbose

  Output status updates to STDOUT

- dry-run

  Actions are composed of 2 parts: "Prepare" and "Commit".  `"dry-run"` skips the "Commit" part.
