linux服务器定时执行python程序

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: linux服务器定时执行python程序

1. 介绍

本篇文章主要介绍在linux服务器上定时运行.py程序脚本,并将运行的结果保存在相应的执行结果文件中

1.1环境

  • Python 3.6.8
  • pip 9.0.3

版本查看方式:

# python版本查看
[root@node-2 ~]# python --version
Python 3.6.8
# pip版本查看
[root@node-2 ~]# pip --version
pip 9.0.3 from /usr/lib/python3.6/site-packages (python 3.6)

2. py程序上传及测试

2.1py程序准备

当前代码的功能为获取当前的时间,并打印输出测试代码,脚本的文件名为get_time.py

import datetime
now = datetime.datetime.now()
print(now)
print("======================运行结束========================")

2.2脚本上传到服务器

通过XFTP等方式,将文件上传到服务器相应的路径。

当前文件上传的路径为:

/root/python-py/get_time

2.3运行测试文件

输入python  + 文件名 ,回车后,可以查看运行结果

3. shell运行脚本的创建及测试

3.1新建.sh脚本文件

进入文件夹路径,输入vim+文件名,新建一个sh后戳文件

[root@node-2 get_time]# vim /root/python-py/get_time/get_time.sh
#!/bin/bash
. /etc/profile
touch /root/python-py/get_time/get_time.log
nohup python /root/python-py/get_time/get_time.py   >> /root/python-py/get_time/get_time.log  2>&1 &

3.2为sh脚本赋予可执行权限

[root@node-2 get_time]# chmod u+x  /root/python-py/get_time/get_time.sh

赋权前:

赋权后:

3.3测试sh脚本

在脚本所在目录下,输入./脚本运行,输入ll看到多了一个日志文件

进入此日志文件查看,可以看到为py程序运行的结果,证明测试成功

4. crontab定时运行

输入crontab -e,回车进入crontab,添加定时任务代码并保存退出

[root@node-2 get_time]# crontab -e

举例:每天早上 06:30 执行一次sh脚本 ,编辑页面添加下面代码保存退出

30 6 * * * /root/python-py/get_time/get_time.sh

4.1cron表达式介绍

cron表达式一般用在定时任务中,通过特定的规则指定时间来设置任务调度,比起只能设置重复时间的simple模式更灵活

表达式结构:cron表达式从左到右用空格分隔
秒 分 时 月份中的日期(DayofMonth) 月份 星期中的日期(DayofWeek) 年

各字段的含义和允许的值:

字段

允许值

秒(Second)

0~59的整数

分(Minute)

0~59的整数

小时(Hour)

0~23的整数

日期(DayofMonth)

131的整数

月份(Month)

1~12的整数

星期(DayofWeek)

17的整数

年(Year可为空)

1970-2099

常见表达式举例:

每隔10秒执行一次:*/10 * * * * ? 
每隔1分钟执行一次:0 */1 * * * ? 
每天21点执行一次:0 0 21 * * ? 
每天凌晨1点执行一次:0 0 1 * * ? 
每月最后一天23点执行一次:0 0 23 L * ? 
每周星期天凌晨1点实行一次:0 0 1 ? * L 
在26分、29分、33分执行一次:0 26,29,33 * * * ?
相关文章
|
1月前
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
130 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
1月前
|
JSON 数据格式 Python
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
本文介绍了如何使用Python的socket模块实现客户端到服务器端的文件传输,包括客户端发送文件信息和内容,服务器端接收并保存文件的完整过程。
135 1
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
|
1月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
35 1
|
1月前
|
IDE 网络安全 开发工具
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
本文介绍了如何在PyCharm专业版中连接远程服务器并配置远程Python环境解释器,以便在服务器上运行代码。
288 0
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
|
18天前
|
缓存 监控 Linux
Python 实时获取Linux服务器信息
Python 实时获取Linux服务器信息