tsshbatch / WHATSNEW.txt
WHATSNEW For 'tsshbatch' 1.317    (Sat Oct 15 16:12:34 CDT 2016)

  - It is now possible to define local variables with the
    .local directive.  These have visibilty and scope only
    with the file where they are defined, but otherwise work
    the same as globally defined variables.  Local variables
    also support "execution variable" style definition.

  - Hostfile names must now be passed using the -i option.  The
    argument can be the name of a single file or a quoted list of
    files.  The option can appear on the command line more than once.
    -H and -i can be used together to create custom host lists.

  - The -L option will list all (if any) host- and command files found
    on their respective search paths.

  - The -W option will write out the inventory of hosts that would be
    processed if you actually executed the program, and then
    terminates.  This works only in test mode.  This allows you
    to embed tsshbatch in external shell scripts like this:

       for server in $( -i devserverlist -uatserverlist -W)
         ssh $server

    Why?  Because tsshbatch has lots of powerful ways to maintain
    inventories of hosts and combine them through includes and
    multiple command line arguments.  The -W option makes it
    convenient for external programs to make use of those inventory

  - The -F "string ..."  option will examine every file on the host-
    or command paths, looking for matching strings within these files.
    Matches will report the file name, the location within the file,
    and the line containing any of the specified strings.

    This is a simple, case-insensitive string literal match and does
    not support regular expressions.

    This is handy when you're looking for a host name or command
    string, say like, "sudo", and you don't want to have to manually
    go through all your support files.

  - The -V "string ..." option does the exact opposite of -F.  It
    lists all the files that do NOT contain any of the specified

  - The -r option has been added to suppress reporting of start/stop
    statistics.  This allows you to make statistics reporting the
    default, say via the $TSSHBATCH environment variable, but
    override it when you need to.

  - A new directive, .notify, tells tsshbatch to print an informative
    message from within a command file.  This is a runtime activity
    and is helpful, for example, when tracking progress of a long
    command file. Notifications are disabled in silent mode.


  - The -H option can now appear on the command line multiple times
    thereby creating an aggregate list of all hosts named therein.

  - Hostfiles must now be passed as an argument of -i.  This was
    done to provide a consistent way of passing multiple host
    files on the commandline.

  - .include targets (file name specifications) may now reference
    previously defined variables.


  - File transfers now properly honor the -s (silent output) flag.

WHATSNEW For 'tsshbatch' 1.228    (Mon Jan 18 18:10:50 CST 2016)

- There is now limited support for ssh configuration files. Only the
  HostName and IdentityFile directives are currently supported.

  By default, tsshbatch will look in ~/.ssh/config for this
  configuration file. However, the location of the file can be
  overridden with the -C option.

- The -b option has been added to continue after a sudo failure.
  Previous releases of the program stopped all further processing
  on any sudo failure.  With -b, it's now possible to go on to
  the remaining hosts even if one of them failed to do proper
  sudo promotion.

- The -B option has been added to print an informative "banner"

  at the beginning and end of each program run.


- On screen help now displays default settings for all options where


- Fixed bug that caused program to exit after a failed
  file transfer even when -a was specified.

- Fixed bug that failed to present user name during key-based
  auth.  This prevented connection when the desired name
  was different than the initating user - say when using
  process IDs instead of "real" users.

WHATSNEW For 'tsshbatch' 1.212    (Wed Dec 10 09:42:08 CST 2014)


- Implemented .getfile and .putfile directives for specifying
  file transfers in a cmdfile.


- Quotation characters are no longer stripped in cmdfile file
  transfer specifications.



WHATSNEW For 'tsshbatch' 1.210    (Tue Dec  9 12:20:25 CST 2014)


- It is now possible to put file transfer specifications in cmdfiles.
  Each must be on its own line and in the same form as if it were
    provided on the command line:

    -G /path/to/srcfile destdir
    -P /path/to/srcfile destdir

  Any single- or double quotes will be removed.

- Added __LOGINNAME__ builtin.  For key exchange auth, this will just
  be the name of the user running tsshbatch.  When an explicit login
  name is provided, either via prompting or command line, that name
  will be returned by this variable.

- Implemented -s, "silent" option which suppresses all reporting and
  header noise and only returns the literal results of each command.




- Fixed bug that caused program to exit after a failed
  file transfer even when -a was specified.

WHATSNEW For 'tsshbatch' 1.204    (Thu Dec  4 18:33:10 CST 2014)


- Added the following builtin variables:

  __DATE__       # Date in YYYYMMDD format
  __DATETIME__   # Date and time in YYYYMMDDHHMMSS format
  __HOSTNAME__   # Full name of current host as passed to program
  __HOSTNUM__    # Count of host being processed, starting at 1
  __HOSTSHORT__  # Leftmost component of hostname as passed to program
  __TIME__       # Time in HHMMSS format

- Added an "execution variable".  This runs a command of your
  choosing (on the local machine) and assigns the results to
  a user-defined variable.

- Added -E to redirect all stderr output to stdout instead,

- Added -T timeout option (default is 15 sec).

- Added -a to allow program to continue after file transfer error.

- Added -l logging option. Defaults to /dev/null.  This fixes the error
  that was previously being reported:

    "No handlers could be found for logger "paramiko.transport"

- Added -q for "quieter" output.


- File transfers now properly preserve the file's permissions.

- Changed hostname separator from ':' to '-' when using the -G command.

- The <HOSTNAME> and <HOSTSHORT> builtins have been replaced
  with the new builtins described above.

- Error messages now more consistent and clear.

- Test mode now expands variable references to their values for
  all variables except the builtins above (which are only
  evaluated at runtime).

- Documentation has been rewritten and improved considerably.


- Fixed bug that prevented the proper dereferencing of
  __HOSTNAME|SHORT__ (formerly <HOSTNAME|SHORT>) in file transfer

- Fixed bug that prevented variable substitution in hostnames.

- Fixed bug that prevented '.define' variables from being substituted
  in file transfer specifications.

- Fixed bug that only recognized sudo invocations if they were the
  first statement on a command line.  All instances of the string
  "sudo " will now force sudo password prompting and processing.
  That string is ignored if it appears inside single- or double quotes.

- Fixed bug that intermittently occurred during password-based auth
  sessions because ssh-agent and key searching were still being used.

- Fixed error reporting blowout when key-exchange auth fails.

WHATSNEW For 'tsshbatch' 1.177    (Thu Mar 27 19:09:03 CDT 2014)

- Test mode is now the default.  Actual operation requires
  explicit use of the -x option.

- A new option, -K, has been added to force prompting for passwords.
  This is to provide a means to override a -k (key exchange)
  default if the user set it that way in the $TSSHBATCH environment

- It is now possible to substitute the name of the current host into
  either commands or file transfer specifications via the '<HOSTNAME>'
  and '<HOSTSHORT>' strings.  This allows commands and/or file
  transfers to behave in a host-specific manner.

WHATSNEW For 'tsshbatch' 1.171    (Fri Nov  1 12:08:31 CDT 2013)


  - Changed default behavior to pick up $USER from the environment and
    not prompt for it.

  - When prompting for username, now shows $USER or the user presented
    via -n as default if present.

  - Cosmetic changes in reporting output

  - Cleaned up sudo handling and reporting


  - A new option, -N, to forces prompting for username to overcome the
    new default behavior of using $USER or the name provided by -n
    without promptng.  This option also overrides any previous
    request for key exchange authentication.

  - A new option, -S, forces prompting for the sudo password, with the
    default being any previously provided password (interactive or -p).
    This allows you to use one password to authenticate to the system
    and a different one to do sudo promotion.

  - Two new options, -G and -P, support file transfer GETs and PUTs
    respectively from the selected hosts.

  - A new option, -f cmdfile, allows multiple commands stored
    in the file to be run on each of the selected hosts.  This
    allows for considerably more complex operations than the
    single command string at the end of the command line supported
    in previous versions.

  - A new option, -y, turns on 'noisy' reporting and produces
    context information (hostname, output stream, and command)
    for every line of output.  This makes the output more useful
    when filtered through something like 'grep'.

  - There is a new options, -t, to turn on "test mode" which
    will show what would be done, but will not actually do it.
    This mode also displays useful diagnostic information
    about the command line, variable defintions, file tranfer
    requests, and so on.

  - The new -x option is used to negate a prior -t and thereby
    force execution of the requested file transfers and/or

  - Both cmdfiles and hostlistfiles now support freeform whitespace
    and commenting via the "#" character.

  - Both cmdfiles and hostlistfiles now support including other
    files via the .include directive.  Circular include detection
    is also implemented.

  - Both cmdfiles and hostlistfiles can contain variable
    definitions that are literally replaced in any following

WHATSNEW For 'tsshbatch' 1.137    (Fri Feb 22 15:30:24 CST 2013)

- Changed error reporting to place the entire message on a single line.

- Changed the manner of error reporting to provide more specific
  detail.  The original error messages could be misleading because
  both the inability to connect and an ssh rejection reported
  the exact same error.

WHATSNEW For 'tsshbatch' 1.134    (Tue Jan 17 09:00:04 CST 2012)

Initial public release