Ubuntu18.04 LTS版本,实现python脚本每天定时启动,技术路线:crontab+shell脚本+conda+python

  • crontab配置
  • 新建测试python和bash脚本:
  • crontab设置


crontab配置

这玩意在Ubuntu系统上一堆问题,最关键的问题:设置log发送邮箱
下面一步一步来:

新建测试python和bash脚本:

python脚本:

-> python这里没什么要注意的,和正常用法一样。

python selenium在Ubuntu运行 ubuntu运行python脚本_bash

bash脚本:

-> bash脚本这里就要注意啦,整体构成包含两个部分:

——>1、conda 的环境单独设置

——>2、运行python脚本

下面详细讲一下:

python selenium在Ubuntu运行 ubuntu运行python脚本_python_02


第一部分:conda环境是用来给conda命令定向用:

——在配置文件~/.bashrc中,可以使用下面命令查看你的conda环境,把conda相关的复制过来就ok啦:

vim ~/.bashrc

第二部分:如果使用crontab,所有的路径最好使用绝对路径,如/home/ubuntu/…/test.py。使用相对路径会出现找不到文件的问题。

crontab设置

准备工作做完了!下面就来到正题了,借助crontab我们可以实现定时启动脚本,crontab是linux系统自带的,一般不需要单独安装,但在Ubuntu系统下还是有很多坑的,需要提前填填好:
配置crontab:
第一步:Ubuntu自带crontab,但其日志功能默认关闭,而crontab又不会在终端显示输出,所以我们在开始之前要先开启crontab日志,方便我们后期调试。

#用vim打开日志系统配置文件
vim /etc/rsyslog.d/50-default.conf
#找到cron.*这一行,删掉最前面的#号,如图。
#下面重启一下日志功能就ok啦
service rsyslog  restart

python selenium在Ubuntu运行 ubuntu运行python脚本_ubuntu_03

第二步,配置一下crontab的启动任务

crontab -e #配置任务

#第一次打开会提示选择编辑器,根据自己喜好选择一个就ok

python selenium在Ubuntu运行 ubuntu运行python脚本_python_04


这里红色框框是设置时间,分别是分钟、小时、天、月、周

其中号是不限制,如图中21 21 * * * 只限制了21分钟和21小时,也就是每天21:21分启动,具体其他语法大家百度一下,详细介绍的文章很多。
下一步就到绿色框框,这个大家一定要加上去,实测不加的话,log文件中会报错没有权限报错:Permission denied
黄色框框前半部分很简单,bash文件的绝对路径,后半部分意思是所有输出:echo和print这些在终端显示的输出,全部写入到>>/…/…/
.txt这个txt文件中,因为crontab没有输出显示,所有我们给他设置了一个log文件,这个log文件用来记录bash和py文件的运行情况。

第三步:设置邮箱
crontab默认把所有信息通过邮箱发送,它找不到能发送的邮箱就会报错终止。
所以我们安装邮箱服务,让它有地方输出:

#安装postfix
sudo apt-get install -y postfix
# 在新界面选择并回车,其他一律默认就好
Internet Site

这样corntab就会把信息输出到文件中,默认是/var/mail/用户名

我们用下面命令就可以查看啦,不过你看见它给你发mail了 ,就说明它报错啦!!

python selenium在Ubuntu运行 ubuntu运行python脚本_自动化_05

cat /var/mail/用户名

至此,所有的设置工作全部完成,下面就没有坑了。
使用命令:

#运行cron
service cron start
#查看cron运行情况
service cron status
#关闭cron
service cron stop
#重启cron
service cron restart

运行成功是没有特别显示的,我这里显示这么多,是因为我没用root账户,它找我要密码来着,只要用cron查询发现正常运行,mail文件没有新错误出现,那说明就ok啦

python selenium在Ubuntu运行 ubuntu运行python脚本_自动化_06