Linux上的计划任务管理利器!
2009-03-02李炳胜
李炳胜
在Windows平台上,相信大家都听说或使用过“任务计划”程序。对一些如数据备份、磁盘整理等需要定期执行的任务,人们为了避免重复劳动,经常通过创建计划任务,由系统自动执行相应的操作。
在Linux平台上,计划任务分为反复执行的任务和一次性执行的任务,这两类任务的创建与管理分别通过crontab命令和at命令来完成,而计划任务的执行是由称为crond的守护进程来完成的。虽然crontab和at命令功能很强大,但对于普通用户而言,操作起来仍很不方便。
那么在Linux平台上有没有像Windows的“任务计划”那样的程序呢?答案是肯定的,那就是GnomeSchedule(GNOME任务计划)。Gnome Schedule是基于Python语言并使用pygt,(库开发的用于计划任务管理的图形界面程序,使用它,Linux用户可以轻松地完成两类计划任务的创建、编辑、删除等工作。这里我们就以Linux发行版Ubuntu desktop 8.04(集成桌面环境为GNOME)为例,介绍一下该功能。
安装gnome-schedule
Ubuntu系统默认没有安装GnomeSchedule,我们可以直接在线从软件源中下载并安装该软件。在GNOME集成桌面环境中,打开一个X-Window终端窗口,输入以下命令来进行安装:
sudo apt-get install gnome-schedule
Gnome Schedule的当前版本为2.0.2。有时软件源中的软件包不是最新的,为了获取最新的软件包,我们也可以从站点http://gnome-schedule.sourceforge.net下载tar.gz格式的安装文件,安装时首先使用tar命令解压缩安装包:
tar-ZXVf gnome-schedule-2.0.2.tar.gz
命令执行后,将在当前目录下生成gnome-schedule-2.0.2子目录,进到该目录中,执行./configure命令进行系统环境检查,然后输入命令make进行编译,编译成功后,输入命令makeinstall进行安装。安装好后,在菜单“系统”/“首选项”下可以找到“Scheduledtasks”(计划任务)项。
创建计划任务实战
在Linux系统中,与使用命令行工具创建和管理计划任务相比,使用GnomeSchedule图形界面程序执行类似操作更加直观、方便。需要指出的是,当以普通用户身份运行Gnome Schedule时,通过程序创建的计划任务属于该用户,而不同的登录用户均可以使用GnomeSchedule创建属于自己的计划任务。
1创建反复执行的任务
反复执行的任务也称周期性任务或重复性任务,为了确认用Gnome Schedule创建的计划任务确实是反复执行的,我们让创建的任务每分钟执行一次,每执行一次则在用户本户目录下(/home/lbs)生成一个文本文件,文件名格式为“年月日时分秒.txt”,其中年份为四位年份,文件扩展名为“.txt”,使用touch命令创建这样的文件。我们将命令放到脚本文件mysh.sh中,脚本文件内容如下:
#/bin/sh
touch /home/1bs/'date+%Y%m%d%H%M%S'.txt
脚本文件创建好后,放置在用户本户目录下。使用命令:chmod U+Xmysh.sh使脚本文件成为可执行文件。可执行脚本文件mysh.sh也就是我们需要反复执行的命令。现在我们使用GnomeSchedule创建一个计划任务,用来执行该文件。在菜单“系统”/“首选项”下找到“Scheduledtasks”(计划任务)项,点击该项则运行程序。我们也可以直接在X-Window终端窗口中输入命令:gnome-schedule来运行该程序。
点击Gnome Schedule程序主界面工具栏上的“新建”按钮,出现计划任务类型选择对话框(见图1),在该对话框中列出了创建计划任务的三种方式:创建反复执行的任务,创建一次性执行的任务及从预定义模板中创建任务。因是新建反复执行的计划任务,因而我们点击对话框的第一个命令按钮“A taskthat launches recurrently”(反复执行任务),接着出现反复执行计划任务创建窗口(见图2)。
反复执行计划任务窗口大致分为三个部分:命令、日期时间设定及操作命令按钮区。在“命令”区的“description”(任务描述)栏填入任务的描述信息,如“test”,在“command”栏输入命令的完全路径,这里我们输入可执行脚本文件的完全路径,如“/home/1bs/mysh.sh”,在“command”栏下方有一复选框,勾选上则表示如果命令在控制台有输出信息时则强制其不显示,否则正常显示出来。用户可根据需要决定是否勾选该项。计划任务的“命令”设定好后,接下来是设定在什么时间执行该项任务,日期时间设置分为基本设置与高级设置。“基本”为默认项,基本设置以下拉列表框的形式列出是每分钟、每小时、每天、每月、每周还是在系统重启时执行该计划任务。而如果要精确设置计划任务的执行时间,则点选“高级”项,通过点击分、时、天、月、周日之后的编辑按钮可以对每一项进行更详细的设定。针对创建的反复执行任务,我们选择“高级”项,在“Minute”(分钟)栏填上“1”,其余栏为“*。值得指出的是,无论是基本设定还是高级设定,设定后的时间均可在预览区显示出来,非常直观方便。
任务创建完毕后,点击窗口下方的“Add as template”(添加为模板)按钮,我们可以将该任务添加到计划任务模板中,供下次创建计划任务时调用。点击“应用”按钮,则创建计划任务并显示在Gnome Schedule程序主窗口的计划任务列表中。选中列表中的该项任务后,点击工具栏上的“Run task”(运行任务)按钮,则无需等到设定的时间,就可以运行该任务了。当然,我们也可以让系统的crond守护进程为我们自动执行该项任务。
2创建一次性任务
有时,我们会碰到一些只需执行一次的管理任务,如执行完某个操作后关机等。利用GnomeSchedule,我们可以很容易地创建这种一次性计划任务。下面我们就来创建这样的任务,任务内容为获取当前系统的内存使用情况,并转存到用户本户目录下的文件mem.txt中。
点击程序工具栏上的“新建”按钮,在计划任务类型选择窗口,点击第二个命令按钮“A task that launchcs onetime”(一次性任务),则出现创建一
次性计划任务窗口(见图3)。在“TaskDescription”(任务描述)栏输入计划任务的描述信息。如“testmem”,然后是设定命令的执行日期和时间。设定日期时,我们既可以手动输入日期,也可以通过微调按钮设定日期或通过点击“Calendar”(日历)按钮,从弹出的日历中选择日期。日期时间设定好后,接着是设定一次性任务所要执行的命令(也可以是可执行脚本文件),这里我们在“Task”框内输入命令“free-m>/home/1bs/mem.txt”。与创建反复执行的任务一样,我们也可以点击窗口下方的“Add as template”(添加为模板)按钮来将该一次性任务添加到计划任务模板中,供下次创建一次性计划任务时调用。点击“应用”按钮,则创建一次性计划任务并显示在GnomeSchedule程序主窗口的计划任务列表中。选中该项任务后,点击工具栏上的“Runtask”(运行任务)按钮,则无需等到设定的时间,就可以运行一次性任务了。
3通过命令行查看或编辑创建的计划任务
通过Gnome Schedule创建了周期性任务和一次性执行任务后,我们可以通过命令行工具来查看或编辑甚至删除已创建的任务。在X-Window终端窗口中,输入命令:crontab-1,则在控制台输出当前用户的周期性任务列表,如果需要查看系统中所有用户的周期性任务列表,则需要以root用户身份执行该命令。输入命令:crontab-e则进入计划任务的编辑界面,默认的编辑器为nano,我们可以在编辑界面中对周期性计划任务进行编辑或删除它。对于有GnomeSchedule创建的一次性任务,我们可以在X-Window终端窗口中输入命令:at-1或atq来查看当前用户创建的一次性任务。也可以输入命令:at-d或atrn2来删除它。
4Gnome sCheduoe的任务模板功能
Gnome Schedule让计划任务的创建与管理变得简单,其提供的任务模板功能不仅能保存计划任务的历史副本,也使得Linux用户在创建复杂计划任务时变得异常方便、快捷。除了在创建计划任务时可添加到任务模板中,Gnome Schedule提供了单独的创建任务模板的功能,用户可根据需要事先创建许多计划任务的模板。
由于有了图形化的任务管理程序Gnome Schedule,Linux用户创建和管理系统计划任务的工作变得很轻松,即使是普通用户,也很容易上手操作。而通过使用图形化的应用程序,用户也可以加深对crontab、at等命令的理解。