Linux服务器定时运行python项目
一.安装python环境
打开https://www.python.org/downloads/ 选择downloads>>All releases
选择源码安装(Gzipped source tarball),下载源码通过xshell 或者MobaXterm上传到[linux]服务器
二.解压和安装python软件包(能够使用 tar 解压则跳过)
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
sudo yum install unixODBC-devel
yum install -y gcc-c++
yum install libffi-devel -y
三.解压源码包
1.首先选择一个自己的文件夹上传刚刚上传的python软件包,比如/usr/loca/src目录下
执行解压命令
tar -xzvf Python-3.10.6.tgz
2.进入刚解压的文件Python-3.10.6中
cd /usr/local/src/Python-3.10.6
3.执行配置检测命令
./configure
4.配置检测完成之后,编译安装,执行命令:
make && make install
四.添加python环境变量
(1)查看环境变量PATH
echo $PATH
(2)用 vim 编辑器编辑环境变量配置文件
打开配置文件:
vim ~/.bash_profile
输入 i 进入编辑模式,添加如下配置:
# 配置python环境变量
export PYTHON_HOME=/root/training/Python-3.6.5
export PATH=$PYTHON_HOME/bin:$PATH
添加完成后,Esc,在输入冒号 : ,然后输入wq,enter保存并退出vim编辑器
执行命令使配置生效 :
source ~/.bash_profile
(3)执行echo命令,查看是否配置成功:
echo $PYTHON_HOME
至此 python 环境变量配置成功
五.接着进入python项目中,打开terminal终端执行命令:
pip freeze > requirements.txt
示例如下:
将python项目文件打包成zip包上传至linux服务器
上传至linux服务器后文件夹(/usr/local/src/py/ 创建该文件夹),然后再执行命令
unzip daily_morning-master.zip
解压成功后,执行命令
python3 main.py
如果提示缺失模块,示例
则 进入daily_morning-master 文件夹后 执行
pip install -r requirements.txt
直至python项目文件已经能在linux服务器上运行
六.使用Linux 中的Crontab定时执行python文件
1、安装crontab
yum install crontabs
2、检查是否安装好:
rpm -qa | grep crontab
3、安装完成后,进入到服务器/etc目录:
cd /etc
4、如下给出crontab一些基本操作:
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
service crond status //查看crontab服务状态
chkconfig --level 345 crond on //设置开机启动
6、为这个要执行的脚本赋予权限 (这一步很重要,否则定时执行调用可能不会成功)
daily_morning-master
chmod +x /user/local/src/py/daily_morning-master/main.py #添加执行权限
chmod 777 /user/local/src/py/daily_morning-master/main.py #添加最大权限
7、添加和执行crontab定时任务:
(1)进入到/etc目录 cd /etc
(2)配置定时任务 输入crontab -e 打开开编辑界面后,设置如下定时任务
*/1 * * * * python /user/local/src/py/daily_morning-master/main.py >>/user/local/src/py/daily_morning-master/main.log 2>&1 & #每分钟执行一次
或者
0 10 * * * python /user/local/src/py/daily_morning-master/main.py >>/user/local/src/py/daily_morning-master/main.log 2>&1 & #每天上午10点执行一次
(3)设置完成后,按下esc键盘,输入:wq进行保存!
(4)查看定时任务 crontab -l
(PS. 删除定时任务为 crontab -r 慎重执行!!!)
(5)开始启动定时任务
/bin/systemctl start crond.service
6)第(5)步运行后,crontab则在后台,自己默默的每一分钟运行一次test.py了!!!
(7)其他运行中需要关注的操作:
tail /var/log/cron //查看crontab日志
tail //user/local/src/py/daily_morning-master/main.log 或者 more /user/local/src/py/daily_morning-master/main.log //查看你的python运行日志
/bin/systemctl stop crond.service //停止当前定时任务
8、其他操作之查看python运行进程: ps -ef | grep python
9、其他操作之杀死所有python进行:ps aux|grep python|grep -v grep|cut -c 9-15|xargs kill -15