AirtestProject 【Linux crontab 定时任务】自动打开手机上的云音乐 APP

fishfish-yu · 2022年03月03日 · 2077 次阅读

此文章来源于项目官方公众号:“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

呀~这么认真都看到这里啦,帮忙点击左下角的爱心,给我点个赞支持一下把,灰常感谢~

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册