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

您所在的位置:网站首页 linux批量执行命令脚本 linux计划任务运行python文件可能遇到的问题

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

2023-06-23 10:35| 来源: 网络整理| 查看: 265

有需求在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的为准



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3