[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: