Вход на сайт
интерактивный скрипт, опять прошу помочь...
1097
22.05.12 06:50
привет всем!
подскажите, видимо у меня затык с метасимволами...
не выполняется скриптик, где по критерию поиска , введенным пользователем, должны выбраться как раз те файлы, которые ему отвечают (надеюсь, правильно выразилась)
вот собс-но:
#!/bin/sh
mails='/home-hpc/homeq/user/Mailbox/*' - ну это типа папка юзера, в которую восстанавливаются мейлы
echo -e "Enter word:"
read word
echo
grep -i "$word" "$mails"
и почему-то если в mails указываешь конкретный файл в конце - работает, а в таком виде выше с * не работает, пишет No such file or directory. И если даешь просто вручную grep blablabla <тот же самый путь написанный выше со звездочкой> - все выводит как надо...
спасибо!
подскажите, видимо у меня затык с метасимволами...
не выполняется скриптик, где по критерию поиска , введенным пользователем, должны выбраться как раз те файлы, которые ему отвечают (надеюсь, правильно выразилась)
вот собс-но:
#!/bin/sh
mails='/home-hpc/homeq/user/Mailbox/*' - ну это типа папка юзера, в которую восстанавливаются мейлы
echo -e "Enter word:"
read word
echo
grep -i "$word" "$mails"
и почему-то если в mails указываешь конкретный файл в конце - работает, а в таком виде выше с * не работает, пишет No such file or directory. И если даешь просто вручную grep blablabla <тот же самый путь написанный выше со звездочкой> - все выводит как надо...
спасибо!
NEW 22.05.12 12:30
Сердечно благодарю!
мне уже не первый раз помогаешь!
я меняла в данном случае тока $mails без кавычек. на др примере дома пыталась отработать этот вариант, ниче не получилось... Та же ошибка. Я уж "все глазоньки ясные проглядела" на тему регулярных выражений, казалось, что все д.б. правильно... Оставалось убить себя об стену...
На работе "работает" ))) убрала кавычки у $mails - функционирует... почему - немного неясно. Отличие лишь в том, что шелл дома - bash
вот запустила в режиме отладки:
+ mails='/home-hpc/homeq/user/Mailbox/Lovric_Install-NWC-Suse/*'
+ echo -e 'Enter word:'
Enter word:
+ read word
lovric
+ echo
+ grep -i lovric /home-hpc/homeq/user/Mailbox/Lovric_Install-NWC-Suse/1.eml /home-hpc/homeq/user/Mailbox/Lovric_Install-NWC-Suse/2.eml /home-hpc/homeq/user/Mailbox/Lovric_Install-NWC-Suse/3.eml /home-hpc/homeq/user/Mailbox/Lovric_Install-NWC-Suse/4.eml /home-hpc/homeq/user/Mailbox/Lovric_Install-NWC-Suse/5.eml /home-hpc/homeq/user/Mailbox/Lovric_Install-NWC-Suse/6.eml /home-hpc/homeq/user/Mailbox/Lovric_Install-NWC-Suse/7.eml
...........
т.е. ищет все в тех файлах где suchmuster встречается...
Дома после выполнения строки grep, вернее, попытки выполнения пишет опять, что не найдено файла или директории.
о, с этого места мона подробнее? ))
это как раз для поиска в подпапках можно использовать?.. мне как раз это тоже решить бы надо...Могу конечно посмотреть,не вопрос, просто уточнить хотелось ))
мне уже не первый раз помогаешь!
В ответ на:
меняй на
grep -i $word $mails
меняй на
grep -i $word $mails
я меняла в данном случае тока $mails без кавычек. на др примере дома пыталась отработать этот вариант, ниче не получилось... Та же ошибка. Я уж "все глазоньки ясные проглядела" на тему регулярных выражений, казалось, что все д.б. правильно... Оставалось убить себя об стену...
На работе "работает" ))) убрала кавычки у $mails - функционирует... почему - немного неясно. Отличие лишь в том, что шелл дома - bash
вот запустила в режиме отладки:
+ mails='/home-hpc/homeq/user/Mailbox/Lovric_Install-NWC-Suse/*'
+ echo -e 'Enter word:'
Enter word:
+ read word
lovric
+ echo
+ grep -i lovric /home-hpc/homeq/user/Mailbox/Lovric_Install-NWC-Suse/1.eml /home-hpc/homeq/user/Mailbox/Lovric_Install-NWC-Suse/2.eml /home-hpc/homeq/user/Mailbox/Lovric_Install-NWC-Suse/3.eml /home-hpc/homeq/user/Mailbox/Lovric_Install-NWC-Suse/4.eml /home-hpc/homeq/user/Mailbox/Lovric_Install-NWC-Suse/5.eml /home-hpc/homeq/user/Mailbox/Lovric_Install-NWC-Suse/6.eml /home-hpc/homeq/user/Mailbox/Lovric_Install-NWC-Suse/7.eml
...........
т.е. ищет все в тех файлах где suchmuster встречается...
Дома после выполнения строки grep, вернее, попытки выполнения пишет опять, что не найдено файла или директории.
В ответ на:
И вообще можно убрать звездочку и юзать -R у grep.
И вообще можно убрать звездочку и юзать -R у grep.
о, с этого места мона подробнее? ))
это как раз для поиска в подпапках можно использовать?.. мне как раз это тоже решить бы надо...Могу конечно посмотреть,не вопрос, просто уточнить хотелось ))
NEW 22.05.12 12:58
не знаю что у тебя дома, но например у RHEL /bin/sh это просто symbolic link на /bin/bash.
проверь сама
$ mkdir test; cd test; touch file{1,2,3}; cat > script.sh
#!/bin/sh
mails='./*'
echo $mails
echo ================================
echo "$mails"
<Ctrl-D>
$sh script.sh
./file1 ./file2 ./file3 ./scrpt.sh
================================
./*
$
теперь понятней ?
поподробнее man grep
в ответ Regenwolke 22.05.12 12:30
В ответ на:
Отличие лишь в том, что шелл дома - bash
Отличие лишь в том, что шелл дома - bash
не знаю что у тебя дома, но например у RHEL /bin/sh это просто symbolic link на /bin/bash.
В ответ на:
почему - немного неясно.
почему - немного неясно.
проверь сама
$ mkdir test; cd test; touch file{1,2,3}; cat > script.sh
#!/bin/sh
mails='./*'
echo $mails
echo ================================
echo "$mails"
<Ctrl-D>
$sh script.sh
./file1 ./file2 ./file3 ./scrpt.sh
================================
./*
$
теперь понятней ?
В ответ на:
о, с этого места мона подробнее? ))
о, с этого места мона подробнее? ))
поподробнее man grep
В ответ на:
-R, -r, --recursive
Read all files under each directory, recursively; this is equivalent to the -d recurse option.
-R, -r, --recursive
Read all files under each directory, recursively; this is equivalent to the -d recurse option.
0001, 0010, 0011, 0100, 0101, вышел зайчег погулядь
NEW 22.05.12 13:07
ну да: lrwxrwxrwx 1 root root 4 3. Feb 2009 sh -> bash
дома дружепользовательский Линукс Минт, а на работе как раз RHEL ))
поэтому и удивлялась почемк не работает
в ответ BSDLamer 22.05.12 12:58
В ответ на:
не знаю что у тебя дома, но например у RHEL /bin/sh это просто symbolic link на /bin/bash.
не знаю что у тебя дома, но например у RHEL /bin/sh это просто symbolic link на /bin/bash.
ну да: lrwxrwxrwx 1 root root 4 3. Feb 2009 sh -> bash
дома дружепользовательский Линукс Минт, а на работе как раз RHEL ))
поэтому и удивлялась почемк не работает
NEW 22.05.12 13:34
в ответ Regenwolke 22.05.12 13:07
Weak quoting
Inside a weak-quoted string there's no special interpretion of:
spaces as word-separators (on inital commandline splitting and on word splitting!)
single-quotes to introduce strong-quoting (see below)
characters for pattern matching
pathname expansion
process substitution
Everything else, especially parameter expansion, is performed!
ls -l "*"
Will not be expanded. ls gets the literal * as argument. It will, unless you have a file named *, spit out an error.
Inside a weak-quoted string there's no special interpretion of:
spaces as word-separators (on inital commandline splitting and on word splitting!)
single-quotes to introduce strong-quoting (see below)
characters for pattern matching
pathname expansion
process substitution
Everything else, especially parameter expansion, is performed!
ls -l "*"
Will not be expanded. ls gets the literal * as argument. It will, unless you have a file named *, spit out an error.
0001, 0010, 0011, 0100, 0101, вышел зайчег погулядь
NEW 22.05.12 13:45
NEW 23.05.12 20:09
енту типа альтернативную конструкцию пришлось придумывать "на коленке" и обрабатывать напильником...
речь идет о восстановлении мейлов. и предоставить их пользователю в доступном так сказать виде....
почтарь - OX, Open Exchange.
система архивирования и восстановления - EMC Networker,
NW сервер под RHEL.
Для восстановления прямо в почтовую программу имелся раньше замечательный "тул" для ox-a : OX Sesam, где можно было выбрать нужный мейл и выборочно синхронизировать его с базой почтовика и "положить" в ящик пользователя и синхронизировать с нужной папкой и тд... С некоторого времени с ним возникли проблемы. Суппорт не мог ничем помочь, шеф принял решение, что покупать лицензии дальше для него не имеет смысла. Пришлось срочно искать альтернативное решение.
Решили:
1. Восстанавливать мейлы прямо в дом папку пользователя (эта служба крутиться как раз на одном из узлов линуксвого кластера RHEL)
2. Менять с "рута" на права пользователя, удалять лишние файлы, необходимые для синхронизации с базой данных почтовика. Ведь в этом случае нужны только мейлы.
3. Переименовывать их в eml, для перетаскивания в почтовую программу.
этот скриптик я сбацала, НО!..
Далее возникает опять вопрос, если юзер говорит, что ему нужны ВСЕ мейлы, пусть из определенной папки, то нет проблем. А если он хочет по какой то определенной теме, то при восстановлении сотни или тысячи мейлов, типа искать будет муторно... Названия файлов имеют вид несколько цифр и точка. Например, 22345.
ща в очередной раз опять переиграли...
надо теперь, чтоб после восстановления файлы переименовывать не только с расширением eml, но и чтобы само название файла было взято из Subject, для того чтоб юзер ориентировался уже сам.
т.е. из содержания файла выбрать grep-ом строку темы и присвоить соотвествующее название файла...
сию "фичу" придумывать повесили на меня, видимо, мотивируя мою ответственность за Storage и архивирование и восстановление....
речь идет о восстановлении мейлов. и предоставить их пользователю в доступном так сказать виде....
почтарь - OX, Open Exchange.
система архивирования и восстановления - EMC Networker,
NW сервер под RHEL.
Для восстановления прямо в почтовую программу имелся раньше замечательный "тул" для ox-a : OX Sesam, где можно было выбрать нужный мейл и выборочно синхронизировать его с базой почтовика и "положить" в ящик пользователя и синхронизировать с нужной папкой и тд... С некоторого времени с ним возникли проблемы. Суппорт не мог ничем помочь, шеф принял решение, что покупать лицензии дальше для него не имеет смысла. Пришлось срочно искать альтернативное решение.
Решили:
1. Восстанавливать мейлы прямо в дом папку пользователя (эта служба крутиться как раз на одном из узлов линуксвого кластера RHEL)
2. Менять с "рута" на права пользователя, удалять лишние файлы, необходимые для синхронизации с базой данных почтовика. Ведь в этом случае нужны только мейлы.
3. Переименовывать их в eml, для перетаскивания в почтовую программу.
этот скриптик я сбацала, НО!..
Далее возникает опять вопрос, если юзер говорит, что ему нужны ВСЕ мейлы, пусть из определенной папки, то нет проблем. А если он хочет по какой то определенной теме, то при восстановлении сотни или тысячи мейлов, типа искать будет муторно... Названия файлов имеют вид несколько цифр и точка. Например, 22345.
ща в очередной раз опять переиграли...
надо теперь, чтоб после восстановления файлы переименовывать не только с расширением eml, но и чтобы само название файла было взято из Subject, для того чтоб юзер ориентировался уже сам.
т.е. из содержания файла выбрать grep-ом строку темы и присвоить соотвествующее название файла...
сию "фичу" придумывать повесили на меня, видимо, мотивируя мою ответственность за Storage и архивирование и восстановление....
NEW 24.05.12 12:08
в ответ Regenwolke 23.05.12 20:09
ничего не знаю про ОХ но саппорт надо трахать до победного конца. Иначе все обрастет некрасивыми костылями. Пускай пишут патчи, шлют консультантов, возвращают деньги.
не понятно какое отношение storage admin имеет к groupware ?
IMHO, подход в корню не верный.
В ответ на:
сию "фичу" придумывать повесили на меня, видимо, мотивируя мою ответственность за Storage и архивирование и восстановление....
сию "фичу" придумывать повесили на меня, видимо, мотивируя мою ответственность за Storage и архивирование и восстановление....
не понятно какое отношение storage admin имеет к groupware ?
IMHO, подход в корню не верный.
0001, 0010, 0011, 0100, 0101, вышел зайчег погулядь
NEW 24.05.12 16:30
согласна, в идеале так, но в этом случае решение принимаю увы не я...
там получается нашла коса на камень, коллега отвечающий за groupware, "трахал" саппорт, они ни к чему не пришли, он сообщил типа что работать это не будет и решения проблемы нет...
в итоге так элегантненько перевели стрелки - раз я восстанавливаю, то надо это восстановленное предоставить в удобоваримом виде.
насчет отделения мух от котлет правильно говоришь, но почему думаешь, что сам подход неверный и в чем?.. просто интересно бы узнать твое мнение.
от себя могу сказать, что мне лично проще бы как раз тупо восстановить в папку нужные мейлы, известить об этом пользователя, что они лежат в его дом. папке, пусть он сам копирует че ему надо и когда он видит, что ему надо...(В итоге это даже экономия лишних телодвижений получается, таких как повторная синхронизация на "оксе" и абонирование новых папок (и мейлов) в почтовой программе пользователя - в случае восстановления с бекапного сервера прямо в original folder почтового сервера. )
в ответ BSDLamer 24.05.12 12:08
В ответ на:
но саппорт надо трахать до победного конца. Иначе все обрастет некрасивыми костылями. Пускай пишут патчи, шлют консультантов, возвращают деньги.
но саппорт надо трахать до победного конца. Иначе все обрастет некрасивыми костылями. Пускай пишут патчи, шлют консультантов, возвращают деньги.
согласна, в идеале так, но в этом случае решение принимаю увы не я...
там получается нашла коса на камень, коллега отвечающий за groupware, "трахал" саппорт, они ни к чему не пришли, он сообщил типа что работать это не будет и решения проблемы нет...
в итоге так элегантненько перевели стрелки - раз я восстанавливаю, то надо это восстановленное предоставить в удобоваримом виде.
насчет отделения мух от котлет правильно говоришь, но почему думаешь, что сам подход неверный и в чем?.. просто интересно бы узнать твое мнение.
от себя могу сказать, что мне лично проще бы как раз тупо восстановить в папку нужные мейлы, известить об этом пользователя, что они лежат в его дом. папке, пусть он сам копирует че ему надо и когда он видит, что ему надо...(В итоге это даже экономия лишних телодвижений получается, таких как повторная синхронизация на "оксе" и абонирование новых папок (и мейлов) в почтовой программе пользователя - в случае восстановления с бекапного сервера прямо в original folder почтового сервера. )
NEW 25.05.12 18:32
1) не верный в том что приделываются костыли. Сегодня один, завтра второй, после завтра ты сама запутаешься в этих костылях.
Саппорты бывают разные, тут судить не берусь потому что не знаю какой он у вас там. При правильном применении решения, поставщик обязан пофиксить баги, короче так чтоб работало. Иначе требуйте обратно деньги.
Умей шефу это так преподнести чтоб он сам понял что так дела не делаются.
2) Ничего не знаю об OpenExchange, ниразу его не видел, не знаю его компонентов. Помню когда-то мне приходилось немного потрогать Novell GroupWise на NetWare и на Linux, и я тоже не понятно каким макаром был отвественным за backup/restore/recovery. Чтоб особо не трахаться с восстановлением мы делали следующее:
GroupScheiss как наверное и многие другие groupware, позволял на лету специальными тулзами копировать базы данных юзерских ящиков и прочую дребедень нужную для восстановления, если например потеряешь боевой сервер. Каждая такая копия складывалась на backup сервере в определенную папку с названием и датой. Если юзер хотел восстановить потеряное мыло или термин, мы просто на backup сервере стартовали еще один groupwise подсовывая ему backup за определенный день.
Юзер коннектился к этому серверу и видел свой ящик в таком виде каким он был ну скажем неделю назад. Искал свою почту, экспортировал/архивировал ее, коннектлся обратно к боевому серверу и импортировал все в свой настоящий ящик.
Все это легко автоматизировалось с помощью cron и парой эллементарных скриптов. Были и другие методы, но не помню уже, давно было :)
Может это и применимо к OX раз уж такой шеф.
в ответ Regenwolke 24.05.12 16:30
В ответ на:
насчет отделения мух от котлет правильно говоришь, но почему думаешь, что сам подход неверный и в чем?
насчет отделения мух от котлет правильно говоришь, но почему думаешь, что сам подход неверный и в чем?
1) не верный в том что приделываются костыли. Сегодня один, завтра второй, после завтра ты сама запутаешься в этих костылях.
Саппорты бывают разные, тут судить не берусь потому что не знаю какой он у вас там. При правильном применении решения, поставщик обязан пофиксить баги, короче так чтоб работало. Иначе требуйте обратно деньги.
Умей шефу это так преподнести чтоб он сам понял что так дела не делаются.
2) Ничего не знаю об OpenExchange, ниразу его не видел, не знаю его компонентов. Помню когда-то мне приходилось немного потрогать Novell GroupWise на NetWare и на Linux, и я тоже не понятно каким макаром был отвественным за backup/restore/recovery. Чтоб особо не трахаться с восстановлением мы делали следующее:
GroupScheiss как наверное и многие другие groupware, позволял на лету специальными тулзами копировать базы данных юзерских ящиков и прочую дребедень нужную для восстановления, если например потеряешь боевой сервер. Каждая такая копия складывалась на backup сервере в определенную папку с названием и датой. Если юзер хотел восстановить потеряное мыло или термин, мы просто на backup сервере стартовали еще один groupwise подсовывая ему backup за определенный день.
Юзер коннектился к этому серверу и видел свой ящик в таком виде каким он был ну скажем неделю назад. Искал свою почту, экспортировал/архивировал ее, коннектлся обратно к боевому серверу и импортировал все в свой настоящий ящик.
Все это легко автоматизировалось с помощью cron и парой эллементарных скриптов. Были и другие методы, но не помню уже, давно было :)
Может это и применимо к OX раз уж такой шеф.
0001, 0010, 0011, 0100, 0101, вышел зайчег погулядь
NEW 30.05.12 15:16
абсолютно солидарна с твоим мнением.
если это дальше будет нарастать и "пухнуть", надо будет конечно продавить ситуацию, что "по конструктору Сделай Сам
да уж, горячий "привет" Source Garden
Так оно почти и есть как ты пишешь. Для этого и имелся отдельный бекапный комп, куда копировалась база, откуда в итоге можно было б восстановить отдельные мейлы - они брались клиентом SEP sesam (http://www.sep.de/de/home/) с люб админской машины для восстановления в почтовый ящик. В последнем тобой описании, если я прально поняла, тут отличие в том, что юзеру просто надо было по новой абонировать папку, в которой мейлы были восстановлены, а до этого админ на "оксе" должен быд выплднить парочку команд для синхронизации с БД.
там я не особо "шарю"...
вот такая тулза:
www.sep.de/de/produkte/applications-groupware-mailsystems-ecm/open-xchang...
В ответ на:
не верный в том что приделываются костыли. Сегодня один, завтра второй, после завтра ты сама запутаешься в этих костылях.
не верный в том что приделываются костыли. Сегодня один, завтра второй, после завтра ты сама запутаешься в этих костылях.
абсолютно солидарна с твоим мнением.
если это дальше будет нарастать и "пухнуть", надо будет конечно продавить ситуацию, что "по конструктору Сделай Сам
В ответ на:
Саппорты бывают разные, тут судить не берусь потому что не знаю какой он у вас там.
Саппорты бывают разные, тут судить не берусь потому что не знаю какой он у вас там.
да уж, горячий "привет" Source Garden
В ответ на:
GroupScheiss как наверное и многие другие groupware, позволял на лету специальными тулзами копировать базы данных юзерских ящиков и прочую дребедень нужную для восстановления, если например потеряешь боевой сервер. Каждая такая копия складывалась на backup сервере в определенную папку с названием и датой. Если юзер хотел восстановить потеряное мыло или термин, мы просто на backup сервере стартовали еще один groupwise подсовывая ему backup за определенный день.
GroupScheiss как наверное и многие другие groupware, позволял на лету специальными тулзами копировать базы данных юзерских ящиков и прочую дребедень нужную для восстановления, если например потеряешь боевой сервер. Каждая такая копия складывалась на backup сервере в определенную папку с названием и датой. Если юзер хотел восстановить потеряное мыло или термин, мы просто на backup сервере стартовали еще один groupwise подсовывая ему backup за определенный день.
В ответ на:
Может это и применимо к OX раз уж такой шеф.
Может это и применимо к OX раз уж такой шеф.
Так оно почти и есть как ты пишешь. Для этого и имелся отдельный бекапный комп, куда копировалась база, откуда в итоге можно было б восстановить отдельные мейлы - они брались клиентом SEP sesam (http://www.sep.de/de/home/) с люб админской машины для восстановления в почтовый ящик. В последнем тобой описании, если я прально поняла, тут отличие в том, что юзеру просто надо было по новой абонировать папку, в которой мейлы были восстановлены, а до этого админ на "оксе" должен быд выплднить парочку команд для синхронизации с БД.
там я не особо "шарю"...
вот такая тулза:
www.sep.de/de/produkte/applications-groupware-mailsystems-ecm/open-xchang...