{ writeDashBin }: writeDashBin "pssh" '' set -efu case ''${1-} in # TODO create plog with -o json | jq ... | map date # usage: pssh {-j,--journal} host... # Follow journal at each host. -j|--journal) shift "$0" journalctl -n0 -ocat --follow --all ::: "$@" \ | while read line; do printf '%s %s\n' "$(date --rfc-3339=s)" "$line" done ;; -*) echo $0: unknown option: $1 >&2 exit 1 ;; # usage: pssh command [arg...] ::: host... # Run command at each host. *) exec parallel \ --line-buffer \ -j0 \ --no-notice \ --tagstring {} \ ssh -T {} "$@" ;; esac ''