Điểm:0

cronjob không hoạt động để gửi tin nhắn hàng ngày cho Slack

lá cờ us

Ubuntu 20.04
trăn 3.8

Tôi đang cố gắng gửi tin nhắn đến kênh chùng hàng ngày vào lúc 9 giờ sáng bằng crontab.

Tiếp theo https://www.youtube.com/watch?v=5bTkiV_Aadc&t=482s crontab hoạt động thành công khi tôi ghi vào tệp nhật ký mỗi phút.

Tuy nhiên, sao chép cùng một phương pháp để gửi tin nhắn chậm dường như không hoạt động và không thể tìm ra lý do cho việc đó.

Đây là những gì tôi đã thử cho đến nay (tham khảo: Tại sao tập lệnh crontab không hoạt động?)

Đầu tiên, đây là mã của tôi trông như thế nào:

từ dotenv nhập load_dotenv
nhập ngày giờ
nhập numpy dưới dạng np
nhập hệ điều hành
nhập gấu trúc dưới dạng pd
từ đường dẫn nhập pathlib
nhập plotly.graph_objects khi đi
nhập khẩu chùng

# ---- Bình luận -----
# từ extract_data nhập DataExtraction
# từ const nhập inf_type, slack_channel
# env_path = Đường dẫn('.') / '.env'
# load_dotenv(dotenv_path=env_path)
# --------------

ngày = (datetime.date.today() - datetime.timedelta(days=1)).strftime("%Y%m%d")
dir_path = os.path.dirname(os.path.realpath(__file__))
tên tệp = os.path.join(dir_path, 'test_log.log')

# Tiều phu
người ghi nhật ký = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
file_handler = logging.FileHandler(tên tệp)
file_handler.setLevel(logging.INFO)
file_handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s'))
logger.addHandler(file_handler)

chắc chắn write_to_log():
    logger.info("kiểm tra")


nếu __name__ == "__main__":
    write_to_log()
  1. Đoạn mã trên chỉ hoạt động trên crontab nếu tôi nhận xét một phần khi tôi đang sử dụng biến môi trường hoặc nhập tập lệnh.

  2. Sau khi kiểm tra nó hoạt động để ghi vào tệp nhật ký, việc thay thế ghi vào nhật ký để gửi tin nhắn đến Slack dường như không hoạt động.

Đây là mã thay thế (tất cả các mã trên đều giống nhau)

def send_msg():
    khách hàng = chùng.WebClient(token="Token_name")
    client.chat_postMessage(channel="#slackbot_test", text="hello")

nếu __name__ == "__main__":
    send_msg()

Hiện tại không có may mắn trong việc tìm kiếm nếu crontab không hoạt động với Slack, mọi trợ giúp sẽ được đánh giá cao, cảm ơn!

Điểm:0
lá cờ it

Công việc chạy qua cron, hoặc hệ thống tập lệnh khởi động không chạy trong cùng một môi trường thời gian chạy mà bạn có trên máy tính để bàn của mình. hệ thống kịch bản khởi động được chạy như nguồn gốc. Không ai trong số bạn CON ĐƯỜNG các thay đổi hoặc cài đặt biến môi trường khác sẽ tự động được truyền tới cron Công việc. Ví dụ, không có $HIỂN THỊ, vì vậy các chương trình GUI cần được xử lý đặc biệt (đọc người đàn ông xhost).

Người ta có thể đặt các biến môi trường cho tất cả mọi người cron công việc trong crontab tập tin Đọc người đàn ông 5 crontab.

Nhìn vào kết quả của echo "=== id ==="; id;echo "=== set ==="; set; echo "=== env ==="; env | sort;echo "=== bí danh ==="; bí danh trong mỗi môi trường của bạn.

Kể từ khi chỉ huy một phần của crontab theo mặc định, dòng được giải thích bởi /bin/sh, có cú pháp đơn giản hơn /bin/bash, tôi khuyên bạn nên có chỉ huy là một cuộc gọi đến một đánh đập tập lệnh (có thể thực thi, được gắn kết, bắt đầu bằng #!/bin/bash) thiết lập môi trường, sau đó gọi chương trình mong muốn.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.