помогите со скриптом еще раз:)

Модератор: Модераторы разделов

fixx
Сообщения: 430
Статус: индивид
ОС: fedora

помогите со скриптом еще раз:)

Сообщение fixx »

есть такая конструкция:

Код: Выделить всё

use TFTP;
$tftp = new TFTP("172.16.0.33");
$tftp->get("thinstation.conf-192.168.16.100");
$tftp->octet;
#$tftp->put("this.file");
$tftp->quit;


use strict;

my $f;
my $filename = "/thinstation.conf-192.168.16.100";
....etc


скрипт по тфтп тянет файл thinstation.conf-его ип
надо унифицировать и сделать так, что бы его ип брался из дхсп, на случай его замены:) т.е. thinstation.conf(переменная), а вместо (переменная) подставлялся адрес, полученный из дхсп.
как бы это реализовать?
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: помогите со скриптом еще раз:)

Сообщение diesel »

из DHCP на этой машине? то есть тебе надо фактический текущий IP? интерфейсов один или много?

Код: Выделить всё

/sbin/ifconfig eth0 | perl -i -n -e 'if(/inet addr:/){ s/inet addr:(([0-9]{1,3}\.){3}[0-9]{1,3}).*/$1/;s/\s+//g; print;}'


вот што-то такое можно сделать, ну или перевести это в нормальный перл в скрипте....
Спасибо сказали:
fixx
Сообщения: 430
Статус: индивид
ОС: fedora

Re: помогите со скриптом еще раз:)

Сообщение fixx »

да, эта машина получает по дхцп. интерфейс один всего, нужен именно фактический
Спасибо сказали:
fixx
Сообщения: 430
Статус: индивид
ОС: fedora

Re: помогите со скриптом еще раз:)

Сообщение fixx »

ну получить его не проблема:) проблемно ввести переменную, что бы ип к имени файла привязывался
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: помогите со скриптом еще раз:)

Сообщение Portnov »

Код: Выделить всё

$ip = `тут-длинная-команда-с-ifconfig`;


?
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: помогите со скриптом еще раз:)

Сообщение diesel »

fixx писал(а):
30.09.2008 16:15
ну получить его не проблема:) проблемно ввести переменную, что бы ип к имени файла привязывался



Код: Выделить всё

use strict;
use warnings;
my $ip;
foreach (qx{ /sbin/ifconfig eth0}){
    if(/inet addr:/){
        s/inet addr:(([0-9]{1,3}\.){3}[0-9]{1,3}).*/$1/;
        s/\s+//g;
        $ip = $_;
    }
}
print $ip."\n";


это если то что выше написано внутрь файла записать.
Спасибо сказали:
fixx
Сообщения: 430
Статус: индивид
ОС: fedora

Re: помогите со скриптом еще раз:)

Сообщение fixx »

diesel
спасибо:)
а почему у меня после выполнение:

Код: Выделить всё

use strict;
use warnings;
my $ip;
foreach (qx{ /sbin/ifconfig eth0}){
    if(/inet addr:/){
            s/inet addr:(([0-9]{1,3}\.){3}[0-9]{1,3}).*/$1/;
            s/\s+//g;
            $ip = $_;
       }
}
print $ip."\n";

use TFTP;
$tftp = new TFTP("172.16.0.33");
$tftp->get("thinstation.conf-$ip");
$tftp->octet;
$tftp->quit;

начинают валится ошибки:


Global symbol "$tftp" requires explicit package name at test line 14.
Global symbol "$tftp" requires explicit package name at test line 15.
Global symbol "$tftp" requires explicit package name at test line 16.
Global symbol "$tftp" requires explicit package name at test line 17.
Execution of test aborted due to compilation errors.


хотя отдельно тфт отрабатывает
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: помогите со скриптом еще раз:)

Сообщение diesel »

Код: Выделить всё

my $tftp = new TFTP("172.16.0.33");


там сделай ....
Спасибо сказали:
fixx
Сообщения: 430
Статус: индивид
ОС: fedora

Re: помогите со скриптом еще раз:)

Сообщение fixx »

тоже нет

tk:/home/fixx/sk# perl test
"my" variable $tftp masks earlier declaration in same scope at test line 16.
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: помогите со скриптом еще раз:)

Сообщение diesel »

fixx писал(а):
30.09.2008 16:45
тоже нет

tk:/home/fixx/sk# perl test
"my" variable $tftp masks earlier declaration in same scope at test line 16.

верни взад и убери use strict вверху, или скопипасть то на что он ругается, и как-то линию 16 выдели :)
Спасибо сказали:
fixx
Сообщения: 430
Статус: индивид
ОС: fedora

Re: помогите со скриптом еще раз:)

Сообщение fixx »

diesel
спасибо большое, работает:)
Спасибо сказали: