2015-07-26 4 views
-6

У меня есть скрипт bash, который содержит числовые значения из файлов журнала, но он потребляет ресурсы сервера, и сервер становится перегруженным. Я хочу написать тот же скрипт в Perl или Python. Размер файла журнала составляет около 1 ГБ, а сценарий должен запускаться ежедневно.Преобразование сценария bash в Perl или Python

while read i 
do 
egrep -h $i /opt/logs/oc-resizer.log >> /opt/logs/purge-resizer.tmp 
done < /opt/nasa/shahid/logo.csv 
+0

Почему переписывание в python/perl уменьшает использование ресурсов? –

+0

bash - это медленная обработка, и для завершения всего процесса требуется время, согласно моему предположению, perl является хорошим/быстрым для обработки текста. исправьте меня, если я ошибаюсь. –

+3

Я не вижу там вопроса. Вы ожидаете от нас написать это для вас? – Borodin

ответ

2

Просто уменьшить ваш сценарий к этому:

#!/bin/bash 
egrep -f /opt/nasa/shahid/logo.csv /opt/logs/oc-resizer.log \ 
       >> /opt/logs/purge-resizer.tmp 

Это будет намного быстрее. Это будет еще быстрее - если вы ищете фиксированные строки, а не шаблоны - с помощью fgrep вместо: задать расширенный

fgrep -f /opt/nasa/shahid/logo.csv /opt/logs/oc-resizer.log \ 
       >> /opt/logs/purge-resizer.tmp 

См man grep подробности.

Я не думаю, что perl или python могут получить быстрее, чем это.

+0

Спасибо Марио, ты решил мою проблему. –

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