linux计划任务运行python文件可能遇到的问题

文章讲述了在Linux环境中部署Python项目时,如何使用脚本和计划任务进行自动化运行。提到了脚本批量执行命令和计划任务定时执行的重要性,并提供了创建bash脚本及使用crontab设置计划任务的示例。还强调了在处理路径时使用绝对路径以及检查Python解释器位置的技巧。
摘要由CSDN通过智能技术生成

有需求在linux上部署python项目,记录一下遇到的问题

部署后一般都是用脚本或者计划任务来运行的,不会直接python main.py
然后发现命令行启动和用计划任务启动会有些不一样的情况

先说下脚本和计划任务有什么用
脚本可以批量执行写好的命令,通过运行脚本一次执行多个命令
计划任务就像闹钟,在设定好的时间自动执行任务,比如每天早上八点运行run.sh
一般脚本和计划任务都是一起使用的,先把要执行的命令写在脚本里,然后在计划任务里设置运行时间

路径

首先能用绝对路径的都使用绝对路径,使用相对路径可能会出错,包括py文件里也是
py文件修改路径的方法

#获取py文件所在的目录
dir_path = os.path.dirname(os.path.realpath(__file__))
#dirname获取的是py文件所在的绝对路径
#如果绝对路径是a/b/c/d/main.py,那dir_path就是a/b/c/d
#realpath会将软链接转换成真实路径

#路径拼接
log_name = os.path.join(dir_path, 'log.txt')
#基本等同于字符串的拼接,但是join会自动解决不同操作系统分隔符的问题

#截取文件名
os.path.basename(file)
#basename会把分隔符前的路径都去掉

脚本

vim run.sh

直接vim新建一个sh脚本

#!/bin/bash
python main.py

#!/bin/bash 是使用shell运行下面的命令
完成后:wq保存退出
这时候./run.sh就会使用命令行运行python main.py了

计划任务

crontab -e

打开计划任务列表
加入一行任务

10 11 * * * /srv/run.sh

这个任务就是每天11点10分运行/srv/run.sh
然后可以通过

crontab -l

查看已有的计划任务

tail /var/log/cron

查看计划任务的执行情况

检查python位置

方法1

which python

方法2

python #进入python环境
>>> import sys
>>> print(sys.executable)

如果两种方法得到的Python位置不一致的话,以方法2的为准

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值