Рейтинг:0

cronjob не работает для ежедневного обмена сообщениями для слабости

флаг us

Убунту 20.04
питон 3.8

Я пытаюсь отправить сообщение на слабый канал каждый день в 9 утра, используя crontab.

Следующий https://www.youtube.com/watch?v=5bTkiV_Aadc&t=482s crontab успешно работает, когда я пишу в файл журнала каждую минуту.

Однако повторение того же метода для слабых сообщений, похоже, не работает и не может найти причину этого.

Вот что я пробовал до сих пор (ссылка: Почему скрипты crontab не работают?)

Во-первых, вот как выглядит мой код:

из dotenv импортировать load_dotenv
импорт даты и времени
импортировать numpy как np
импорт ОС
импортировать панд как pd
из пути импорта pathlib
импортировать plotly.graph_objects как есть
импортировать слабину

# ---- Закомментирован -----
# из Extract_data импортировать DataExtraction
# из const import inf_type, slack_channel
# env_path = Путь('.') / '.env'
# load_dotenv(dotenv_path=env_path)
# --------------

date = (datetime.date.today() - datetime.timedelta(days=1)).strftime("%Y%m%d")
dir_path = os.path.dirname (os.path.realpath (__file__))
имя_файла = os.path.join(dir_path, 'test_log.log')

# Регистратор
logger = logging.getLogger(__name__)
logger.setLevel(регистрация.INFO)
file_handler = logging.FileHandler(имя файла)
file_handler.setLevel(регистрация.INFO)
file_handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s'))
logger.addHandler (обработчик_файла)

определение write_to_log():
    logger.info ("тест")


если __name__ == "__main__":
    write_to_log()
  1. Приведенный выше код работает в crontab, только если я закомментирую часть, когда использую переменную среды или импортирую скрипт, который делает это.

  2. После проверки он работает для записи в файл журнала, замена записи в журнал на отправку сообщения в слабину, похоже, не работает.

Вот замененный код (все приведенные выше коды одинаковы)

защита send_msg():
    клиент = slack.WebClient(token="Token_name")
    client.chat_postMessage(channel="#slackbot_test", text="привет")

если __name__ == "__main__":
    send_msg()

В настоящее время не удается найти, если crontab не работает с slack, любая помощь будет оценена, спасибо!

Рейтинг:0
флаг it

Вакансии проходят через хрон, или же системад сценарии запуска не запускаются в той же среде выполнения, что и на вашем рабочем столе. системад сценарии запуска запускаются как корень. Ни один из ваших ДОРОЖКА изменения или другие параметры переменных среды автоматически распространяются на ваш хрон работа. Например, нет $ ДИСПЛЕЙ, поэтому программы с графическим интерфейсом нуждаются в особом подходе (читай человек).

Можно установить переменные окружения для всех своих хрон рабочие места в кронтаб файл Читать человек 5 кронтаб.

Посмотрите на результаты echo "=== id ===";id;echo "=== set ===";set;echo "=== env ===";env | sort;echo "=== псевдоним ===";псевдоним в каждой из ваших сред.

Поскольку команда часть кронтаб строка по умолчанию интерпретируется /бин/ш, который имеет более простой синтаксис, чем /бин/баш, рекомендую иметь команда быть призывом к бить скрипт (исполняемый, смонтированный, начинается с #!/бин/баш), который настраивает среду, а затем вызывает нужную программу.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.