Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: помогите со скриптом.  (Прочитано 798 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн fritzz

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
помогите со скриптом.
« : 03 Апреля 2011, 12:22:41 »
Привет.  делаю скрипт что бы выдергивал ип  и мак адреса из файла. а потом подставлял их.

скажите пожалуйста, как в цикл  for  добавить еще переменную?   


(Нажмите, чтобы показать/скрыть)


что бы выглядело как то так



(Нажмите, чтобы показать/скрыть)

Оффлайн aliftin

  • Старожил
  • *
  • Сообщений: 1398
    • Просмотр профиля
Re: помогите со скриптом.
« Ответ #1 : 03 Апреля 2011, 12:25:31 »
Содержимое файлов можно увидеть? И покажите что должно получиться в конце.
Если мы не можем до чего то дотянуться, мы виним в этом не свой рост, не отсутствие табуретки, а свою цель.

Оффлайн fritzz

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: помогите со скриптом.
« Ответ #2 : 03 Апреля 2011, 12:30:17 »
Содержимое файлов можно увидеть? И покажите что должно получиться в конце.


spisokip
(Нажмите, чтобы показать/скрыть)


spisokmac
(Нажмите, чтобы показать/скрыть)

в конце получиться должно такое

  { hardware ethernet 00:15:E9:AF:F3:BE;
                       fixed-address 192.168.1.230; }"

дело в том что есть около 100  ип адресов, и всех привязывать вручную в dhcp  лень.  так что хотелось бы автоматизировать как нибудь.

« Последнее редактирование: 03 Апреля 2011, 12:43:35 от fritzz »

Оффлайн aliftin

  • Старожил
  • *
  • Сообщений: 1398
    • Просмотр профиля
Re: помогите со скриптом.
« Ответ #3 : 03 Апреля 2011, 12:59:49 »
Ну как-то так:
#!/bin/bash

num=1

for i in `cat ./ip`
do
mac_adress=`cat ./mac | sed -n ""$num"p"`
echo "$i"" - ""$mac_adress"

num=`expr $num + 1`


done
Если мы не можем до чего то дотянуться, мы виним в этом не свой рост, не отсутствие табуретки, а свою цель.

Оффлайн fritzz

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: помогите со скриптом.
« Ответ #4 : 03 Апреля 2011, 14:09:22 »
Ну как-то так:
#!/bin/bash

num=1

for i in `cat ./ip`
do
mac_adress=`cat ./mac | sed -n ""$num"p"`
echo "$i"" - ""$mac_adress"

num=`expr $num + 1`


done


я новичок.  так что заранее извиняюсь  если не прав.  но ваш скрипт формирует  ип - мак.  я тоже самое делаю через  /sbin/arp -a > spisok     cut -d " " f2,4 spisok.   

как бы все работает, просто надо загнать еще одну переменную в цикл for

#!/bin/bash


num=1
ip=`cat /home/fritz/script/spisokip`
mac=`cat /home/fritz/script/spisokmac`


cat /dev/null  > /home/fritz/script/dhcpd.conf

for MAC in $mac; do

printf " host  client$num
                      {
                   hardware ethernet $MAC;
                       fixed-address $IP; }"  >> dhcpd.conf

echo >> dhcpd.conf


num=`expr $num + 1`

done

что бы  загонял IP  так же как MAC.

 {
                   hardware ethernet 48:5B:39:92:CB:83;
                       fixed-address 192.168.1.240; }



Оффлайн aliftin

  • Старожил
  • *
  • Сообщений: 1398
    • Просмотр профиля
Re: помогите со скриптом.
« Ответ #5 : 03 Апреля 2011, 14:18:07 »
Вставьте что вам нужно вместо 'echo "$i"" - ""$mac_adress"':
#!/bin/bash

num=1

for ip in `cat ./ip`
do
mac_adress=`cat ./mac | sed -n ""$num"p"`
printf " host  client$num
{
hardware ethernet $mac_adress;
fixed-address $ip; }"  >> dhcpd.conf

echo >> dhcpd.conf

num=`expr $num + 1`


done
Если мы не можем до чего то дотянуться, мы виним в этом не свой рост, не отсутствие табуретки, а свою цель.

Оффлайн fritzz

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: помогите со скриптом.
« Ответ #6 : 03 Апреля 2011, 15:05:46 »
Вставьте что вам нужно вместо 'echo "$i"" - ""$mac_adress"':
#!/bin/bash

num=1

for ip in `cat ./ip`
do
mac_adress=`cat ./mac | sed -n ""$num"p"`
printf " host  client$num
{
hardware ethernet $mac_adress;
fixed-address $ip; }"  >> dhcpd.conf

echo >> dhcpd.conf

num=`expr $num + 1`


done



большое Вам спасибо!

 

Страница сгенерирована за 0.048 секунд. Запросов: 25.