] С помощью [] GNU grep[
] можно попробовать:[
$ echo "<a href='magnet:?xt=something1:something1:somerandomcharacters'>link text</a>" |
grep -oP "magnet.*(?=')"
magnet:?xt=something1:something1:somerandomcharacters
] , если вы довольны системным журналом, то используйте регистратор
вместо SVLOGD
. Вся точка наличия RunScript для вашего регистратора заключается в том, что вы можете запустить любую программу, которую вам нравится выполнять журнал.
#!/bin/sh
exec logger -i -p daemon.notice -t my_service
.
Другая хорошая идея - просто позволить журналам переходить к отдельным местам, а затем использовать сценарий, который объединяет файлы вместе, когда вы просматриваете их. Например, с временными метками из SVLOGD
Вы можете просто
cat /var/log/test/*/current | sort | less
Есть другие надежные инструменты, которые могут просматривать несколько файлов журнала одновременно, вроде MultiTail
Насколько я могу судить, svlogd
не поддерживает объединение логов в один файл. Тем не менее, он поддерживает запись логов в сокет. Мое решение - поручить svlogd
пересылать записи журнала через UDP в запущенный экземпляр rsyslog.
/etc/sv/test-1/log/run
#!/bin/sh
exec svlogd -tt /var/log/test/1
/var/log/test/1/config
ptest-1:
U127.0.0.1
/etc/sv/test-2/log/run
#!/bin/sh
exec svlogd -tt /var/log/test/2
/var/log/test/2/config
ptest-2:
U127.0.0.1
Оттуда просто нужно настроить rsyslog так, как вы хотите.