ssh script ler a variável do arquivo

0

Eu tenho um script que eu uso para executar vários comandos em vários sites com base no número do site (consulte o script abaixo) Eu faço isso executando ./script-name 121 para executar no site 121 e também posso executá-lo em vários sites ao mesmo tempo apenas adicionando mais números. O que eu gostaria de poder fazer é criar arquivos de texto simples contendo grupos de números de sites e fazer com que o script leia que, em vez de digitar o número a cada vez, qualquer idéia

#!/bin/bash
while [ "TT$1" != "TT" ]
do
  if [ "$1" == "6" -o "$1" == "33" -o "$1" == "55" -o "$1" == "74" -o "$1" == "80" -o "$1" == "91" -o "$1" == "169" ]
  then
     NET=4
     ST=$1
  else
    if [ "$1" -lt "251" ]
    then
      NET=1
      ST=$1
    else
      NET=2
      ST='expr $1 - 250'
    fi
  fi
echo $NET
echo $ST

ssh root@10.$NET.$ST.210 -C "service xvfbd stop && service xvfbd start && service yespayd start && service yespayd status"

shift
done 
    
por Steven 11.06.2018 / 12:09

1 resposta

0

Você deseja fazer um loop a partir de um arquivo de texto: use while read Exemplo:

while read line
do
  echo -e "$line\n"
done <file.txt

Seu script pode ter esta aparência ( não testei )
executar: ./myscript.sh inpufile.txt

#!/bin/bash
#
# This script takes a filename as argument
# The FILE contains a number per line

# Test argument
if [ -z "$1" ]; then
  echo "No argument supplied"
  exit
else
  inputfile=$1
  if [ ! -f $inputfile ]; then
    echo "InputFile "$inputfile" not found"
    exit
  fi
fi
# Loop
while read line
do
  if [ "$line" == "6" -o "$line" == "33" -o "$line" == "55" -o "$line" == "74" -o "$line" == "80" -o "$line" == "91" -o "$line" == "169" ]
  then
     NET=4
     ST=$line
  else
     if [ "$line" -lt "251" ]; then
       NET=1
       ST=$line
     else
       NET=2
       ST='expr $line - 250'
     fi
  fi
  echo $NET
  echo $ST
  ssh root@10.$NET.$ST.210 -C "service xvfbd stop && service xvfbd start && service yespayd start && service yespayd status"
done <$inputfile
    
por cmak.fr 11.06.2018 / 12:41