LINUX.ORG.RU
ФорумAdmin

Помогите с bash

 


0

1

Добрый день. Нужна помощь в задачке по башу.

Есть скрипт который копирует архив на сервак и извлекает содержимое.

#!/bin/bash

dev="deploy@1.2.3.4"
test="deploy@1.2.3.5"

way="/var/www/builds/"
front="/var/www/html/test1/"
file="$way/front_build_$1.tar.gz"
key="/var/www/conf/id_rsa"

scp -i $key $file $test:/var/www/html/test/

ssh -i $key $test "tar xvf /var/www/html/test/front_build_$1.tar.gz --overwrite-dir --exclude='./cache' --exclude='./logs' -C $front"
При запуске ./script.sh 10 получаю извлеченный каталог на сервачке.

Мне нужно чтобы я мог менять направление копирования. Тоесть сейчас сервер статический. а я хочу ./script dev 10 Пытался обыграть переменной $2 ссш ругается говорит нет такого хоста dev.



Последнее исправление: beastie (всего исправлений: 1)

Читай значение $2, проверяй - если там «dev», то какая-нибудь переменная server становится равной «deploy@1.2.3.4», если там «test» - server=«deploy@1.2.3.5». В scp и ssh используй переменную server.

Или обрабатывай значение $2 как имя переменной:

$ cat testlor.sh 
#!/bin/bash

foo="test"
bar="ololo"

echo ${!1}

$ ./testlor.sh foo
test

$ ./testlor.sh bar
ololo
alozovskoy ★★★★★
()
Последнее исправление: alozovskoy (всего исправлений: 1)
#!/bin/bash

case $1 in
    dev)
    target="deploy@1.2.3.4"
    ;;
    test)
    target="deploy@1.2.3.5"
    *)
    target=$1
    ;;
esac

way="/var/www/builds/"
front="/var/www/html/test1/"
file="$way/front_build_$1.tar.gz"
key="/var/www/conf/id_rsa"

scp -i $key $file $target:/var/www/html/test/

ssh -i $key $target "tar xvf /var/www/html/test/front_build_$2.tar.gz --overwrite-dir --exclude='./cache' --exclude='./logs' -C $front"
Yur4eg ★★
()
Последнее исправление: Yur4eg (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.