krebs pkgs pssh: init
This commit is contained in:
parent
5591b1dd12
commit
6def9f2d6b
@ -18,6 +18,7 @@ rec {
|
|||||||
much = callPackage ./much {};
|
much = callPackage ./much {};
|
||||||
nq = callPackage ./nq {};
|
nq = callPackage ./nq {};
|
||||||
posix-array = callPackage ./posix-array {};
|
posix-array = callPackage ./posix-array {};
|
||||||
|
pssh = callPackage ./pssh {};
|
||||||
youtube-tools = callPackage ./youtube-tools {};
|
youtube-tools = callPackage ./youtube-tools {};
|
||||||
|
|
||||||
execve = name: { filename, argv, envp ? {}, destination ? "" }:
|
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 New Issue
Block a user