Une place pour une véritable innovation. Partagez vos propres utilitaires créés avec la communauté Manjaro.
Questions et discussions sur la programmation et le codage.
Répondre

prise de note avec journald

#1Messageil y a 9 ans

idée
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 

prise de note avec journald

#2Messageil y a 9 ans

:bjr: merci papajoke :bien

prise de note avec journald

#3Messageil y a 9 ans

'LLo papajoke,

J'ai a peu près rien compris (pour l'instant !), mais c'est pas grâve car j'ai arrêté journald ! :siffle:clindoeil:
Dernière modification par fassilil y a 9 ans, modifié au total 1 fois.

prise de note avec journald

#4Messageil y a 9 ans

Salut Fassil
fassil a écrit :J'ai a peu près rien compris

hop, une traduction en fassilien français : Le titre pouvais être plus simplement :
système de post-it en ligne de commande
en fait (tout simplement) j'utilise (caché en interne) dans le script les logs pour sauvegarder les post-it
ce qui permet pour la lecture des post-it (en + du script) d'utiliser ton logiciel de lecture des logs (journalctl...)
inconvénient : il n'est pas possible de modifier/supprimer un post-it une fois "posté"
ps: sujet dans "Programmation / Codage" (donc pas pout toi ;) ) car c'était pour moi un test pour savoir si il était possible d'écrire facilement dans journald car je n'ai encore vu aucun script le faisant :saispas:
fassil a écrit :c'est pas grave car j'ai arrêté journald !

tu enregistres tes logs en texte (à l'ancienne) ? journalctl est puissant , je pense que c'est juste dommage de se passer d'un très bon outil intégré à notre distribution pour le remplacer par quelque chose qui sera moins performant.
Le seul problème de journalctl c'est qu'il faut apprendre/comprendre les options, mais si c'est possible avec pacman, pourquoi cela serait impossible avec journalctl :siffle

prise de note avec journald

#5Messageil y a 9 ans

J'avais encore oublié un smiley (cf + haut) :clindoeil:
Répondre