【Linux】使用1Panel 面板让服务器定时自动执行任务
服务器就是一台24小时开机的主机,相比自己家中不定时开关机的主机更适合完成定时任务,例如下载资源、备份上传,或者登录某个网站执行一些操作,只需要编写 脚本,然后让服务器定时来执行这个脚本就可以。
有很多方法实现定时任务,例如:
- Linux 自带的 systemctl
- 一些第三方应用,如 1panel 面板
当初为了高效管理 docker 应用,给服务器选装了1Panel 面板。最近又看见面板自带了计划任务功能,这里就采用面板来实现定时任务。
点击创建计划任务,有多种类型,如果只是每几个小时执行一个 python 脚本,就选择第一种
这里需要注意,面板默认以 root 用户来执行命令,权限并非越高越好。如果我们以某个普通用户来安装的环境,如pip install
,可能运行脚本过程中,会有一些import
异常。
我们先随便写一个命令,执行周期不用管,来测试一下执行命令的用户
确认后,点击执行(立即运行一次任务),再查看报告,发现命令是以 root 用户执行的。
我们希望是以普通用户,如 ubuntu,执行脚本。重新创建任务,修改命令为:
sudo -u ubuntu /home/ubuntu/xxx.py
用绝对路径指定脚本,执行周期根据个人需要修改,可以有多个周期。
确认后,记得手动点击执行,看下结果有没有报错。
这里只展示了最基础的用法,还可以指定容器来运行命令。比手写 systemctl 要方便一些。