2014-09-10 1 views
0

На сервере Linux файлы данных будут сбрасываться непрерывно в директорию, если прерывистые интервалы говорят о 5 или 10 или даже 15 минутах. Я хочу выполнить предварительную обработку/очистку этих файлов по одному и SCP на каком-то другом сервере.Файлы процесса BASH, поскольку они сбрасываются в каталог

Как я должен обрабатывать все эти файлы рекурсивно?

Должен ли я писать один сценарий bash, который будет работать непрерывно и обрабатывать файлы рекурсивно в этом каталоге? Или я должен запланировать запуск скрипта через каждые 10 минут?

Для одного непрерывного сценария, каковым должно быть условие цикла? или бесконечный цикл?

+0

использования 'cron' для этого –

+1

подсказки: используйте' 'cron' + Rsync 'или' inotifywait'. – anishsane

+1

@anishsane, 'incron' - еще более подходящий инструмент. –

ответ

0

Я бы выбрал запланированный скрипт с cron, так как бесконечные циклы, сортировка, ошибки.

Для обработки части, я не уверен, что это то, что вы просили, но вы можете сделать что-то вроде этого:

#!/bin/bash 
FILES=/your/dir/* 
for file in $FILES 
do 
    echo "I'm doing something with $file" 
done 
+0

Бесконечный цикл не является ошибкой. Плановый скрипт рискует сидеть без дела, когда новые файлы приходят до следующего запланированного прогона. – chepner

+0

BTW, если вы хотите сохранить список имен файлов в переменной, вам нужно использовать массив. Как бы то ни было, '$ FILES' хранит только выражение glob, не сохраняя никаких фактических имен файлов; 'files = (/ your/dir/*)' будет хранить фактические имена, после чего точка может перебирать эти имена с помощью 'for file in '$ {files [@]}" '. –

+1

Кроме того, использование имен all-caps для ваших собственных переменных является плохим. См. Четвертый абзац http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html для соглашений POSIX об именах переменных среды, имея в виду, что переменные среды и переменные оболочки совместно используют пространство имен (так что оболочка с плохой именованной оболочкой переменная может непреднамеренно переопределить переменную среды - не только для текущего процесса, но и для всех подпроцессов). –

Смежные вопросы