l'idée est d'utiliser les logs en particulier journald pour sauvegarder de petites notes prises en ligne de commande
utilisation
lister les messages:
noter
ajouter un message:
noter -m "cool le site manjaro.fr"
lister avec journald
journalctl -t noter
A noter
Puisque que l'on écrit dans les logs, il est impossible de modifier, effacer un message
Particularité
il est possible de regrouper les message en familles, par exemple "todo"
noter -m "demain je travaille" -t todo
noter -t todo
journalctl -t todo
-----------------------------------------------------
le code du fichier "bin/noter"
#!/usr/bin/env bash
# des notes sauvegardées dans les logs
# journalctl -t noter ; journalctl COM=noter
ITEMS_IDENTIFIER='noter'
function lister() {
journalctl -t $ITEMS_IDENTIFIER --since="-30d" | grep -v "^-" | awk '{ printf "%s %s %s\n\033[1m",$2,$1,$3} { \
for (i = 6; i <= 1024; i++)
if (length($i)>1) printf "%s ",$i;
} {print "\033[0m\n"}'
}
function ajouter(){
local msg=$1
printf "%s\n%s\n%s\n%s" \
MESSAGE="${msg}" \
SYSLOG_IDENTIFIER="$ITEMS_IDENTIFIER" \
COM="noter" \
PRIORITY="5" \
| logger --journald
}
function erreur() {
echo -e "\033[41mErreur:\033[0m $1"
}
function usage(){
echo -e "usage:\nnoter [-m 'message'] [-t 'identifiant'] [-l]"
echo -e " [-l] lister les messages"
echo -e " -m \"message\" pour ajouter un texte"
echo -e " -t \"identifiant\" famille du message ('noter' par defaut): journalctl -t noter\n"
echo -e "noter -m \"installer demain Manjaro\" -t todo"
echo -e "noter -t todo"
}
msg=""
while getopts "hlm:t:" flags; do
case $flags in
h) usage;exit 0 ;;
l) lister=1 ;;
m) msg="${OPTARG}" ;;
t) ITEMS_IDENTIFIER="${OPTARG}" ;;
:) erreur "Vous avez oublié un argument"; exit 1 ;;
?) erreur "Option invalide"; exit 1 ;;
*) erreur "*"; exit 1 ;;
esac
done
if [[ "$lister" == "1" || "$msg" == "" ]]; then
lister
exit 0
fi
ajouter "$msg"
exit 0
-----------------------------------------------------
sorties :
journalctl
mai 06 12:40:00 HPmachine noter[13199]: encore un test de log avec journald
mai 06 12:47:32 HPmachine noter[13545]: toujours encore un test de log avec journald
mai 06 13:41:50 HPmachine noter[16204]: enfin fini
noter
06 mai 12:40:00
toujours encore un test de log avec journald
06 mai 12:47:32
encore un test de log avec journald
06 mai 13:41:50
enfin fini
il est aussi possible de retourner tous les messages enregistrés par "noter"
journalctl COM=noter