免责声明

在Linux桌面系统里配置定时任务,很多人第一反应都是:crontab -e,然后手写:
* * * * * date >> /tmp/test.log对于熟悉Linux的人来说,这当然没问题。但在实际运维支持过程中,经常会遇到几个问题:
有人不熟悉cron表达式,不知道每一列分别代表什么;
有人怕改错crontab,影响原有任务;
有人只是想简单配置一个定时执行命令,却不得不打开终端、查语法、改文件、再验证;
还有一些桌面用户,本身并不习惯命令行操作。
所以这次就尝试做了一个小工具:定时任务配置工具。它的目的是把常用的crontab配置操作做成图形化界面,让普通用户也能更直观地新增、编辑、禁用、立即执行和删除定时任务。
01
这个工具解决什么问题?
这个工具不是重新实现一套定时任务机制,也不是替代系统的cron服务。它只是给Linux自带的crontab做了一个图形化管理入口。也就是说:
图形界面负责配置
crontab负责保存任务
cron服务负责真正执行
这样做的好处是,软件关闭以后,任务仍然会按照系统cron服务正常执行。相比自己写一个后台调度程序,这种方式更稳,也更符合Linux系统本身的使用习惯。
02
测试环境
本次主要在两个国产桌面系统上进行了测试。从实际测试结果来看,工具在统信UOS和银河麒麟上都可以正常安装和使用。
01
统信UOS桌面系统
测试环境为统信桌面操作系统专业版:SystemName=UOS DesktopSystemName[zh_CN]=统信桌面操作系统ProductType=DesktopEditionName=ProfessionalMajorVersion=20MinorVersion=1070OsBuild=11418.104.100内核信息:Linux pdsyw1024 4.19.0-amd64-desktop

02
银河麒麟桌面操作系统
麒麟测试环境为:NAME="Kylin"VERSION="银河麒麟桌面操作系统V10 SP1"PRETTY_NAME="Kylin V10 SP1"VERSION_ID="v10"KYLIN_RELEASE_ID="2503"内核信息:Linux pdsyw1024 5.4.18-142-generic

03
安装
软件安装完成后,打开主界面,可以看到整体功能比较简单:
检测cron服务
重新读取
新增任务
保存到crontab
页面中间是任务列表,可以看到任务状态、任务名称、cron表达式、执行命令以及操作按钮。这个工具没有做得很复杂,主要就是围绕“定时任务配置”这个核心场景展开。

04
新增一个定时任务
点击“新增任务”后,可以填写任务名称、执行周期和执行命令。周期配置支持两种方式,第一种是选择常用周期,例如:
每分钟执行一次
每5分钟执行一次
每小时执行一次
每天固定时间执行、
每周固定时间执行
每月固定日期执行
第二种是自定义cron表达式。比如:* * * * *表示每分钟执行一次。如果希望每分钟写入一次当前时间,可以填写命令:
date >> /home/pdsyw/Desktop/pdsyw.txt配置完成后,先点击“确定”,任务会进入列表。然后点击“保存到crontab”,才会真正写入系统定时任务。
01
点击新增任务

02
可选择常用周期

03
也可自定义周期

04
配置完成

05
点击保存到crontab


05
保存后crontab里是什么样?
保存以后,可以在终端查看,可以看到如下内容:这里有两个关键标记:
# ---- PDSYW_CRON_GUI_BEGIN ----# ---- PDSYW_CRON_GUI_END ----
这两个标记之间的内容由工具自动维护。这样做的好处是工具只管理自己创建的任务,不会影响用户原来手工写的其他crontab内容。
pdsyw@pdsyw1024:~/Desktop$ crontab -l# ---- PDSYW_CRON_GUI_BEGIN ----# 本区域由 PDSYW Cron GUI 自动维护,请不要手动修改。# PDSYW_META eyJpZCI6IjcwZjVlNThkLWNkZjUtNDU1Yi04MzIyLTljMDcxNmU1MjE2ZSIsIm5hbWUiOiLmtYvor5UiLCJlbmFibGVkIjp0cnVlfQ==* * * * * date >> /home/pdsyw/Desktop/pdsyw.txt# ---- PDSYW_CRON_GUI_END ----

06
禁用任务是怎么实现的?
在图形界面中点击“禁用”后,再点击“保存到crontab”。此时再次查看crontab,可以看到任务前面会加上# DISABLED。这样任务不会继续执行,但配置还保留在工具中,后续可以再次启用。这个设计比直接删除任务更安全,适合一些临时停用的场景。
pdsyw@pdsyw1024:~/Desktop$ crontab -l# ---- PDSYW_CRON_GUI_BEGIN ----# 本区域由 PDSYW Cron GUI 自动维护,请不要手动修改。# PDSYW_META eyJpZCI6IjcwZjVlNThkLWNkZjUtNDU1Yi04MzIyLTljMDcxNmU1MjE2ZSIsIm5hbWUiOiLmtYvor5UiLCJlbmFibGVkIjpmYWxzZX0=# DISABLED * * * * * date >> /home/pdsyw/Desktop/pdsyw.txt# ---- PDSYW_CRON_GUI_END ----



07
支持立即执行
有时候配置完任务后,不想等到下一个周期再验证效果。这个时候可以点击“立即执行”。比如配置的命令是:
date >> /home/pdsyw/Desktop/pdsyw.txt点击立即执行后,可以直接查看目标文件是否产生内容。这个功能主要用于快速验证命令本身是否能正常执行。



08
支持删除任务
如果任务不再需要,可以点击“删除”。删除以后,还需要点击“保存到crontab”,这样才会真正从系统crontab中清理掉。删除后再次查看crontab -l,可以看到管理区已经变成空内容,这说明任务已经从crontab中移除。



pdsyw@pdsyw1024:~/Desktop$ crontab -l# ---- PDSYW_CRON_GUI_BEGIN ----# 本区域由 PDSYW Cron GUI 自动维护,请不要手动修改。# ---- PDSYW_CRON_GUI_END ----

09
重新读取有什么用?
如果在界面里新增了任务,但是还没有保存,这时点击“重新读取”,工具会重新从系统crontab中加载任务。也就是说,未保存的临时修改会被清理掉。这个设计比较适合防止误操作:
没保存:只是界面里的临时状态
已保存:才是真正写入crontab



Linux的crontab很强大,但对普通用户并不直观。这次做的“定时任务配置工具”,本质上就是把命令行里的crontab管理动作搬到了图形界面中。它没有改变Linux原有机制,而是做了一层更友好的操作入口:
新增任务更直观
禁用任务更方便
删除任务更安全
立即执行便于验证
保存后仍由cron服务执行
对于统信UOS、银河麒麟这类国产桌面系统来说,这种小工具虽然不复杂,但在实际运维支持中很实用。
往期回顾
PREVIOUS REVIEW


夜雨聆风