[LINUX] [Shell script] C'est ennuyeux d'envoyer le même contenu chaque semaine, alors j'ai essayé de l'automatiser! !! !!

Aperçu

Nous organisons une session d'étude nuageuse tous les samedis, mais peu avant le début, "Collez l'URL de zoom et envoyez un e-mail en tenant compte du texte de l'e-mail." Ce travail est gênant. Alors créons un formulaire fixe et l'envoyons automatiquement à slack! !! C'est le contenu.

■ Écoulement irrégulier

  1. Créez un fichier et accordez l'autorisation d'exécution
  2. Enregistrez et configurez le Webhook entrant dans Slack
  3. Création de code (URL de zoom + texte de l'e-mail)
  4. paramètres cron (planification des travaux)

1. Créez un fichier et accordez l'autorisation d'exécution

Tout d'abord, créez un fichier pour écrire le programme. J'ai créé un fichier appelé Saturday_execute dans le répertoire shellscript car c'est un fichier qui s'exécute le samedi. (Le chemin de ./shellscript/Saturday_execute est utilisé dans les paramètres cron.) Accordons maintenant des autorisations à Saturday_execute.

■ Afficher les informations de fichier dans le répertoire

/shellscript


$ ls -l      #Afficher les informations sur les fichiers dans le répertoire
-rw-r--r--1 Nom du propriétaire du fichier Groupe d'affiliation du fichier Taille du fichier Date et heure mises à jour samedi_execute(nom de fichier)

Utilisation et options de la commande ls

Détails des informations affichées

-r: lisible --w: inscriptible --x: exécutable ---: Aucune autorisation d'accès

Vous pouvez voir que vous ne disposez pas de l'autorisation d'exécution car le troisième caractère de l'autorisation d'accès du propriétaire est "-". Vous n'avez pas l'autorisation d'exécution, alors donnez-lui l'autorisation d'exécution.

■ Octroi du pouvoir d'exécution Utilisez la commande chmod pour modifier les autorisations. Comment utiliser chmod et les options

/shellscript


$ chmod u+x Saturday_execute    #chemin du fichier de configuration des autorisations chmod

Explication de la commande

symbole sens
u Autorité propriétaire

Comme expliqué dans «■ Affichage des informations de répertoire», x était l'autorisation d'exécution.

Cela signifie "donner l'autorisation d'exécution au propriétaire du fichier Saturday_execute".

2. Enregistrez et configurez les Webhooks entrants dans Slack

Recherchez les Webhooks entrants à partir du "bouton + à côté de l'application" en bas à gauche de slack. スクリーンショット 2020-07-26 11.53.54.png Cliquez sur "Ajouter des paramètres" スクリーンショット 2020-07-26 12.48.02.png Sélectionnez le canal dont vous souhaitez être informé et cliquez sur Ajouter une intégration Webhook entrante. スクリーンショット 2020-07-26 12.48.52.png Faites une copie de l'URL du Webhook à utiliser en l'incorporant dans votre code. スクリーンショット 2020-07-26 12.49.01.png

Ceci termine les réglages! !!

3. Création de code (URL de zoom + texte de l'e-mail)

Définissez le paramètre URL du Webhook entrant, envoyez le canal de slack, envoyez le nom, l'icône, le message et envoyez avec la commande curl.

/shellscript/Saturday_execute


#!/bin/bash

#################################################################################
#Envoyez un e-mail avec l'URL pour assister à la session d'étude du samedi matin
#Aperçu:Définissez le paramètre URL du Webhook entrant, envoyez le canal de slack, envoyez le nom, l'icône, le message et envoyez avec la commande curl.
#Date d'éxecution:Tous les samedis 9h55
#################################################################################

#Notifier la chaîne "Session d'étude" de Slack(URL des Web Hooks entrants)
WEBHOOKURL="URL du Webhook entrant copié"

###############################################################
#Créer une chaîne de texte fixe
###############################################################
#canal d'envoi mou
CHANNEL="#groupe d'étude"
#nom de l'expéditeur détendu
BOTNAME="Avis d'information sur la session d'études"
#icône de mou
FACEICON=":snail:"  #J'utilise l'icône de léchage. Si vous souhaitez modifier le paramètre, "https"://www.webfx.com/tools/emoji-cheat-sheet/"utilisation.
#Contenu du message
MESSAGE="Je vais commencer une session d'étude à partir de maintenant.\n Veuillez saisir à partir de l'URL ci-dessous.\n ■ Heure: de 10h00 à 17h00\n <zoom URL>"

curl -X POST --data-urlencode "payload={\"channel\": \"${CHANNEL}\", \"username\": \"${BOTNAME}\", \"icon_emoji\": \"${FACEICON}\", \"text\": \"${MESSAGE}\" }" ${WEBHOOKURL}

Le contenu du code stocke simplement la chaîne de caractères dans une variable et l'envoie avec la commande curl! !!

・ Si vous ne comprenez pas le fonctionnement de base, voyez ci-dessous! Commande de base du script shell ・ Si vous ne savez pas comment utiliser la commande curl, voyez ci-dessous! options de commande curl

4. paramètres cron (planification des travaux)

Lorsque vous atteignez ce point, tout ce que vous avez à faire est de définir "exécuter le programme spécifié à l'heure spécifiée"! !! ■ La planification des travaux est une fonction qui exécute automatiquement un programme spécifié à une heure spécifiée. Les deux types suivants

・ Cron --Exécution automatique sur une base régulière --Composé de commandes crond et crontab · À --Exécution automatique une seule fois --Spécifier un script avec une entrée standard

Cette implémentation sera notifiée chaque semaine, nous allons donc le faire avec cron. Maintenant, définissons le fichier "/ shellscript / Saturday_execute" pour qu'il s'exécute à "9:55 chaque semaine".

python


$ crontab -e      #Commencez avec l'option e
スクリーンショット 2020-07-26 14.13.17.png

Passez en mode insertion avec i et entrez ce qui suit

crontab


# (Minutes)(Temps)(journée)(Mois)(曜journée)Chemin de la commande à exécuter
55 9 * * sat bash ./shellscript/Saturday_execute    #Tous les samedis à 9h55 "samedi"_exécuter "fichier exécuter

#Après la saisie, appuyez sur la touche esc:Économisez avec wq

Appuyez sur la touche exc: Enregistrez avec wq et vous avez terminé! !! !!

Une notification sera envoyée à slack comme ça. スクリーンショット 2020-07-26 14.26.05.png

Si vous ne connaissez pas les détails de cron, veuillez vous référer à ce qui suit.

Effectuer un traitement régulier avec cron Je veux arrêter d'utiliser des nombres pour spécifier le jour au format ron

Recommended Posts

[Shell script] C'est ennuyeux d'envoyer le même contenu chaque semaine, alors j'ai essayé de l'automatiser! !! !!
Je n'ai pas compris le redimensionnement de TensorFlow, alors je l'ai résumé visuellement.
J'ai essayé de gratter YouTube, mais je peux utiliser l'API, alors ne le faites pas.
J'ai essayé de l'étendre pour que la base de données puisse être utilisée avec le logiciel d'analyse de Wiire
J'ai essayé d'automatiser l'arrosage du pot avec Raspberry Pi
J'ai essayé de rendre possible l'envoi automatique d'un e-mail en double-cliquant simplement sur l'icône [GAS / Python]
J'ai essayé de déplacer le ballon
J'ai essayé d'estimer la section.
Lorsque j'ai essayé d'exécuter Python, j'ai été ignoré dans le Microsoft Store
Python -J'ai essayé de restaurer la notation complète du dictionnaire dans sa forme d'origine-
Touches de karaoké assorties ~ J'ai essayé de le mettre sur Laravel ~ <en route>
L'arbre.plot_tree de scikit-learn était très simple et pratique, j'ai donc essayé de résumer comment l'utiliser facilement.
Dans IPython, quand j'ai essayé de voir la valeur, c'était un générateur, donc je l'ai inventé quand j'étais frustré.
Je voulais connaître le nombre de lignes dans plusieurs fichiers et j'ai essayé de l'obtenir avec une commande
J'ai essayé de résumer la commande umask
J'ai essayé de résumer la modélisation graphique.
J'ai essayé d'estimer le rapport de circonférence π de manière probabiliste
J'ai essayé de toucher l'API COTOHA
J'ai essayé de publier mon propre module pour pouvoir l'installer
Lorsque j'ai essayé de changer le mot de passe root avec ansible, je ne pouvais pas y accéder.
J'ai essayé d'automatiser le dépôt de 100 yens des courses de chevaux Rakuten (python / sélénium)
[EN DIRECT] J'ai essayé de fournir les heures de lever et de coucher du soleil dans tout le pays chaque jour
J'ai essayé de récupérer les données de l'ordinateur portable en le démarrant sur Ubuntu
J'ai essayé d'automatiser le travail de masquage du visage de l'image de coordination pour l'usure
J'ai essayé d'envoyer automatiquement la littérature du nouveau virus corona à LINE avec Python
J'ai essayé de créer OneHotEncoder, qui est souvent utilisé pour l'analyse des données, afin qu'il puisse atteindre l'endroit qui démange.