[gull] ssh -> sudo
felix
felix at f-hauri.ch
Wed Dec 14 17:41:06 CET 2022
Salut Céd!
Désolé pour le délai...
Attention:
> ssh host-distant "sudo bash -c '$(declare -f uname_id); uname_id'"
ne fonctionnera que si la fonction ne contient pas d'apostrophe:
$ test() { echo 'Salut les amis';}
$ test
Salut les amis
$ ssh hotedistant "bash -c '$(declare -f test);test'"
les: -c: ligne 3: erreur de syntaxe : fin de fichier prématurée
Avec bash et ssh, on peut faire des trucs marrants:
$ ssh -t hotedistant /bin/bash <<"eof"
sudo bash -c 'echo "uname : $(uname -n)";echo "id : $(id -un)"'
eof
Est peut être une solution! (Ne pas oublier les guillemets autour de <<"eof")!
Demo monitoring window11 ethernet issue:
J'ai un client Window11 qui à un problème de connection étrange:
De temps en temps, il perds la connection vers le routeur.
Il ne peut plus pinguer le routeur, alors que le serveur qui est à coté
et sur le même réseau, il peut le pinguer!?
Je lui ai demandé de pinguer le routeur avec ``ping /t ip.du.routeur'' dans
une fenetre ``cmd'' et de la laisser en arrière plan.
Sur mon poste, j'ai tapé un truc du genre:
$ exec {rti}<> <(:)
$ exec {rto}<> <(
exec stdbuf -i0 -o0 ssh -t -Jproxyssh root at routeur /bin/bash <&$rti 2>&1)
J'ai donc 2 FD: $rti pour envoyer des ordres au routeur et $rto pour lire les
réponses
$ echo >&$rti 'stdbuf -o0 tcpdump -ani eth1 ether host 12:34:56:78:9a:bc'
Je lance un tcpdump sur le routeur pour voire les trace de la machine en
question, puis
$ while ! read -sn 1 -t .002 _ ;do
read -rt 1.2 -u $rto line &&
echo $line || {
printf '\e[41;30m%(%c)T\n\e[0m';
play -q /usr/share/sounds/sound-icons/gummy-cat-2.wav{,,,} 2>/dev/null
}
done
Cela m'affiche TOUTES les activités de la *machine* de et vers l'internet,
ainsi que les ping (ICMP echo et ICMP reply)...
Si une ligne met plus d'1.2 seconde à m'arriver, une ligne date et heure
apparait en rouge et un son bizarre se fait entendre...
Entre chaque ligne, si je presse une touche, la boucle s'arrête,
NE PAS UTILISER Ctrl-C car cela interompra le ssh!
Je peut alors copier-coller tranquillement le terminal, puis
je peux relancer la dernière commande (une longue ligne) en tapant [Cursor-Up]
et [Enter]. Les messages restent bufferisés par ssh et bash, ils apparaissent
alors tous avant de continuer a attendre 1 message..
Par contre, pour stopper la command tcpdump, je dois me reconnecter
et taper ``killall tcpdump''.
Le Thu, Dec 01, 2022 at 03:25:03PM +0100, Cédric BRINER via gull a écrit :
> j'ai finalement trouvé, du moins je crois:
>
> ssh host-distant "sudo bash -c '$(declare -f uname_id); uname_id'"
>
> C'est la classe totale !
>
--
Félix Hauri - <felix at f-hauri.ch> - http://www.f-hauri.ch
More information about the gull
mailing list