Mes scripts « Maison »

Pour avoir la météo en bash:

#!/bin/bash
#
# Meteo mise à jour toutes les heures
#
# Smokyr <smokyr@extra-ordinaire.com>
#

if [ -z "$1" ]
then
        minute=5 #minute de maj par défaut
else
        minute=$1
fi

while true
do
        clear
        LC_ALL='fr_FR.utf8' date
        curl wttr.in/93200?lang=fr
        sleep 1m
        LC_ALL='fr_FR.utf8' date -d '1 minute ago'
        tempo=$(date +%M | sed -e 's/000$//' -e 's/^0//')
        attente=$(($minute - $tempo + 60))
        sleep $attente.m
done
meteo sous bash
Exemple de météo sous bash

Afin de vérifier le statut de fail2ban et la table nfttables correspondante:

#!/bin/sh
#
# Dispaly status of fail2ban
# and status of each jails
# and the nft table fail2ban
#
# Smokyr <smokyr@extra-ordinaire.com>
#

fail2ban-client status
JAILS=`fail2ban-client status | grep "Jail list" | sed -E 's/^[^:]+:[ \t]+//' | sed 's/,//g'`
for JAIL in $JAILS
do
  fail2ban-client status $JAIL
done
nft list table fail2ban

Une alarme (bip system) toute simple:

#!/bin/bash
#
# a simple alarm clock
#
# Smokyr <smokyr@extra-ordinaire.com>
#

# pas de paramètre
if [ $# = 0 ]
then
        echo "Aucune valeur reçue pour alarme !"
        echo
        echo "Fournir une valeur sous la forme HH:MM"
        echo "Par example 08:30"
        echo
        exit 2
fi

# aide
if [ $1 == '--help' -o $1 == '-h' ]
then
        echo "Aide:"
        echo "fournir  l'heure de l'alarme sous la forme HH:MM"
        echo "avec heure de 00 à 23"
        echo "et minutes de 00 à 59"
        echo
        echo "par exemple ./alarme.sh 08:30"
        echo
        echo "vous pouvez aussi infiquer la raison de l'alarme:"
        echo "(entre ' ' si plusieurs mots)"
        echo
        echo "./arlarme.sh 08:30 'Allez bosser'"
        echo
        exit 1
fi

# paramètre invalide

# longueur de la chaine = 5
if [ $(expr length $1)  !=  5 ]
then
        echo "Paramètre incorrect ! L'haure n'est pas de 5 caractères."
        echo "fournir  l'heure de l'alarme sous la forme HH:MM"
        echo "par exemple ./alarme.sh 08:30"
        echo
        echo "Tapez ./alarmes.sh --help (ou -h) pour l'aide."
        echo
        exit 2
fi

# test si les :

if [ echo ${1:2:1}) != ":" ]
        echo "Paramètre incorrect ! Il manque les :"
        echo "fournir  l'heure de l'alarme sous la forme HH:MM"
        echo "par exemple ./alarme.sh 08:30"
        echo
        echo "Tapez ./alarmes.sh --help (ou -h) pour l'aide."
        echo
        exit 2

# heure est un entier entre 0 et 23
if [ $(echo ${1:0:2}) -lt "0" ] || [ $(echo ${1:0:2}) -gt "23" ]
then
        echo "Heure inavlide"
        echo "doit etre comprise entre 00 et 23"
        echo
        echo "Tapez ./alarmes.sh --help (ou -h) pour l'aide."
        echo
        exit 2
fi

# minute est un entier entre 00 et 59
if [ $(echo ${1:3}) -lt "0" ] || [ $(echo ${1:3}) -gt "59" ]
then
        echo "Minutes inavlides"
        echo "doit etre comprise entre 00 et 59"
        echo
        echo "Tapez ./alarmes.sh --help (ou -h) pour l'aide."
        echo
        exit 2
fi


# c'est OK
alarme=$1

if test -n "$2"
then
        raison=", "$2
else
        raison=""
fi

courant=$(date +"%H:%M")
clear
echo 'il est '$courant' et alarme réglée pour '$alarme

while true
do
        courant=$(date +"%H:%M")
        if [ "$alarme" == "$courant" ]
        then
                echo -e '\a'
                echo "Il est "$alarme$raison
                echo "************"
                echo "CTRL+C pour annuler"
        else
                clear
                echo 'il est '$courant' et alarme réglée pour '$alarme
                echo "CTRL+C pour annuler"
          fi
        sleep 1s
done

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.