krebs pkgs pssh: init

This commit is contained in:
tv 2015-08-29 08:29:35 +02:00
parent 5591b1dd12
commit 6def9f2d6b
2 changed files with 38 additions and 0 deletions

View File

@ -18,6 +18,7 @@ rec {
much = callPackage ./much {};
nq = callPackage ./nq {};
posix-array = callPackage ./posix-array {};
pssh = callPackage ./pssh {};
youtube-tools = callPackage ./youtube-tools {};
execve = name: { filename, argv, envp ? {}, destination ? "" }:

View File

@ -0,0 +1,37 @@
{ writeScriptBin }:
writeScriptBin "pssh" ''
#! /bin/sh
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
''