В случае нет inbuild функции в звездочке, чтобы сделать это, вот Баш решение:
#!/bin/bash
echo "0" >/tmp/numberoflines
IFS=''
pathToLogFile = /path/to/log/file
while [ 1 ]
do
NUMBER=$(cat /tmp/numberoflines)
LINECOUNT=$(wc -l < $pathToLogFile)
DIFFERENCE=$(($LINECOUNT-$NUMBER))
if [ $DIFFERENCE != 0 ]; then
lines=($(tail -n $DIFFERENCE $pathToLogFile))
for line in $lines; do
callID = `expr "$line" : 'CALLID_REGEX (see below)'`
$(echo "$line" >> /path/to/log/directory/$callID)
done
fi
sleep 5;
echo "$LINECOUNT" >/tmp/numberoflines
done
непроверенным
его следует использовать, чтобы получить аба идею, чтобы решить эту проблему.
регулярное выражение: normaly: /\[(C\d{8})\]/
. К сожалению, я не знаю синтаксиса в bash. Прости. вам нужно преобразовать его самостоятельно в синтаксис bash.
Идея: запомнить последнюю строку в файле журнала, обработанную скриптом bash. проверьте количество строк в файле журнала. если есть больше строк, то запоминаемая строка: пройдите по новым строкам и извлеките идентификатор вызова в начале каждой строки (формат: C ******** (* - числа). числом с 8 цифрами). теперь добавьте всю строку в конец файла журнала. имя файла - это извлеченный код.
EDIT Информация о ид вызова (не путайте его с идентификатором вызывающего абонента): https://wiki.asterisk.org/wiki/display/AST/Unique+Call-ID+Logging
Я вхожу все данные в один файл. Если я хочу просмотреть один вызов, я фильтрую файл журнала для этого файла. Вы можете сделать это очень легко с grep: 'grep ID LOGLEVEL'. Взгляните на руководство logger.conf: http://www.asteriskdocs.org/en/3rd_Edition/asterisk-book-html-chunk/Monitoring_id264504.html –
вопрос: используете ли вы CDR? если не активировать его: http://clients.stabiliservers.com/knowledgebase.php?action=displayarticle&id=9 –
Я знаю эту вещь, мне громоздко держать трек каждого удостоверения личности. Скорее, что я хочу сделать, у меня есть my_gen_ID, который легко отслеживать для меня, с этим my_gen_ID я буду отслеживать поток asterisk_gen_ID и будет записывать целые данные в файл my_gen_ID.txt. Если я сделаю так, что вы определяете, мне понадобится другое сопоставление для my_gen_ID и asterisk_gen_ID - чего я хочу избежать. Поэтому, если кто-то жалуется на какие-либо проблемы, я могу сразу же просмотреть файл my_gen_ID.txt и посмотреть, что произошло в этом вызове. У кого-то есть этот my_gen_ID, когда он/она звонит. –