Mesmo não precisa de um roteiro completo ...
... mas coloque-o na forma de um script:
#!/bin/bash
file=
dbus-monitor "interface='org.freedesktop.Notifications'" |\
grep --line-buffered "string" |\
grep --line-buffered -e method -e ":" -e '""' -e urgency -e notify -v |\
grep --line-buffered '.*(?=string)|(?<=string).*' -oPi |\
grep --line-buffered -v '^\s*$' |\
xargs -I '{}' echo {} >> $file
Para executá-lo
- Copie o "script" em um arquivo vazio, salve-o como
keep_log.sh
-
Execute-o com o arquivo de log como argumento com o comando
/bin/bash /path/to/keep_log.sh /path/to/log.txt
A resposta foi recuperada de uma resposta anterior (não uma dupe), na qual esta aplicação do método foi mencionada como um exemplo.
A resposta que dei lá, por sua vez, foi baseada em esta resposta muito legal, na qual é explicado que o método usa dbus-monitor
para interceptar o conteúdo de notify-send. Ao editar o exemplo lá, podemos fazer com que ele grave notify-send
messages em um arquivo (log).
Ou mais elegante
... seria adicionar a data ao arquivo de log, produzindo um arquivo de log como:
---di 10 mei 2016 17:37:20 CEST---
SOme kind of a message!
---di 10 mei 2016 17:37:20 CEST---
The last message was misspelled so here i9s another one
Nesse caso, o script seria:
#!/bin/bash
logfile=
dbus-monitor "interface='org.freedesktop.Notifications'" |\
grep --line-buffered "string" |\
grep --line-buffered -e method -e ":" -e '""' -e urgency -e notify -v |\
grep --line-buffered '.*(?=string)|(?<=string).*' -oPi |\
grep --line-buffered -v '^\s*$' |\
xargs -I '{}' \
printf "---$( date )---\n"{}"\n" >> $logfile