virtualenv与crontab
有个小的数据对接需求,服务写完了,没弄docker镜像,就找了台ubuntu服务器准备直接运行。本来写了个for循环在mqtt中发送,结果老大表示你不如直接写个单次调用的单例,然后用crontab运行。
virtualenv
本来想用conda的,老大觉得conda太大了,不够轻量,就换成了virtualenv。
其实和conda没啥太大区别,用过conda的看一下下面的指令就明白了。
安装:
apt-get install virtualenv
创建虚拟环境:
先把终端切换到想创建虚拟环境的目录,输入下面的指令后会在当前目录下创建venv文件夹。
virtualenv -p /usr/bin/python3 venv
激活虚拟化环境:
source venv/bin/activate
crontab
用着试了下挺方便的,也不用纠结什么调度相关的问题了,crontab直接帮你解决这个问题,只需要写单例程序就可以。
打开crontab时间表:
crontab -e
# 在打开的时间表中填写我们需要的指令
# 如:20 03 * * * . /etc/profile;/bin/sh /var/www/runoob/test.sh
时间表中的时间设定:
f1 f2 f3 f4 f5 program
- 其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。
- 当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推
- 当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推
- 当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推
- 当 f1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,f2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,其馀类推
@reboot /bin/bash /home/bim/myscript.sh &
在系统开启后启动一次
其他的看上面的链接内容。