centos 自动运行python脚本和配置 Python 定时任务

下面是 CentOS 中自动运行 Python 脚本和配置 Python 定时任务的完整攻略。

一、自动运行 Python 脚本

1.1 配置crontab

CentOS5.x 系统自带cron服务,CentOS6.x及以上系统安装时默认安装此服务,具体安装方法为:

sudo yum install cronie

安装完成后,启动cron服务

sudo systemctl start crond.service

在 CentOS 中,可以通过配置 crontab 文件来实现定时执行 Python 脚本。

crontab -e

然后在打开的文件中添加以下内容:

# 每分钟运行 /path/to/python/script.py 脚本
* * * * * /path/to/python/script.py

保存并退出。

1.2 编写py脚本

下面给出一个 Python 脚本的示例,该脚本会定时向指定邮箱发送一条测试邮件。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import smtplib
from email.mime.text import MIMEText

# 发送邮件的信息
to_list = ['your.email@example.com']
mail_host = 'smtp.example.com'  # 邮件服务器地址
mail_user = 'your.email@example.com'  # 用户名
mail_pass = 'your-email-password'  # 密码或授权码

def send_mail(mail_content):
    """
    发送邮件
    :param mail_content: 邮件内容
    """
    # 设置邮件信息
    msg = MIMEText(mail_content, 'html', 'utf-8')
    msg['From'] = mail_user
    msg['To'] = ','.join(to_list)
    msg['Subject'] = '测试邮件'

    # 连接邮件服务器并发送邮件
    smtp = smtplib.SMTP(mail_host)
    smtp.login(mail_user, mail_pass)
    smtp.sendmail(mail_user, to_list, msg.as_string())
    smtp.quit()

if __name__ == '__main__':
    send_mail('<h1>测试邮件内容</h1>')

二、配置 Python 定时任务

2.1 安装 APScheduler

Python 中有一个轻量级的定时任务调度库叫做 APScheduler,在 CentOS 中可以通过以下命令进行安装:

pip install apscheduler

2.2 编写 APScheduler 示例

下面给出一个 APScheduler 的示例,该脚本会定时向指定邮箱发送一条测试邮件。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import datetime
import smtplib
from email.mime.text import MIMEText

from apscheduler.schedulers.blocking import BlockingScheduler


# 发送邮件的信息
to_list = ['your.email@example.com']
mail_host = 'smtp.example.com'  # 邮件服务器地址
mail_user = 'your.email@example.com'  # 用户名
mail_pass = 'your-email-password'  # 密码或授权码


def send_mail():
    """
    发送邮件
    """
    # 设置邮件内容
    mail_content = '<h1>测试邮件内容</h1>'
    msg = MIMEText(mail_content, 'html', 'utf-8')
    msg['From'] = mail_user
    msg['To'] = ','.join(to_list)
    msg['Subject'] = '测试邮件'

    # 连接邮件服务器并发送邮件
    smtp = smtplib.SMTP(mail_host)
    smtp.login(mail_user, mail_pass)
    smtp.sendmail(mail_user, to_list, msg.as_string())
    smtp.quit()


if __name__ == '__main__':
    scheduler = BlockingScheduler()
    # 每隔5秒执行一次 send_mail 函数
    scheduler.add_job(send_mail, 'interval', seconds=5)
    try:
        scheduler.start()
    except KeyboardInterrupt:
        scheduler.shutdown()

以上就是 CentOS 中自动运行 Python 脚本和配置 Python 定时任务的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:centos 自动运行python脚本和配置 Python 定时任务 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • python Event事件、进程池与线程池、协程解析

    Python是一门多范式编程语言,支持面向对象、函数式,以及异步编程等多种编程风格。在Python中,事件、进程池、线程池、协程等技术都可以用来实现异步编程,提高程序的并发性能。 Python Event事件 什么是Python Event事件? Python Event事件是一种简单的同步原语,用于实现线程之间的通信,特别是在多线程程序中进行条件等待和通知…

    python 2023年5月19日
    00
  • python使用pymysql操作MySQL错误代码1054和1064处理方式

    Python使用pymysql操作MySQL错误代码1054和1064处理方式 在Python中,使用pymysql操作MySQL时,可能会遇到1054和1064错误代码。以下是解决这个问题的方法: 错误代码1054 当我们使用pymysql执行SQL语句时,如果SQL语句中的列名不存在,就会出现1054错误代码。以下是解决这个问题的: 检查SQL语句中的列…

    python 2023年5月13日
    00
  • python正则表达式匹配IP代码实例

    以下是“Python正则表达式匹配IP代码实例”的完整攻略: 一、问题描述 在Python中,我们可以使用正则表达式匹配IP地址。本文将详细讲解如何使用Python正则表达式匹配IP地址,并提供两个示例说明。 二、解决方案 2.1 使用正则表达式匹配IP地址 在Python中,我们可以使用正则表达式匹配IP地址。以下是一个示例,演示了如何使用Python正则…

    python 2023年5月14日
    00
  • 解决Python print 输出文本显示 gbk 编码错误问题

    当我们在Python代码中使用print语句时,有时候会出现中文乱码问题,这是因为print输出默认使用的是ASCII编码,而中文则属于gbk编码,导致了编码不一致的问题。下面我们来详细讲解如何解决Python print输出文本显示gbk编码错误问题。 步骤1:指定输出编码格式 我们可以使用sys.stdout重新定义输出的编码格式,将其改为UTF-8编码…

    python 2023年5月31日
    00
  • Python数据分析基础之异常值检测和处理方式

    Python数据分析基础之异常值检测和处理方式 数据分析中,异常值通常是指与大部分数据值明显不同的数值,可能会严重影响分析结果的质量和准确性。因此在进行数据分析时,必须检测和处理异常值才能得到正确的结论。 异常值检测方式 在数据分析中,常用的异常值检测方式有两种: 直方图法 直方图法将数据按照一定的区间进行切分,然后通过统计每个区间中数据出现的次数,绘制出分…

    python 2023年5月13日
    00
  • 基于Python实现烟花效果的示例代码

    下面是基于Python实现烟花效果的示例代码的完整攻略。 背景介绍 烟花效果指的是在屏幕上绽放出一个漂亮的花火效果,常常用于游戏、动态壁纸等场景。Python是一种强大的编程语言,可以用来实现各种各样的应用程序,其中也包括烟花效果。 实现步骤 下面是实现烟花效果的基本步骤。 导入必要的模块。实现烟花效果需要用到turtle模块和random模块,因此需要先导…

    python 2023年5月19日
    00
  • pycharm怎么创建关联文件? pycharm创建Python文件的技巧

    PyCharm创建关联文件 在PyCharm中,可以创建关联文件,例如HTML文件、CSS文件、JavaScript文件等。创建关联文件可以方便地编辑和管理相关文件。以下是详细的攻略,介绍如何在PyCharm中创建关联文件: 创建HTML文件 可以使用PyCharm创建HTML文件,并将其与Python文件关联。以下是一个示例,演示如何在PyCharm中创建…

    python 2023年5月14日
    00
  • 详解Python中!=和is not操作符的区别

    在 Python 中,!= 和 is not 是两个不同的操作符,用于比较两个值是否不相等。它们的不同之处在于其比较的对象类型和比较方式的不同。 != 操作符 != 操作符是 Python 中用于判断两个对象是否不相等的操作符,其表达式形式为: a != b 其中,a 和 b 为需要比较的两个对象,如果它们的值不相等,则返回 True,否则返回 False。…

    python-answer 2023年3月25日
    00
合作推广
合作推广
分享本页
返回顶部