[bash] journalctl interactif
Publié : 08 fév 2017, 16:36
Puisque les options de journalctl sont obscures pour la plupart voici un petit script qui permet de faire des filtres dans journald en mode interactif.
fichier
On peut étendre la commande journalctl et lui ajouter l'option
Ajouter dans son fichier .bashrc
maintenant nous pouvons faire un "simple"
résultat:
fichier
journaldi
(chmod 755)#!/usr/bin/env bash
pkgname='journaldi'
version=0.1.0
#set -x
# journalctl interactif
lg=$(locale 2>/dev/null | awk -F'=' '/^LANG/ {print $2}')
case "${lg:0:2}" in
fr) ask='o/N';;
de) ask='j/N';;
es) ask='s/N';;
*) ask='y/N'
esac
yesno()
{
declare prompt="${1:-'Entrer une valeur :'}"
read -n 1 -p "${prompt} [${ask:0:3}]" REPLY </dev/tty
REPLY="${REPLY,,}"
echo
case "${REPLY:0:1}" in
"${ask:0:1}") return 0 ;;
*) return 1 ;;
esac
}
service=''
if yesno "Chercher un service ?"; then
read -p "nom du service : " service_name </dev/tty
service='-u'
[ -n "${service_name}" ] && service='-t'
else
read -p "ou un programme : " service_name </dev/tty
[ -n "${service_name}" ] && service='-t'
fi
levels=("urgency" "alert" "critical" "error" "warning" "notice" "information" "debug")
if yesno "Filtrer les erreurs ?"; then
read -p "level (${levels[*]}) [error(3)]: " level </dev/tty
[ -z "${level}" ] && level="3"
[ -n "${level}" ] && level="-p $level "
fi
if yesno "Uniquement le boot actuel ?"; then
boot='-b'
else
read -p "depuis XX jours [1..99] : " days </dev/tty
[ -n "${days}" ] && days="--since=-${days}d"
fi
echo -e "\033[0m\033[32m::\033[0m journalctl ${boot} ${service} ${service_name} ${level}${days}"
journalctl ${boot} ${service} ${service_name} ${level}${days}
On peut étendre la commande journalctl et lui ajouter l'option
-i
Ajouter dans son fichier .bashrc
__journalctl() {
if [[ "$@" = "-i" ]]; then
journaldi
else
journalctl "$@"
fi
}
alias journalctl='__journalctl'
maintenant nous pouvons faire un "simple"
journalctl -i
résultat:
journalctl -i
Chercher un service ? [o/N]o
nom du service : sudo
Filtrer les erreurs ? [o/N]o
level (urgency alert critical error warning notice information debug) [error(3)]: 3
Uniquement le boot actuel ? [o/N]n
depuis XX jours [1..99] : 1
:: journalctl -t sudo -p 3 --since=-1d
-- Logs begin at Wed 2016-11-16 22:25:37 CET, end at Wed 2017-02-08 15:48:36 CET. --
févr. 07 22:15:43 HPmachine sudo[3662]: patrick : a password is required ; TTY=pts/0 ; PWD=/tmp/yaour
févr. 07 23:38:55 HPmachine sudo[10239]: patrick : a password is required ; TTY=pts/0 ; PWD=/home/pat
-- Reboot --
févr. 08 07:17:48 HPmachine sudo[5057]: patrick : a password is required ; TTY=pts/0 ; PWD=/home/patr
févr. 08 11:34:00 HPmachine sudo[12929]: patrick : a password is required ; TTY=pts/0 ; PWD=/home/pat
févr. 08 11:50:50 HPmachine sudo[20464]: patrick : a password is required ; TTY=pts/0 ; PWD=/home/pat
lines 1-7/7 (END)