
Script 1: is_prime.sh
Vous trouverez ci-dessous un petit script bash qui permet de déterminer si un nombre est premier ou non: is_prime.sh
L'image ci-dessous montre quelques exécutions de ce script et l'analyse statique par ShellCheck:
prabou@prabou-VPCZ23C5E:~/Téléchargements$ cat is_prime.sh #!/bin/bash #File: is_prime.sh #Author: Prabou MOUTTOU #Description: checks if nombre is prime #Version: 29 April 2019 #calcul d'une racine carree nombre=$1 racine_carree=$(echo "sqrt($nombre)" |bc -l) echo "sa racine carree vaut: $racine_carree" #calcul de la partie entiere partie_entiere=$(printf "%s" "$racine_carree" | awk '{print int($1)}') echo "sa partie entiere vaut: $partie_entiere" #calcul du reste de l'operation nombre/2,3,4...$partie_entiere i=2 while [ $((nombre%i)) -ne 0 ] && [ $i -le "$partie_entiere" ] do i=$((i+1)) echo $i done if [ $((i-1)) -ne "$partie_entiere" ]; then echo "$nombre n est pas premier! $i et $((nombre/i)) en sont deux diviseurs" else echo "$nombre est premier!" fi prabou@prabou-VPCZ23C5E:~/Téléchargements$ ./is_prime.sh 1776 sa racine carree vaut: 42.14261501141095539360 sa partie entiere vaut: 42 1776 n est pas premier! 2 et 888 en sont deux diviseurs prabou@prabou-VPCZ23C5E:~/Téléchargements$ ./is_prime.sh 111 sa racine carree vaut: 10.53565375285273884840 sa partie entiere vaut: 10 3 111 n est pas premier! 3 et 37 en sont deux diviseurs prabou@prabou-VPCZ23C5E:~/Téléchargements$ ./is_prime.sh 31 sa racine carree vaut: 5.56776436283002192211 sa partie entiere vaut: 5 3 4 5 6 31 est premier! prabou@prabou-VPCZ23C5E:~/Téléchargements$ shellcheck is_prime.sh prabou@prabou-VPCZ23C5E:~/Téléchargements$
Si vous ne souhaitez pas installer ShellChek sur votre ordinateur, le site https://www.shellcheck.net/ propose une version graphique et en ligne:

Script 2: ping_test.sh
Un petit script qui fait un ping test des machines présentes dans le fichier /etc/hosts: ping_test.shScript 3: send-notification.sh
En juin 2014, Free mobile a mis à disposition de ses abonnés une option intitulée "Notifications par SMS". Cette option (gratuite) permet d'envoyer des SMS sur son téléphone portable depuis n'importe quel appareil disposant d'une connexion Internet.L'option est disponible pour tous les abonnés à un forfait Free Mobile, y compris les abonnements à 2/mois. Après l'avoir activée dans l'espace abonné, il est possible de configurer simplement tout appareil connecté comme un disque dur réseau (ou NAS) ou une centrale d'alarme - pour que ce dernier envoie un SMS si un événement particulier se produit.

J'ai immédiatement testé cette fonctionnalité depuis mon PC sous Linux; j'ai donc:
- activé l'option dans mon espace abonné (https://mobile.free.fr/moncompte/).
- récupéré les informations nécessaires pour envoyer un SMS, à savoir le "user" (c'est l'identifiant de connexion à votre espace abonné qu'en principe vous deviez déjà connaître), et le "pass" qui est la clé d'identification générée lors de l'activation de l'option.
- j'obtiens alors une url du type https://smsapi.free-mobile.fr/sendmsg?user=12345678&pass=YgqvXN8K5CtdFe&msg=Test_SMS1 que je colle dans la barre d'adresse de mon navigateur web Firefox, et là je suis content car je viens de recevoir un SMS. Je suis content en effet car j'ai validé mon url et je suis sûr qu'elle est bonne. Par contre j'aimerai aller un peu plus loin, en essayant d'automatiser cela et le mettre sous la forme d'une commande shell qui pourra être intégrée dans un script (qui lui-même pourrait être appelé par un capteur).
- je me rends compte que je dois installer cURL, donc je l'installe (avec $ sudo apt-get install curl)
- je me rends compte que la connexion est sécurisée par SSL, donc qu'il faut utiliser l'option -k pour ignorer cette vérification et on obtient une commande du type curl -k "https://smsapi.free-mobile.fr/sendmsg?user=12345678&pass=YgqvXN8K5CtdFe&msg=Test SMS2" qui fonctionne aussi très bien.
- comme dernière étape, je souhaitais avoir un beau petit script (qui contient la commande de base) qu'on pourrait appeler avec le message en argument. Après avoir recherché un peu sur Internet, j'ai trouvé le script send-notification.sh qui est disponible ici https://github.com/C-Duv/freemobile-smsapi-client, mais bien sûr il y en a plein d'autres et vous pouvez aussi écrire votre propre script suivant vos besoins.
Je remercie au passage Monsieur DUVERGIER pour son script que j'ai testé et qui fonctionne très bien. J'ai simplement constaté que le caractère de fin de ligne par défaut ("%0D") n'était pas pris en compte. Je l'ai donc remplacé par l'autre caractère suggéré ("%0A"), et nickel!
Si ce système de notification par SMS ne vous convient pas, et que vous préférez par exemple être appelé; il y a le script perl call.pl qui permet d'appeler (par VoIP) et de diffuser un message préenregistré.
Il faudra alors utiliser une commande de type: ./call.pl --registrar freephonie.net --send sound.wav --username 09xxxxxxxx --password xxxxxxxxxx 09xxxxxxxx
Suite à cette commande, un appel sera initié et la bande sonore sera jouée. Prenez garde à bien choisir les paramètres PCMA de votre bande sonore (fréquence et profondeur d'échantillonnage) de façon à avoir une bonne qualité d'écoute.
Script 4: rsync
Une petite commande (qui peut bien sûr être utilisée dans un script) simple mais très pratique pour faire vos sauvegardes. Vous passez beaucoup trop de temps à sauvegarder vos photos ou vos livres électronique? Alors la commande rsync est faite pour vous.Exemple: rsync -av --del --stats /home/prabou/Images/ /home/prabou/Images_backup/
Si on souhaite faire des sauvegardes automatiques, on pourra par exemple utiliser crontab.
Remarque: rsync fonctionne sur une large gamme de systèmes d'exploitation (Microsoft Windows, GNU/Linux, Mac OS X, Unix), permettant ainsi de synchroniser des fichiers de différents systèmes d'exploitation.
5) Email en mode CLI
Voici une commande permettant d'envoyer un email en mode CLI avec une pièce jointe:# On envoie un email à adresse@email.net avec un sujet, un message et le fichier prabou.txt en pièce jointe echo "Bonjour, ceci est un email envoyé par la commande mail avec une PJ!" | mail -s "Sujet de l'email" adresse@email.net -A prabou.txt