GNU/Linux >> Znalost Linux >  >> Linux

napište skript shellu pro ssh na vzdálený počítač a spusťte příkazy

Existuje několik vzdálených počítačů s linuxem a musím napsat skript shellu, který bude provádět stejnou sadu příkazů na každém počítači. (Včetně některých sudo operací). Jak to lze provést pomocí skriptování shellu?

Můžete to udělat pomocí ssh, například:

#!/bin/bash
USERNAME=someUser
HOSTS="host1 host2 host3"
SCRIPT="pwd; ls"
for HOSTNAME in ${HOSTS} ; do
    ssh -l ${USERNAME} ${HOSTNAME} "${SCRIPT}"
done

Při ssh'ingu na vzdálený počítač, jak zacházet, když se zobrazí výzva k ověření RSA otiskem prstu.

Můžete přidat StrictHostKeyChecking=no možnost ssh:

ssh -o StrictHostKeyChecking=no -l username hostname "pwd; ls"

Tím deaktivujete kontrolu hostitelského klíče a automaticky přidáte hostitelský klíč do seznamu známých hostitelů. Pokud nechcete, aby byl hostitel přidán do souboru známých hostitelů, přidejte možnost -o UserKnownHostsFile=/dev/null .

Upozorňujeme, že tím deaktivujete některé bezpečnostní kontroly , například ochrana proti útoku typu man-in-the-middle. Proto by neměl být používán v prostředí citlivém na zabezpečení.


Nainstalujte sshpass pomocí apt-get install sshpass poté upravte skript a seřaďte IP adresy, uživatelská jména a hesla svých linuxových strojů v příslušném pořadí. Poté spusťte tento skript. A je to ! Tento skript nainstaluje VLC do všech systémů.

#!/bin/bash
SCRIPT="cd Desktop; pwd;  echo -e 'PASSWORD' | sudo -S apt-get install vlc"
HOSTS=("192.168.1.121" "192.168.1.122" "192.168.1.123")
USERNAMES=("username1" "username2" "username3")
PASSWORDS=("password1" "password2" "password3")
for i in ${!HOSTS[*]} ; do
     echo ${HOSTS[i]}
     SCR=${SCRIPT/PASSWORD/${PASSWORDS[i]}}
     sshpass -p ${PASSWORDS[i]} ssh -l ${USERNAMES[i]} ${HOSTS[i]} "${SCR}"
done

Linux
  1. V Bash, kdy alias, kdy skript a kdy napsat funkci?

  2. Ssh – spouštět vzdálené příkazy, zcela se odpojit od připojení Ssh?

  3. Neočekávané chování skriptu Shell?

  1. Pokračovat v příkazech Shell po připojení k Ssh?

  2. Jak spouštět příkazy v Gnuplot pomocí skriptu Shell?

  3. 4 způsoby provádění skriptu Shell v systému UNIX / Linux

  1. 5 způsobů, jak spouštět příkazy UNIX / Linux (a skripty Shell) na pozadí

  2. 11 Užitečné příkazy „ssh“ a „scp“ v Linuxu

  3. Je možný smíšený skript Shell a python?