krebs pkgs pssh: init
This commit is contained in:
parent
5591b1dd12
commit
6def9f2d6b
|
@ -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 ? "" }:
|
||||
|
|
37
krebs/5pkgs/pssh/default.nix
Normal file
37
krebs/5pkgs/pssh/default.nix
Normal 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
|
||||
''
|
Loading…
Reference in a new issue