[LINUX] Un script shell qui envoie simplement le résultat de l'exécution SQL

Comme le dit le titre. J'ai écrit un peu pendant la pause déjeuner.

environnement

Utilise PostgreSQL pour les instances de machine virtuelle Azure.

$ cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core)

$ psql -V
psql (PostgreSQL) 9.2.23

code

Je voulais vraiment l'écrire en Python, mais avec la configuration actuelle du module, je devais jouer avec l'environnement. Puisqu'il s'agit d'un système de production, je l'ai abandonné et je l'ai créé avec uniquement des scripts shell (bash) et des commandes standard.

bash


#!/bin/bash
YESTERDAY=`date --date '1 day ago' "+%Y%m%d"`
SQL_FILE=/tmp/dakoku.sql
MAIL_TEXT=/tmp/mail.txt

#Instruction SQL/Créé en tmp
cat << EOL > $SQL_FILE
SELECT d.syaincd comme numéro d'employé, e.syainmei comme nom d'employé, d.torokudt comme date et heure horodatées,
CASE dakokusyubetucd
  WHEN '1' THEN 'Présence'
  WHEN '2' THEN 'Quitter le travail'
  ELSE 'inconnue'
END comme type
FROM dakoku_table d
LEFT JOIN employee_table e ON d.syaincd = e.syaincd
WHERE dakokuymd = '$YESTERDAY'
ORDER by d.torokudt, d.syaincd;
EOL

#En-tête de courrier, etc./Créé en tmp
cat << EOL > $MAIL_TEXT
To: [email protected]
Cc: [email protected]
Subject: DAILY TIME RECORD ($YESTERDAY)

Cet e-mail est automatiquement envoyé par le système.
Nous vous informerons du journal des horodatages de présence.

EOL

#Ajouter le résultat de l'exécution SQL au corps du courrier
su - postgres -c "psql KINTAI_DB < $SQL_FILE" >> $MAIL_TEXT

#Envoyer un e-mail
/sbin/sendmail -t < $MAIL_TEXT

E-mails envoyés


Cet e-mail est automatiquement envoyé par le système.
Nous vous informerons du journal des horodatages de présence.

numéro d'employé|Nom de l'employé|Estampage de la date et de l'heure|Type
------------+--------------+-------------------------+------
     539258 |Yamada Taro| 2020-07-17 07:47:05.314 |Présence
     265167 |Suzuki Hanako| 2020-07-17 07:52:18.736 |Présence
     329665 |Ichiro Tanaka| 2020-07-17 08:03:57.356 |Présence

Enregistrez-vous avec root crontab et exécutez automatiquement à 0h05. Le service du personnel et des affaires générales peut vérifier l'omission de présence la veille. C'est un code honteux, mais j'espère qu'il aide quelqu'un!

Recommended Posts

Un script shell qui envoie simplement le résultat de l'exécution SQL
Un script qui ne reçoit qu'un flux RSS
Un programme shell qui affiche une séquence de Fibonacci
Comment passer le résultat de l'exécution d'une commande shell dans une liste en Python
Script Python qui lit les fichiers SQL, exécute BigQuery et enregistre le csv
Script Shell pour mettre Webmin dans Alpine Linux
Script shell qui numérote les noms en double lors de la création de fichiers
Accédez au fichier avec un chemin relatif à partir du script d'exécution.
Création d'un script Python prenant en charge l'API e-Stat (ver.2)
Essayons un script shell
Traitez les fichiers du dossier dans l'ordre avec le script shell
[Note] Un script shell qui vérifie l'utilisation du processeur d'un processus spécifique dans une boucle while.
Un programme qui appuie et relâche simplement la touche Échap
Un script qui affiche la pile CloudFormation en cours d'exécution comme un mannequin
Comment passer le résultat de l'exécution d'une commande shell dans une liste en Python (version non bloquante)
Script Python qui compare le contenu de deux répertoires
J'ai écrit un script qui divise l'image en deux
Traitez le contenu du fichier dans l'ordre avec un script shell
[sh] Comment stocker les résultats de l'exécution de la commande dans des variables
Script Shell (Linux, macOS) qui affiche la date de la semaine dernière
Branche conditionnelle en raison de l'existence d'un fichier de script shell
Créez un script shell pour exécuter le fichier python plusieurs fois
Ecrire un programme qui abuse du programme et envoie 100 e-mails
Un script qui renvoie 0, 1 attaché au premier Python prime
Un script shell pour se souvenir à nouveau du shell pipenv
[Ubuntu] Comment exécuter un script shell
Exécuter l'interpréteur Python dans le script
Gérez les générations de rotation des journaux avec un script shell.
Script qui analyse morphologiquement l'URL spécifiée
Créer un script shell pour écrire un journal
[Python] Un programme qui arrondit le score
Essayez de résoudre le problème du voyageur de commerce avec un algorithme génétique (résultat de l'exécution)
Un article qui essaie juste une petite requête HTTP avec la commande curl
Dans Blender, un script qui joint simplement tous les objets directement sous un groupe particulier
J'ai écrit un script pour relancer la montre gulp qui mourra bientôt