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中SOAP项目的介绍及其在web开发中的应用

    Python中SOAP项目的介绍及其在web开发中的应用 SOAP(Simple Object Access Protocol)是一种基于XML的协议,用于交换数据以及进行远程过程调用(RPC)。SOAP使用HTTP,SMTP,FTP等协议作为传输协议,可以在不同的操作系统和编程语言之间进行通信。 在Python中,有多个第三方库支持SOAP协议,例如sud…

    python 2023年6月3日
    00
  • python实现从字典中删除元素的方法

    Python语言提供了多种方法来删除字典中的元素。以下是其中的一些方法: 方法一:使用del关键字 del 是Python中的关键字,可以用来删除对象。在字典中,可以使用 del 关键字来删除指定的键值对。 示例1:删除指定key对应的值 # 定义一个字典 d = {‘a’: 1, ‘b’: 2, ‘c’: 3} # 删除key为’b’的键值对 del d[…

    python 2023年5月13日
    00
  • 如何在 Python 配置的 atom 中修复 linter-Flake8

    【问题标题】:How to Fix linter-Flake8 in atom for Python Configuration如何在 Python 配置的 atom 中修复 linter-Flake8 【发布时间】:2023-04-07 12:23:01 【问题描述】: 简介 在我将atom 安装到我的debian-ParrotOS 中用于编码python…

    Python开发 2023年4月8日
    00
  • Python 图片处理库exifread详解

    Python 图片处理库exifread详解 简介 Python 图片处理库exifread是一个用于读取JPEG, TIFF等图片的EXIF信息的库。它是基于 Python 的 Expat 解析器制作的 EXIF 读取程序。它可以帮助我们读取照片的元数据,例如日期、相机品牌、拍摄位置、ISO等信息。 安装 通过pip安装: pip install exif…

    python 2023年5月18日
    00
  • 如何提高python 中for循环的效率

    针对如何提高 Python 中 for 循环的效率这一问题,以下是我的完整攻略: 1. 使用列表推导式代替 for 循环 在 Python 中,我们通常会使用 for 循环来对一个列表或其他可迭代对象进行遍历,这样往往会导致时间效率比较低下。因此,我们可以使用列表推导式来代替 for 循环,从而提高程序的效率。例如,如果我们要对一个列表进行平方运算,常规的 …

    python 2023年5月18日
    00
  • Python中获取网页状态码的两个方法

    在Python中,我们可以使用两种方法获取网页状态码。本文将介绍这两种方法,并提供两个示例。 1. 使用requests库获取状态码 我们可以使用requests库的status_code属性获取网页状态码。以下是一个示例,演示如何使用requests库获取状态码: import requests url = ‘http://example.com’ res…

    python 2023年5月15日
    00
  • Python中flatten( )函数及函数用法详解

    Python中flatten( )函数及函数用法详解 什么是flatten()函数 flatten()函数是一个用于将多维数组“压扁”成一维数组的函数,可以将多维数组转换成一维数组。flatten()函数是Python中的numpy库中的一个函数,因此在使用之前需要先导入numpy库。 函数用法 在numpy中,flatten()函数的使用方式有两种,一种是…

    python 2023年6月5日
    00
  • python多线程请求带参数的多个接口问题

    Python多线程是一个可以用来提高程序并发性和性能的强大工具,可以在同一时间并发执行多个任务。 当我们需要向多个接口请求数据时,可以使用Python的多线程功能来提高请求速度和效率,特别是在处理大量数据的情况下。 以下是此问题的完整攻略: 1. 导入必要的库 在使用Python多线程请求接口前,需要导入必要的库,包括requests用于发送HTTP请求,t…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部