mouserok
Интересующийся
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
|
|
« Ответ #1 : 29-09-2010 16:20 » |
|
mouserok, во-первых, соблюдай пунктуацию, когда пишешь! Читать такие шифрограммы - дело весьма не интересное.
Последний вопрос не понял.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
mouserok
Интересующийся
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
|
|
« Ответ #3 : 29-09-2010 17:00 » |
|
mouserok, я правильно понимаю - Perl ты видишь впервые?
Подготавливать среду - не задача этого скрипта. Создай все заранее - руками или еще как.
|
|
« Последнее редактирование: 29-09-2010 17:02 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
mouserok
Интересующийся
Offline
|
|
« Ответ #4 : 30-09-2010 06:32 » |
|
я понимаю что я тупо прошу халяву ... но я с perl дело не имел, а скрипт довольно таки хорош благодаря тому что там можно исключить папки. Было б это на sh - сам бы как-то дописал, а тут долго раздуплятся буду (( почему прошу создать среду - всё из-за дополнительного параметра запуска дополнительный параметр должен дать создать еще одну папку (имя параметра) а в нем структуру
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #5 : 30-09-2010 06:53 » |
|
mouserok, не смеши тапочки ты уже второй день бодаешься с несуществующей проблемой, и ссылаешься на не желание изучать язык. Но если ты знаешь шел, то почему ты не применишь эти знания к перл, или хотя бы почитать справочник. В крайнем случае воспользоваться услугами Великого и Ужасного
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
mouserok
Интересующийся
Offline
|
|
« Ответ #6 : 30-09-2010 08:13 » |
|
потому что нужно вникнуть в весь скрипт а на это уйдёт довольно много времени ... другое дело когда человек знает этот код изнает что в него дописать ... я бы на форум не писал если бы я знал что меня будут посылать на поисковик с банальной фразой тупо сделать папку.... я не имею тех познаний в этой отрасли которые имеете ВЫ
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #7 : 30-09-2010 08:22 » |
|
поверь, я perl, к своему стыду, знаю очень плохо. Но у меня достаточно понимания для того чтоб найти место в коде где нужно создать требуемій каталог.
Тебе єтот скрипт пользовать. Следовательно, в случае проблем, тебе же в нем и разбираться, если что сломается.
Итак... что тебе надо? Создать каталог, в который будет делаться бекап, если он не существует.
Проверить существование файла (каталога) Создать если не существует.
Две строчки, ну максимум три. 20 минут гугления.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
mouserok
Интересующийся
Offline
|
|
« Ответ #8 : 30-09-2010 08:42 » |
|
хм ... я извеняюсь за не определенность ... но я так понимаю подобное можно сделать с помощью скрипта и команды stat -c %i /home
можно какой нить пример на BASH вычитывания из файла данных а потом их вывод через echo - или что-то подобное на эту тему
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #9 : 30-09-2010 09:34 » |
|
проверяем существование файла
$name = "имя католога"; if (-e $name) ( echo "Файл сушествует\n"; } else ( mkdir $name }
допилить напильником.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
mouserok
Интересующийся
Offline
|
|
« Ответ #10 : 30-09-2010 10:09 » |
|
я не это имел ввиду если запустить stat -c %i /home stat -c %i /home/user получим 4567 15877 мне эти числа нужно далее подставить в строку типа 4567, 15877 и хотел чтоб можно было создать файлик к примеру dirs.ini в котором были строки типа которые в дальнейшем можно было запустить с командой stat -c %i и полученное значения использовать в коммандной строке
|
|
|
Записан
|
|
|
|
Finch
Спокойный
Администратор
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
Интересующийся
Offline
|
|
« Ответ #12 : 30-09-2010 12:44 » |
|
)) ... так я просил на bash
|
|
|
Записан
|
|
|
|
Finch
Спокойный
Администратор
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.
|
|
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
|
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
|
|
« Ответ #15 : 30-09-2010 15:41 » |
|
mouserok, Я извиняюсь, но ты уж определись, тебе нужен perl или bash Script? В обоих случаях я тебе дал код, который просто нужно допилить под свои нужды.
PS. С таким твоим подходом, я так чувствую твои темы скоро начнут сваливать в раздел "Срочно пАмАгите".
|
|
« Последнее редактирование: 30-09-2010 16:06 от Finch »
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
RXL
|
|
« Ответ #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 »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
|