Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Hej mam coś takiego
Moje dwie maszynki nazywają się host1 i host2;
#/!bin/bash #Przypisuje do nich wartość 5 i 10 host1=5 host2=10
Do tej zmiennej chciałbym podstawić albo 5 albo 10 w zależności od hosta.
Nie mogę użyć IF [ $HOSTNAME = "host1" ] ; then .... else ... bo hostów jest 50
#nakombinowalem jakoś tak ale nie dziala
zmienna=`$`$(echo $HOSTNAME | cut -f1 -d ".")``
Potrzebuje zrobić sleep w zależności na jakim kompie skrypt się odpali.
jeżeli host1 to 5 sekund jesli host2 to 10 sekund
zeby bylo tutaj podstawienie jesli na host jeden odpalia skrypt to zeby pod $zmienna byla wartosc 5 jesli na hoscie 2 odpali sie skrypt to zeby pod $zmienna bylo 10 itd
sleep($zmienna)
Pozdrawiam
Ostatnio edytowany przez qlemik (2016-08-11 08:28:57)
Offline
Może to głupie ale czy nie możesz wrzucić tych 50 hostów do tablicy a potem się po niej przeiterować? Rozumiem, że to ma być jeden uniwersalny skrypt odpalany z "zewnętrznej maszyny" na wielu hostach? Jaka jest konwencja nazw twoich hostów?
Zaraz Ci tu coś wymyślimy :)
edit2:
Jednak trochę nie czaje co chcesz osiągnąć ale wydaje mi się, że chcesz coś takiego
If [ $HOSTNAME = "host1" ]; then export DUPA_VARA=5 elif [ $HOSTNAME = "host2" ]; then export DUPA_VARA=10 fi
Ostatnio edytowany przez SamozwańczyKrólBasha (2016-08-11 08:50:30)
Offline
hosty bez fqdn sama nazwa.
Fakt tablica i przelecenie :) po tablicy byłoby ok :)
Jakieś jeszcze pomysły ?
Pozdrawiam:)
SamozwańczyKrólBasha napisał(-a):
Może to głupie ale czy nie możesz wrzucić tych 50 hostów do tablicy a potem się po niej przeiterować? Rozumiem, że to ma być jeden uniwersalny skrypt odpalany z "zewnętrznej maszyny" na wielu hostach? Jaka jest konwencja nazw twoich hostów?
Zaraz Ci tu coś wymyślimy :)
edit2:
Jednak trochę nie czaje co chcesz osiągnąć ale wydaje mi się, że chcesz coś takiegoKod:
If [ $HOSTNAME = "host1" ]; then export DUPA_VARA=5 elif [ $HOSTNAME = "host2" ]; then export DUPA_VARA=10 fi
dokladnie tylo żeby tyle ifów nie bylo ile hostów . Wiec petelka po hostah i jeden if.
za malo kawy bylo rano :)
Offline
Ogarnięte finalnie tak to wygląda:
#nazwa_hosta,time_to_sleep; host_delay="nazawa_hosta1,5 nazawa_hosta2,10 nazawa_hosta2,15 nazawa_hosta3,20 nazawa_hosta4,25 " for i in $host_delay do host=`echo $i | cut -f1 -d ","` delay=`echo $i | cut -f2 -d ","` if [ $host_name = "$host" ]; then sleep $delay fi done;
reszta skryptu
Offline
a spróbuj prościej:
#!/bin/sh Z=`hostname -s | tr -d 'host'` DELAY=$(($Z * 5)) sleep $DELAY
Offline