Linux Crontab运行PyAutoGUI的问题

在Linux Crontab下运行PyAutoGUI跑不起来,查看日志发现是因为报错 `KeyError: ‘DISPLAY’`,也就是找不到显示设备。

用户正常登录了桌面,也没有锁定屏幕,PyAutoGui还是没有找到显示设备,

其实在使用Crontab时,会遇到很多正常操作时不会遇到的问题,比如PHP/Python脚本不能常驻运行,`gsettings`命令执行无效等,包括PyAutoGui不能正常运行,这是因为Crontab是一个受限的环境,需要额外给它传递环境变量才可以。

Ubuntu Crontab中执行gsettings命令的问题

在Ubuntu下你可能会有这么个需求,定时更换壁纸,或者定时设置系统代理,首先想到的应该是通过Crontab定时任务去执行`gsettings`命令,这样可以做到更换壁纸或设置系统代理。

脚本写好了,手动测试下没有问题,设置好Crontab让它定时执行,到了设置的时间点,定时任务也执行了,也没报错,但就是没有生效。

问题出在哪呢?

Squid配置无需认证的代理

在上一篇中我们讲到使用Squid和Stunnel创建代理服务,其中配置的Squid是需要认证的,也就是需要提供用户名密码才可以访问代理服务。

在一些对安全性要求不高的场景下,可能不需要这种认证,直接访问就好了。

怎么实现呢?

Django新建模型后执行makemigrations提示无更改

Django下新建了一个app,名为test,并在其下的`models.py`中编写好了模型,但是执行迁移`python manage.py makemigrations`却提示`No changes detected`,也就是没有检测到模型的更改。

再把app的名字也加上

提示又变为`No installed app with label ‘test’`,看来是没有找到这个app。

阿里云自动创建ECS并分配公网IP

阿里云可以通过API自动化管理ECS实例,包括创建、启动、停止、释放、分配IP等操作,对于自动化的运维来说非常方便。

官方文档中给出了通过Python SDK创建和批量创建ECS的示例代码,虽有点小问题,但基本上可以用。

首先是硬盘类型的选择,`cloud_ssd`基本不可用了,会报错,改为企业级固态,即`cloud_essd`,代码如下

豫ICP备19001387号-1