Score:0

cronjob ไม่ทำงานสำหรับการส่งข้อความรายวันสำหรับการหย่อน

ธง us

อูบุนตู 20.04
หลาม 3.8

ฉันพยายามส่งข้อความไปยัง slack channel ทุกวันเวลา 9.00 น. โดยใช้ 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 inf_type, slack_channel
# env_path = เส้นทาง ('.') / '.env'
# load_dotenv (dotenv_path=env_path)
# --------------

วันที่ = (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')

#คนตัดไม้
คนตัดไม้ = 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'))
คนตัดไม้.addHandler(file_handler)

def write_to_log():
    logger.info("ทดสอบ")


ถ้า __name__ == "__main__":
    เขียน_to_log()
  1. โค้ดด้านบนใช้งานได้กับ crontab ก็ต่อเมื่อฉันแสดงความคิดเห็นบางส่วนเมื่อฉันใช้ตัวแปรสภาพแวดล้อมหรือสคริปต์การนำเข้าที่ทำ

  2. หลังจากตรวจสอบว่าการเขียนไปยังไฟล์บันทึกใช้งานได้ การแทนที่การเขียนบันทึกเพื่อส่งข้อความไปยัง slack ดูเหมือนจะไม่ทำงาน

นี่คือรหัสแทนที่ (รหัสด้านบนทั้งหมดเหมือนกัน)

def send_msg():
    ลูกค้า = slack.WebClient (โทเค็น = "Token_name")
    client.chat_postMessage(channel="#slackbot_test", text="hello")

ถ้า __name__ == "__main__":
    send_msg()

ขณะนี้ไม่มีโชคในการค้นหาว่า crontab ไม่ทำงานกับ slack หรือไม่ ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม ขอบคุณ!

Score:0
ธง it

งานวิ่งผ่าน ครอน, หรือ ระบบ สคริปต์เริ่มต้นใช้งานไม่ได้ทำงานในสภาพแวดล้อมรันไทม์เดียวกันกับที่คุณมีบนเดสก์ท็อป ระบบ สคริปต์เริ่มต้นทำงานเป็น ราก. ไม่มีของคุณ เส้นทาง การเปลี่ยนแปลงหรือการตั้งค่าตัวแปรสภาพแวดล้อมอื่นๆ จะถูกส่งไปยังของคุณโดยอัตโนมัติ ครอน งาน. ตัวอย่างเช่นไม่มี $จอแสดงผลดังนั้นโปรแกรม GUI จึงต้องการการดูแลเป็นพิเศษ (อ่าน ผู้ชาย xhost).

หนึ่งสามารถตั้งค่าตัวแปรสภาพแวดล้อมสำหรับทุกคน ครอน งานใน crontab ไฟล์ อ่าน ผู้ชาย 5 crontab.

ดูผลลัพธ์ของ echo "=== id ===;id;echo "=== ชุด ==";set;echo "=== env ==";env | sort;echo "=== นามแฝง ===";นามแฝง ในแต่ละสภาพแวดล้อมของคุณ

ตั้งแต่ สั่งการ ส่วนหนึ่งของ crontab บรรทัดถูกตีความโดยค่าเริ่มต้น /ถัง/shซึ่งมีไวยากรณ์ที่ง่ายกว่า /ถัง/ทุบตีฉันขอแนะนำให้มี สั่งการ เป็นสายไปยัง ทุบตี สคริปต์ (ปฏิบัติการ, เมาต์, ขึ้นต้นด้วย #!/bin/bash) ซึ่งตั้งค่าสภาพแวดล้อมแล้วเรียกใช้โปรแกรมที่ต้องการ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา