AirtestProject 【Linux crontab 定时任务】自动打开手机上的云音乐 APP
此文章来源于项目官方公众号:“AirtestProject”
版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途
1. 前言
上一期的推文 【Windows 定时任务】自动打开手机上的云音乐 APP 中,我们实现了 Windows 定时任务,虽然很简单,不过实际工作中,我们可能更多的是用服务器来跑任务。
所以今天我们简单了解下如何使用 crontab
在 linux 服务器上实现定时任务 。
2. 在服务器上跑通任务
我们首先要做的事情,是在准备好的服务器上,先跑通我们的测试任务。这里有 2 点需要关注的:
- 一个是把我们的跑测脚本,上传到服务器的指定目录上;
- 另一个是部署好跑测的 python 环境
前 2 次教程中,我们都是自动获取本地在线设备来进行自动化任务的,但是在服务器上,我们就不能再获取本地设备来进行自动化任务了,因为我们大概率不会直接把设备插在服务器的主机上面使用。
所以这次教程,关于获取设备这部分的脚本,会有所改变。我们本次演示的设备,会直接获取 “网易私有云方案” 搭建的 “机柜集群” 上面的设备,小伙伴们可以根据自己公司的设备集群方案,来获取一些设备进行自动化任务。
假设脚本修改好以后,我们上传到了 home/
目录下,脚本的名称为 auto_start.py
。
我们也可以简单地通过一些命令,来看下是否上传成功,例如:
1)部署 python 环境
今天我们演示的脚本,只涉及到了 airtest 语句,所以我们在 linux 的 python 环境安装上最新的 airtest 库即可:
pip3 install airtest
如果脚本包含 poco 语句,还需要安装上 pocoui。安装成功后,可以使用 pip3 list
查看:
2)运行测试脚本
脚本上传成功,python 环境部署好之后,我们就可以在服务器上运行下我们的测试任务了:
python3 home/auto_start.py
(为了方便同学们观察效果,这里打开了机柜设备的云真机页面)
3. 使用 crontab 创建定时任务
确保可以在服务器上跑通我们的脚本之后,就可以利用 crontab 服务来创建我们的定时任务,实现无人值守的情况,也可以自己完成这个启动指定应用的小任务。
crontab 定时任务的教程,推荐查看这个链接的教程,写的非常详细:https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/crontab.html 。
1)编辑 crontab 文件:crontab -e
使用 crontab -e
指令,可以打开 crontab 文件并对它进行编辑:
刚打开文件时,是命令模式,我们需要按下键盘的 i 键,切换到输入模式,然后再来输入我们的 crontab 命令。
2)新增 crontab 条目
使用 i 键切换到输入模式之后,可以看到底部会提示 --INSERT--
,此时我们可以在注释后面新增一个定时任务的条目,比如:
# 每天上午10:30连接机柜设备并自动打开设备上的云音乐APP
30 10 * * * python3 home/auto_start.py
编辑好之后,可以按下 ESC,退出输入模式,进入命令模式。之后按下 : 键,进入底线命令模式,再输入 wq 回车,即保存文件并退出:
PS:这里默认编辑 crontab 文件时,使用的是 vim 编辑器 ,不会用 vim 编辑器的小伙伴们可以看文档 https://www.runoob.com/linux/linux-vim.html 。
3)查看 crontab 文件等待被执行
我们可以使用 crontab -l
来查看我们编辑好的 crontab 文件,然后就可以坐等定时任务被触发了:
如果我们发现,手动执行该任务没有问题,但定时任务就是不执行,此时就需要特别关注下环境变量的问题了。在刚才提到的教程中,有详细讲解,同学们如果遇到这种情况,可以参考下: https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/crontab.html#id20 。
4)关于 crontab 的文件格式
crontab 文件包含 6 列,每一列都用一个空格分隔:
* * * * * 命令
前面 5 个 * 分别代表:分 时 日 月 星期,按照这个格式,我们可以生产出非常丰富的定时任务:
详见:https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/crontab.html#id10 。
4. 小结
今天的 Linux crontab 定时任务就分享到这里。对于熟练 Linux 的同学来说,应该问题不大;新手 Linux 同学,也可以找一个服务器,按照教程多熟悉一下。
Airtest 官网:https://airtest.netease.com/
Airtest 教程官网:https://airtest.doc.io.netease.com/
搭建企业私有云服务:https://airlab.163.com/b2b
官方答疑 Q 群:117973773
呀~这么认真都看到这里啦,帮忙点击左下角的爱心,给我点个赞支持一下把,灰常感谢~