nixp.ru v3.0

21 октября 2017,
суббота,
09:44:15 MSK

DevOps с компанией «Флант»
Sheva21 написал 26 октября 2010 года в 11:28 (2345 просмотров) Ведет себя неопределенно; открыл 1 тему в форуме, оставил 3 комментария на сайте.

Добрый день срочно понадобилось сделать скрипт для автоматического формирование в файле VPN IP адреса. Понятия толком не имея о Bash наваял скрипт из примеров что нашел в интернете. Вот теперь хотелось бы его оптимизировать убрать кучу перезаписей в файл. Вот что у меня получилось и работает:

#!/bin/bash

echo конфиг записан в файл

ifconfig ppp0 > /home/ip.txt;

      

  FILENAME=/home/ip.txt;

awk '{print $2 }' $FILENAME  > /home/ip1.txt;

 

    FILENAME1=/home/ip1.txt;

IP= cut -d: -f2 $FILENAME1 > /home/ip.txt

i=0;

cat /home/ip.txt | while read line

     do

     let «i +=1»;

           if [ "$i" -eq 2 ]

               then

               IPp="$http://«$line»/ftp_viewer

               echo $IPp > /home/ip3.txt

           fi

done

exit

 

Соотвестветственно файлы:

ip.txt

       Link

      172.17.0.31

      POINTOPOINT

      2615

      2615

      3

      145685

ip1.txt

Link
     addr:172.17.0.31
     POINTOPOINT
     packets:2615
     packets:2615
     txqueuelen:3
     bytes:145685

ip3.txt

    http://172.17.0.31/ftp_viewer

За все это время не пролучилось никаким образом напрямую пезультат работы команды присвоить переменной. Подскажите кто знает.

fly4life

Несколько сумбурная постановка задачи. Тебе надо записать в некий файл строку http://$IP/ftp_viewer, где IP — это значение адреса на интерфейсе ppp0?

Если да, то не то, чтобы ответ, но точно намек: первый раз вижу bash-«программиста», знающего про awk, но не слышавшего о grep ;).

Sheva21

Тут и нет программиста о чем и писал »… Понятия толком не имея о Bash…»

Постановка задачи:

Записать в текстовый файл свой VPN Ip адрес с добавлением  «http://» IP «ftp_viewer»

И я ничего не слышал про Bash до вчерашнего дня. Есть конкретные советы  grep уже хорошо прочитаю что это за команда.

fly4life
Sheva21

Тут и нет программиста о чем и писал »… Понятия толком не имея о Bash…»

Постановка задачи:

Записать в текстовый файл свой VPN Ip адрес с добавлением  «http://» IP «ftp_viewer»

И я ничего не слышал про Bash до вчерашнего дня. Есть конкретные советы  grep уже хорошо прочитаю что это за команда.

Хм. Хотя, можно и без grep, но сsed:

#!/bin/bash

IP=`ifconfig ppp0 | awk '/inet/ {print $2}' | sed s/addr://g`

echo «http://$IP/ftp_viewer» > ~/ip.txt

Или в одну команду трансформировать:

echo «http://`ifconfig ppp0 | awk '/inet/ {print $2}' | sed s/addr://g`/ftp_viewer» > ~/ip.txt

 

Но про grep обязательно почитай! =)

fly4life

Дима, научи, как вставлять куски кода (или команды) красиво! =)

Дмитрий Шурупов

В панели формы комментария справа есть пара полезных кнопочек :-)

fly4life
#!/bin/bash
TEST=/bin/test
test $TEST

О! Красота!

Теперь давай права редактировать свои сообщения! =)

Sheva21

Спасибо то что я и хотел и намного компактнее

Sheva21

 И не знающего про awk, а догадавшегося что он делает по какому-то примеру и дальше уже логически )))

ShalaginIvan

Нужна помощь.Написал скрипт.Он смотрит папки в каталоге и должен выводить дату, время создания папок с нечётными номерами логинов.вот он:

#!/bin/bash

ls -l /home/users | grep -E «s[0-9][0-9]-[0-9][13579]»|awk '(print $6,$7,$8,$9)' > 1.txt

как сделать чтобы он читал только файлы вида s05-15 и т.д., а не tst?

Дмитрий Шурупов

Что такое «только файлы вида s05-15 и т.д., а не tst»?

Видимые пути решения — задать шаблон поиска для ls или воспользоваться вместо ls командой find.

ShalaginIvan

я имел в виду, что нам даны папки вида s05-18,s05-15,tst, и тому подобное инам нужно написать скрипт чтобы он выводил дату, время, и папки с нечётными номерами (только вида s05-15) и записывал их в текстовый файл.Если можете укажите ошибки и как их исправить?

Дмитрий Шурупов

Надо добавить ls поиск по маске. Как-нибудь типа «s05-[0-9][13579]»…

ShalaginIvan

спс