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)