8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

通过 Crontab 运行 Python 脚本不起作用

Thyag 2月前

248 0

因此,我编写了一个脚本来汇总一些新闻通讯并通过 Telegram 发送给我。该脚本本身运行完美。现在我尝试每天早上 7 点通过 Ubun 上的 crontab 运行此脚本...

因此,我编写了一个脚本来汇总一些新闻通讯并通过 Telegram 发送给我。该脚本本身运行完美。现在,我尝试每天早上 7 点通过 Ubunutu 服务器上的 crontab 运行此脚本。日志文件看起来不错,我在脚本中使用的每个 print() 都正常显示而没有错误,但它不会发送消息。

我的 Crontab 命令:

00 12 * * * DISPLAY=:0 /usr/bin/python3 /root/data/App/Briefing/main.py >> /home/main.log &2>1

Python 脚本:

主程序

import ai as AiHandler
import mail as MailHandler
import send as Telegram
import pandas as pd
from datetime import date
def start():
    files = MailHandler.scanEmails()
    files = AiHandler.summarize(files)

    print(files)

    data = pd.read_csv('checkpoint.csv', sep=';')
    checkpoint = createMsg(data)

    s = f"morgentliches Briefing vom {date.today().strftime("%d.%m.%Y")}".replace(".", "\\.")

    s += "\n\n\n  *Die* *Lage* *am* *Morgen* *\\-* *Spiegel*\n\n\n" + createMsg(pd.read_csv('spiegel.csv', sep=';'))

    s += "\n\n\n  *Berlin* *\\-* *Tagesspiegel* *Checkpoint*\n\n\n" + checkpoint

    s += "\n\n\n *Tech* *Update* *\\-* *ManagerMagazin* \n\n\n" + createMsg(pd.read_csv('manager.csv', sep=';'))  


    Telegram.sendMessage(s)
    

def createMsg(data):

    s = ""

    for i in range(5):

        thema = data['Thema'][i].replace('*', '\\*')
        zsm = data['Zusammenfassung'][i].replace('*', '\\*')

        s += "\t" + "*" + thema + "*" + "\n"
        s += zsm + "\n"
    
    s = s.replace("-", "\\-")
    s = s.replace(".", "\\.")
    s = s.replace("(", "\\(")
    s = s.replace(")", "\\)")
    #s = s.replace("*", "\\*")
    s = s.replace("!", "\\!")

    return s
start()

发送.py

import telebot

def sendMessage(msg):
    bot = telebot.TeleBot("XXXXXX")
    bot.send_message(chat_id="@morgenbriefing", text=msg, parse_mode="MarkdownV2")

我尝试将 DISPLAY:=0 添加到 crontab 命令中,但没有帮助

帖子版权声明 1、本帖标题:通过 Crontab 运行 Python 脚本不起作用
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Thyag在本站《ubuntu》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 我有示例日期(必须是 RFC3339 格式)2021-07-23T14:07:21Z接下来有一个端点需要该日期让我们说/setdateNext我想使用另一个端点验证它是否设置正确...

    我有示例日期(必须是 RFC3339 格式) 2021-07-23T14:07:21Z

    接下来有一个端点需要该日期,比如说/setdateNext,我想使用另一个端点/getdate作为示例来验证它是否设置正确。问题是第二个端点返回这个日期,因为它 2021-07-23T16:07:21+02:00 实际上是相同的日期,但它的字符串不同,所以我不能简单地在机器人框架中比较这两个。是否有任何机器人框架关键字来创建两个日期对象,当我们比较它们的值时它们会相同?

    编辑:

    这怎么可能?

    Documentation:  
    
    Fails if the given objects are unequal.
    Start / End / Elapsed:  20240513 21:06:22.031 / 20240513 21:06:22.031 / 00:00:00.000
    21:06:22.031    DEBUG   Argument types are:
    <class 'datetime.datetime'>
    <class 'datetime.datetime'>     
    21:06:22.031    FAIL    2021-07-23 14:07:21+02:00 != 2021-07-23 12:07:21
    

    我怎样才能比较两个日期时间对象,因为它们不是字符串???

    另一个大问题 xDDD

    def main():
        d1 ='2021-07-23T14:07:21+00:00'
        d2='2021-07-23T14:07:21Z'
        res = compare_rfc_dates(d1, d2)
        print(res)
    

    印刷:

    2021-07-23 14:07:21+00:00 2021-07-23 14:07:21
    False
    

    与日期时间对象进行比较。有人可以解释一下这是什么意思吗?

返回
作者最近主题: