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

1,868 阅读4分钟

此文章来源于项目官方公众号:“AirtestProject”
版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途

1. 前言

上一期的推文 【Windows定时任务】自动打开手机上的云音乐APP 中,我们实现了Windows定时任务,虽然很简单,不过实际工作中,我们可能更多的是用服务器来跑任务。

所以今天我们简单了解下如何使用 crontab 在linux服务器上实现定时任务

2. 在服务器上跑通任务

我们首先要做的事情,是在准备好的服务器上,先跑通我们的测试任务。这里有2点需要关注的:

  • 一个是把我们的跑测脚本,上传到服务器的指定目录上;
  • 另一个是部署好跑测的python环境

前2次教程中,我们都是自动获取本地在线设备来进行自动化任务的,但是在服务器上,我们就不能再获取本地设备来进行自动化任务了,因为我们大概率不会直接把设备插在服务器的主机上面使用。

所以这次教程,关于获取设备这部分的脚本,会有所改变。我们本次演示的设备,会直接获取“网易私有云方案”搭建的“机柜集群”上面的设备,小伙伴们可以根据自己公司的设备集群方案,来获取一些设备进行自动化任务。

假设脚本修改好以后,我们上传到了 home/ 目录下,脚本的名称为 auto_start.py

我们也可以简单地通过一些命令,来看下是否上传成功,例如:

1.png

1)部署python环境

今天我们演示的脚本,只涉及到了airtest语句,所以我们在linux的python环境安装上最新的airtest库即可:

pip3 install airtest

如果脚本包含poco语句,还需要安装上pocoui。安装成功后,可以使用 pip3 list 查看:

2.png

2)运行测试脚本

脚本上传成功,python环境部署好之后,我们就可以在服务器上运行下我们的测试任务了:

python3 home/auto_start.py

run.gif

(为了方便同学们观察效果,这里打开了机柜设备的云真机页面

3. 使用crontab创建定时任务

确保可以在服务器上跑通我们的脚本之后,就可以利用crontab服务来创建我们的定时任务,实现无人值守的情况,也可以自己完成这个启动指定应用的小任务。

crontab定时任务的教程,推荐查看这个链接的教程,写的非常详细:linuxtools-rst.readthedocs.io/zh_CN/lates…

1)编辑crontab文件:crontab -e

使用 crontab -e 指令,可以打开crontab文件并对它进行编辑:

crontab_e.gif

刚打开文件时,是命令模式,我们需要按下键盘的i键,切换到输入模式,然后再来输入我们的crontab命令。

2)新增crontab条目

使用i键切换到输入模式之后,可以看到底部会提示 --INSERT--,此时我们可以在注释后面新增一个定时任务的条目,比如:

# 每天上午10:30连接机柜设备并自动打开设备上的云音乐APP
30 10 * * * python3 home/auto_start.py

编辑好之后,可以按下ESC,退出输入模式,进入命令模式。之后按下 : 键,进入底线命令模式,再输入 wq 回车,即保存文件并退出:

crontab.gif

PS:这里默认编辑crontab文件时,使用的是 vim编辑器 ,不会用vim编辑器的小伙伴们可以看文档 www.runoob.com/linux/linux…

3)查看crontab文件等待被执行

我们可以使用 crontab -l 来查看我们编辑好的crontab文件,然后就可以坐等定时任务被触发了:

6.png

如果我们发现,手动执行该任务没有问题,但定时任务就是不执行,此时就需要特别关注下环境变量的问题了。在刚才提到的教程中,有详细讲解,同学们如果遇到这种情况,可以参考下: linuxtools-rst.readthedocs.io/zh_CN/lates…

4)关于crontab的文件格式

crontab文件包含6列,每一列都用一个空格分隔:

* * * * * 命令

前面5个 * 分别代表:分 时 日 月 星期,按照这个格式,我们可以生产出非常丰富的定时任务:

7.png

详见:linuxtools-rst.readthedocs.io/zh_CN/lates…

4. 小结

今天的Linux crontab定时任务就分享到这里。对于熟练Linux的同学来说,应该问题不大;新手Linux同学,也可以找一个服务器,按照教程多熟悉一下。


AirtestIDE下载:airtest.netease.com/
Airtest 教程官网:airtest.doc.io.netease.com/
搭建企业私有云服务:airlab.163.com/b2b

官方答疑 Q 群:117973773

呀~这么认真看到这里啦,帮忙点击左侧的大拇指,给我点个赞支持一下吧,灰常感谢!