Ubuntu 20.04
python 3.8
Încerc să trimit un mesaj către canalul slack în fiecare zi la 9 dimineața folosind crontab.
Ca urmare a https://www.youtube.com/watch?v=5bTkiV_Aadc&t=482s crontab funcționează cu succes când scriu în fișierul jurnal în fiecare minut.
Cu toate acestea, replicarea aceleiași metode la mesajele slăbite pare să nu funcționeze și nu poate găsi un motiv pentru aceasta.
Iată ce am încercat până acum (referință: De ce nu funcționează scripturile crontab?)
În primul rând, iată cum arată codul meu:
din dotenv import load_dotenv
import datetime
import numpy ca np
import os
import panda ca pd
din calea de import pathlib
import plotly.graph_objects pe măsură ce merge
import slack
# ---- Comentat -----
# din extract_data import DataExtraction
# din const import inf_type, slack_channel
# env_path = Cale('.') / '.env'
# load_dotenv(dotenv_path=env_path)
# --------------
data = (datetime.date.today() - datetime.timedelta(zile=1)).strftime("%Y%m%d")
dir_path = os.path.dirname(os.path.realpath(__file__))
nume de fișier = os.path.join(dir_path, 'test_log.log')
# Logger
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
file_handler = logging.FileHandler(nume fișier)
file_handler.setLevel(logging.INFO)
file_handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s'))
logger.addHandler(file_handler)
def write_to_log():
logger.info(„test”)
if __name__ == "__main__":
scrie_în_log()
Codul de mai sus funcționează pe crontab numai dacă comentez o parte când folosesc variabila de mediu sau import script care o face.
După ce ați verificat că funcționează pentru scrierea în fișierul jurnal, înlocuirea scrierea în jurnal cu trimiterea mesajului la slack nu pare să funcționeze.
Aici este codul înlocuit (tot codul de mai sus este același)
def send_msg():
client = slack.WebClient(token="Token_name")
client.chat_postMessage(channel="#slackbot_test", text="helllo")
if __name__ == "__main__":
trimite_msg()
Momentan nu ai noroc în căutarea dacă crontab nu funcționează cu slack, orice ajutor ar fi apreciat, mulțumesc!