Re: shell - help wanted
On 2005.10.31 at 17:16:22 +0200, Dmitrii Varvashenia wrote:
> Доброго времени суток, russian
>
> Сейчас у меня возникла интересная задача:
> Нужно с нескольких серверов собирать список файлов на ftp и передавать их
> на один из них. Сейчас задачу решил по своему (см. конец письма) и понял,
> что всё ужастно тормозит.
Это -естественно. У тебя же там поднимается новый процесс ls на каждый
файл.
Можно попробовать find с ключиком -ls. Только поле для сортировки нужно
будет правильно указывать.
> Собираюсь всё это впихивать в mysql, дабы облегчить жизнь серверу, который
> занимается работой с получившимися файлами и разными выборками.
>
> Собственно вопрос: может кто подскажет тул, который одинаково отрабатывает
> на woody и sarge в области вывода списка файлов с намёком сформировать
> список для втыкания всего этого в mysql? (у ls не совпадает количество
> столбцов и формат даты разный - хотя у меня есть смутное подозрение, что
> ядро здесь имеет первостепенное значение)
Напрасное подозрение. Уж скорее имеет значение текущая локаль. И если
считать дату за один столбец, то количество столбцов вполне совпадает.
У ls из coreutils 5.2.1 (sarge) есть ключик --time-style, который
позволяет привести вывод к тому же виду, что и у ls из fileutls 4.1
(--time-style locale). К сожалению,ls из fileutils 4.1 такого не
понимает.
А вообще я бы рекомендовал отказаться для решения этой задачи от shell и
использовать более другой скриптовый язык, который не требует порождения
отдельного процесса для того, чтобы узнать содержимое inode, т.е.
имеющий встроенную команду для доступа к системному вызов stat.
Например, perl (у которого есть stat и модуль File::Find) или tcl
(у которого есть file state и glob или for_recursive_glob в Tclx)
Reply to: