Parallel remote command execution and file manipulation tool

usage: timmy [-V] [-c CONFIG] [-o DEST_FILE] [--log-file LOG_FILE] [-e ENV]
             [-r ROLE] [-i ID] [-d NUMBER] [-G PATH] [-C COMMAND] [-S SCRIPT]
             [--one-way] [--max-pairs NUMBER] [-P SOURCE DESTINATION]
             [-L PATH INCLUDE EXCLUDE] [--rqfile PATH] [-l]
             [--logs-no-default] [--logs-speed MBIT/S] [--logs-speed-auto]
             [--logs-coeff RATIO] [--only-logs] [--fake] [--fake-logs]
             [--no-archive] [--no-clean] [-q] [--maxthreads NUMBER]
             [--logs-maxthreads NUMBER] [-t] [-T] [-m INVENTORY MODULE] [-a]
             [--offline] [-v]

Named Arguments

-V, –version

Print Timmy version and exit.

Default: False

-c, –config Path to a YAML configuration file.
-o, –dest-file
 Output filename for the archive in tar.gz format for command outputs and collected files. Overrides “archive_” config options. If logs are collected they will be placed in the same folder (but separate archives).
–log-file Redirect Timmy log to a file.
-e, –env Env ID. Run only on specific environment.
-r, –role Can be specified multiple times. Run only on the specified role.
-i, –id Can be specified multiple times. Run only on the node(s) with given IDs.
-d, –days Define log collection period in days. Timmy will collect only logs updated on or more recently then today minus the given number of days. Default - 30.
-G, –get Enables shell mode. Can be specified multiple times. Filemask to collect via “scp -r”. Result is placed into a folder specified by “outdir” config option. For help on shell mode, read timmy/
-C, –command Enables shell mode. Can be specified multiple times. Shell command to execute. For help on shell mode, read timmy/
-S, –script Enables shell mode. Can be specified multiple times. Bash script name to execute. Script must be placed in “scripts” folder inside a path specified by “rqdir” configuration parameter. For help on shell mode, read timmy/

When executing scripts_all_pairs (if defined), for each pair of nodes [A, B] run client script only on A (A->B connection). Default is to run both A->B and B->A.

Default: False

–max-pairs When executing scripts_all_pairs (if defined), limit the amount of pairs processed simultaneously. Default is to run max number of pairs possible, which is num. nodes / 2.
-P, –put Enables shell mode. Can be specified multiple times. Upload filemask via”scp -r” to node(s). Each argument must contain two strings - source file/path/mask and dest. file/path. For help on shell mode, read timmy/
-L, –get-logs Define specific logs to collect. Implies “-l”. Each -L option requires 3 values in the following order: path, include, exclude. See configuration doc for details on each of these parameters. Values except path can be skipped by passing empty strings. Example: -L “/var/mylogs/” “” “exclude-string”
–rqfile Can be specified multiple times. Path to rqfile(s) in yaml format, overrides default.
-l, –logs

Collect logs from nodes. Logs are not collected by default due to their size.

Default: False


Do not use default log collection parameters, only use what has been provided either via -L or in rqfile(s). Implies “-l”.

Default: False

–logs-speed Limit log collection bandwidth to 90% of the specified speed in Mbit/s.

Limit log collection bandwidth to 90% of local admin interface speed. If speed detection fails, a default value will be used. See “logs_speed_default” in

Default: False

–logs-coeff Estimated logs compression ratio - this value is used during free space check. Set to a lower value (default - 1.05) to collect logs of a total size larger than locally available. Values lower than 0.3 are not recommended and may result in filling up local disk.

Only collect logs, do not run commands or collect files.

Default: False


Do not run commands and scripts

Default: False


Do not collect logs, only calculate size.

Default: False


Do not create results archive. By default, an archive with all outputs and files is created every time you run Timmy.

Default: False


Do not clean previous results. Allows accumulating results across runs.

Default: False

-q, –quiet

Print only command execution results and log messages. Good for quick runs / “watch” wrap. This option disables any -v parameters.

Default: False

–maxthreads Maximum simultaneous nodes for commandexecution.
 Maximum simultaneous nodes for log collection.
-t, –outputs-timestamp

Add timestamp to outputs - allows accumulating outputs of identical commands/scripts across runs. Only makes sense with –no-clean for subsequent runs.

Default: False

-T, –dir-timestamp

Add timestamp to output folders (defined by “outdir” and “archive_dir” config options). Makes each run store results in new folders. This way Timmy will always preserve previous results. Do not forget to clean up the results manually when using this option.

Default: False

-m, –module

Use module to get node data

Default: “fuel”

-a, –analyze

Analyze collected outputs to determine node orservice health and print results

Default: False


Mark all nodes as offline, do not perform anyoperations on the nodes

Default: False

-v, –verbose

This works for -vvvv, -vvv, -vv, -v, -v -v,etc, If no -v then logging.WARNING is selected if more -v are provided it will step to INFO and DEBUG unless the option -q(–quiet) is specified

Default: 0

Fuel module parameters

usage: timmy [-h] [--fuel-ip FUEL_IP] [--fuel-user FUEL_USER]
             [--fuel-pass FUEL_PASS] [--fuel-token FUEL_TOKEN]
             [--fuel-logs-no-remote] [--fuel-proxy] [-j NODES_JSON]

Named Arguments

–fuel-ip fuel ip address
–fuel-user fuel username
–fuel-pass fuel password
–fuel-token fuel auth token

Do not collect remote logs from Fuel.

Default: False


use os system proxy variables for fuelclient

Default: False

-j, –nodes-json
 Path to a json file retrieved via “fuel node –json”. Useful to speed up initialization, skips “fuel node” call.

Local module parameters

usage: timmy [-h] -j NODES_JSON

Named Arguments

-j, –nodes-json
 Path to a json file containing host info: ip, roles, etc.