40 lines
923 B
Bash
Executable file
40 lines
923 B
Bash
Executable file
#!/usr/bin/env bash
|
|
server="192.168.0.254 -i ~/.ssh/rick.epha.se.ed25519"
|
|
user=ephase
|
|
|
|
source message.sh
|
|
|
|
ssh_sock="/tmp/$(mktemp -u XXXXXXXXXX)"
|
|
|
|
connect() {
|
|
msg "Create SSH main connection wih socket ${ssh_sock}"
|
|
ssh -N -o ControlMaster=yes -o ControlPath="$ssh_sock" -f ${user}@${server} || {
|
|
# reuse
|
|
error "Can't connect to $server";
|
|
exit 210;
|
|
}
|
|
}
|
|
|
|
launch_command() {
|
|
local command
|
|
command="$1"
|
|
ssh -q -t -S "$ssh_sock" ${user}@${server} "$command"
|
|
}
|
|
|
|
cleanup() {
|
|
# close the master control connexion before
|
|
msg "Close SSH main connection"
|
|
ssh -q -o ControlPath="$ssh_sock" -O exit ${server} || {
|
|
error "Can't close SSH master connection, $ssh_sock remain";
|
|
exit 21;
|
|
}
|
|
exit
|
|
}
|
|
trap "cleanup 255" INT ERR
|
|
trap "cleanup" EXIT
|
|
connect
|
|
for (( i=10; i<=20; i++ ))
|
|
do
|
|
launch_command "echo 'Message N°$i from ${server}'"
|
|
sleep 1
|
|
done
|