Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Config::INI::Reader (dumper.pl)  (Прочитано 19513 раз)
0 Пользователей и 1 Гость смотрят эту тему.
mouserok
Интересующийся

ua
Offline Offline

« : 29-09-2010 09:32 » 

Добрый ... на вашем сайте(https://club.shelek.ru/viewart.php?id=294) есть полезный скрипт с помощью него вроде как можно задмпить систему исключив некоторые каталоги. скрипт писан на perl и скрипт использует модуль Config::INI::Reader
а вот установить не получилось (((


Код:
root@mouse-desktop:/home/mouse/backup/Config-INI-Reader-Ordered-0.011# perl Makefile.PL 
Cannot determine perl version info from lib/Config/INI/Reader/Ordered.pm
Cannot determine author info from lib/Config/INI/Reader/Ordered.pm
Cannot determine license info from lib/Config/INI/Reader/Ordered.pm
Warning: prerequisite Config::INI::Reader 0 not found.
Writing Makefile for Config::INI::Reader::Ordered
root@mouse-desktop:/home/mouse/backup/Config-INI-Reader-Ordered-0.011# make
Skip blib/lib/Config/INI/Reader/Ordered.pm (unchanged)
Manifying blib/man3/Config::INI::Reader::Ordered.3pm
root@mouse-desktop:/home/mouse/backup/Config-INI-Reader-Ordered-0.011# make testPERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'inc', 'blib/lib', 'blib/arch')" t/*.t
t/00-load.t ......... 1/1
#   Failed test 'use Config::INI::Reader::Ordered;'
#   at t/00-load.t line 6.
#     Tried to use 'Config::INI::Reader::Ordered'.
#     Error:  Can't locate Config/INI/Reader.pm in @INC (@INC contains: /home/mouse/backup/Config-INI-Reader-Ordered-0.011/inc /home/mouse/backup/Config-INI-Reader-Ordered-0.011/blib/lib /home/mouse/backup/Config-INI-Reader-Ordered-0.011/blib/arch /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl) at /home/mouse/backup/Config-INI-Reader-Ordered-0.011/blib/lib/Config/INI/Reader/Ordered.pm line 5.
# BEGIN failed--compilation aborted at /home/mouse/backup/Config-INI-Reader-Ordered-0.011/blib/lib/Config/INI/Reader/Ordered.pm line 5.
# Compilation failed in require at (eval 4) line 2.
# BEGIN failed--compilation aborted at (eval 4) line 2.
Use of uninitialized value $Config::INI::Reader::Ordered::VERSION in concatenation (.) or string at t/00-load.t line 9.
# Testing Config::INI::Reader::Ordered , Perl 5.010001, /usr/bin/perl
# Looks like you failed 1 test of 1.
t/00-load.t ......... Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests
t/pod-coverage.t .... skipped: Test::Pod::Coverage 1.08 required for testing POD coverage
t/pod.t ............. skipped: Test::Pod 1.22 required for testing POD
t/reader-ordered.t .. 1/4
#   Failed test 'use Config::INI::Reader::Ordered;'
#   at t/reader-ordered.t line 6.
#     Tried to use 'Config::INI::Reader::Ordered'.
#     Error:  Can't locate Config/INI/Reader.pm in @INC (@INC contains: /home/mouse/backup/Config-INI-Reader-Ordered-0.011/inc /home/mouse/backup/Config-INI-Reader-Ordered-0.011/blib/lib /home/mouse/backup/Config-INI-Reader-Ordered-0.011/blib/arch /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl) at /home/mouse/backup/Config-INI-Reader-Ordered-0.011/blib/lib/Config/INI/Reader/Ordered.pm line 5.
# BEGIN failed--compilation aborted at /home/mouse/backup/Config-INI-Reader-Ordered-0.011/blib/lib/Config/INI/Reader/Ordered.pm line 5.
# Compilation failed in require at (eval 4) line 2.
# BEGIN failed--compilation aborted at (eval 4) line 2.
Can't locate object method "read_string" via package "Config::INI::Reader::Ordered" at t/reader-ordered.t line 8.
# Looks like you planned 4 tests but ran 1.
# Looks like you failed 1 test of 1 run.
# Looks like your test exited with 255 just after 1.
t/reader-ordered.t .. Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 4/4 subtests

Test Summary Report
-------------------
t/00-load.t       (Wstat: 256 Tests: 1 Failed: 1)
  Failed test:  1
  Non-zero exit status: 1
t/reader-ordered.t (Wstat: 65280 Tests: 1 Failed: 1)
  Failed test:  1
  Non-zero exit status: 255
  Parse errors: Bad plan.  You planned 4 tests but ran 1.
Files=4, Tests=2,  0 wallclock secs ( 0.03 usr  0.06 sys +  0.13 cusr  0.08 csys =  0.30 CPU)
Result: FAIL
Failed 2/4 test programs. 2/2 subtests failed.
make: *** [test_dynamic] Ошибка 255

Добавлено через 3 часа, 32 минуты и 12 секунд:
нашел ... поставил пакет под ubuntu libconfig-ini-perl

Добавлено через 1 час, 53 минуты и 28 секунд:
а куда там добавить чтоб создавались папки если их нет и дату на файл ?
« Последнее редактирование: 29-09-2010 13:05 от mouserok » Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 29-09-2010 16:20 » 

mouserok, во-первых, соблюдай пунктуацию, когда пишешь! Читать такие шифрограммы - дело весьма не интересное.

Последний вопрос не понял.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
mouserok
Интересующийся

ua
Offline Offline

« Ответ #2 : 29-09-2010 16:36 » 

какой код и куда нужно добавить чтоб
1. создались директории если их нет (0,1,2,3,4,5,6,7,8,9)
2. файл создавался с текущей датой и временем
3. добавить еще один параметр для создания директорий (tmp\0, tmp\1, tmp\2 и т.д.) - иногда возникает надобность создать еще один полный дамп но при этом не удалить предыдущие
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 29-09-2010 17:00 » 

mouserok, я правильно понимаю - Perl ты видишь впервые?

Подготавливать среду - не задача этого скрипта. Создай все заранее - руками или еще как.
« Последнее редактирование: 29-09-2010 17:02 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
mouserok
Интересующийся

ua
Offline Offline

« Ответ #4 : 30-09-2010 06:32 » 

я понимаю что я тупо прошу халяву ... но я с perl дело не имел, а скрипт довольно таки хорош благодаря тому что там можно исключить папки. Было б это на sh - сам бы как-то дописал, а тут долго раздуплятся буду ((
почему прошу создать среду - всё из-за дополнительного параметра запуска
дополнительный параметр должен дать создать еще одну папку (имя параметра) а в нем структуру
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 30-09-2010 06:53 » 

mouserok, не смеши тапочки

ты уже второй день бодаешься с несуществующей проблемой, и ссылаешься на не желание изучать язык.
Но если ты знаешь шел, то почему ты не применишь эти знания к перл, или хотя бы почитать справочник.
В крайнем случае воспользоваться услугами Великого и Ужасного

Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
mouserok
Интересующийся

ua
Offline Offline

« Ответ #6 : 30-09-2010 08:13 » 

потому что нужно вникнуть в весь скрипт а на это уйдёт довольно много времени ... другое дело когда человек знает этот код изнает что в него дописать ... я бы на форум не писал если бы я знал что меня будут посылать на поисковик с банальной фразой тупо сделать папку.... я не имею тех познаний в этой отрасли которые имеете ВЫ
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 30-09-2010 08:22 » new

поверь, я perl, к своему стыду, знаю очень плохо. Но у меня достаточно понимания для того чтоб найти место в коде где нужно создать требуемій каталог.

Тебе єтот скрипт пользовать. Следовательно, в случае проблем, тебе же в нем и разбираться, если что сломается.

Итак...
что тебе надо?
Создать каталог, в который будет делаться бекап, если он не существует.

Проверить существование файла (каталога)
Создать если не существует.

Две строчки, ну максимум три. 20 минут гугления.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
mouserok
Интересующийся

ua
Offline Offline

« Ответ #8 : 30-09-2010 08:42 » 

хм ... я извеняюсь за не определенность ... но я так понимаю подобное можно сделать с помощью скрипта и команды stat -c %i /home

можно какой нить пример на BASH вычитывания из файла данных а потом их вывод через echo - или что-то подобное на эту тему
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 30-09-2010 09:34 » 

проверяем существование файла

$name = "имя католога";
if (-e $name) (
  echo "Файл сушествует\n";
} else (
  mkdir $name
}

допилить напильником.


Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
mouserok
Интересующийся

ua
Offline Offline

« Ответ #10 : 30-09-2010 10:09 » 

я не это имел ввиду
если запустить
Код:
stat -c %i /home
stat -c %i /home/user

получим
4567
15877

мне эти числа нужно далее подставить в  строку типа 4567, 15877

и хотел чтоб можно было создать файлик к примеру dirs.ini в котором были строки типа
Код:
/home
/home/user
которые в дальнейшем можно было запустить с командой stat -c %i 
и полученное значения использовать в коммандной строке
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #11 : 30-09-2010 12:12 » 

Ну и в чем проблема? Это вмешается в первую ознакомительную главу книги, ссылку на которую дал RXL.
Код:
#! /usr/bin/perl -w

open(INI, "stat.ini") or die "Не могу открыть файл stat.ini";
$string="";
while(<INI>) {
   $string =$string.", " if ($string);
   chomp($string = $string.`stat -c \%i $_`);
}
print $string."\n";
close(INI);
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
mouserok
Интересующийся

ua
Offline Offline

« Ответ #12 : 30-09-2010 12:44 » 

)) ... так я просил на bash
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #13 : 30-09-2010 12:56 » 

В свое время я сделал так.
Код:
CONFIG=/etc/dumper.conf
if [ -f ${CONFIG} ]; then
. ${CONFIG}
tempIFS=$IFS
IFS=";"

for loop in ${exc[$DL]}
do
   st=`/usr/bin/stat -c %i $loop`
   if [ -n $st ]; then

      if [ -z $er ]
      then
  er="-e "
      else
er=$er","
      fi
      er=${er}${st}
   fi
done
        IFS=$tempIFS
fi
/etc/dumper.conf
Код:
#! /bin/sh

#Directory is not need include in dump
exc[0]=""
exc[1]="/tmp;/var/spool/mail"
exc[2]="/tmp;/var/spool/mail;/var/log;/var/lib/mysql"
exc[3]="/tmp;/var/spool/mail;/var/log;/var/lib/mysql"
exc[4]="/tmp;/var/spool/mail;/var/log;/var/lib/mysql"
exc[5]="/tmp;/var/spool/mail;/var/log;/var/lib/mysql"
exc[6]="/tmp;/var/spool/mail;/var/log;/var/lib/mysql"
exc[7]="/tmp;/var/spool/mail;/var/log;/var/lib/mysql"
exc[8]="/tmp;/var/spool/mail;/var/log;/var/lib/mysql"
exc[9]="/tmp;/var/spool/mail;/var/log;/var/lib/mysql"
Хотя этот раздел вообше то по perl.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
mouserok
Интересующийся

ua
Offline Offline

« Ответ #14 : 30-09-2010 13:37 » 

и куда этот код вставить что не использовать Config::INI::Reader  Не понял
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #15 : 30-09-2010 15:41 » 

mouserok, Я извиняюсь, но ты уж определись, тебе нужен perl или bash Script? В обоих случаях я тебе дал код, который просто нужно допилить под свои нужды.

PS. С таким твоим подходом, я так чувствую твои темы скоро начнут сваливать в раздел "Срочно пАмАгите".
« Последнее редактирование: 30-09-2010 16:06 от Finch » Записан

Не будите спашяго дракона.
             Джаффар (Коша)
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #16 : 30-09-2010 19:18 » 

mouserok, по моему ты и Bash не знаешь.


Вот рабочий скрипт "getinodes.sh":
Код:
#!/bin/sh

[ $# -ne 1 -o ! -r "$1" ] && {
  echo "Usage: $0 filename" >&2
  exit 1
}

INPUTFILE="$1"

while read FILE
do
    INODE=$(stat -c %i "$FILE" 2>/dev/null) \
        && echo -n ",$INODE" \
        || echo "Warning: file '$FILE' is not exists." >&2
done <$INPUTFILE | sed 's/^,//'

exit 0

« Последнее редактирование: 30-09-2010 19:24 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines