unix系统管理员喜爱cron jobs。它定时执行那些平时你必须依靠人工来运行的任务的能力真不是盖的。不幸的是,许多Windows的管理员从来不这么做,虽然这么做的工具早就包 含在Windows里了。这也许是因为当初这个在老NT版本的Windows Server中所提供的该工具前身(A.T. scheduler)异常难以使用,而且常常很不可靠的缘故所致。不过,从 Windows 2000开始,就已经开始使用全新的定时调度工具了。
工作
我们的邮件网关是一个运行在Windows 2003标准版上的IIS6 SMTP。虽然这个系统已经证明自己还算相当的可靠,我发现依旧还有很多事情必须手工完成。我偶尔会不得不去手工清 空坏邮件文件夹,因为它不会自动清空,并且会占据大量的磁盘空间。服务器也会长期连续运行而没有过重启动,但偶尔会由于IP地址改变而造成邮件传送问题,于是我不得不手 工重启服务器,或手工清理DNS的缓存。同样,偶尔我也会因为其他原因不得不重新手工启动SMTP服务,有时甚至不得不手工重启整台服务器。因为这些零星的任务都不是我们平时 的主要工作内容,它们常常会被拖延直到产生了问题,因为实际上这些事情太容易被忘记了,毕竟我们有那么多的其他事情要做。
工具
在又一次发生坏邮件文件夹占满硬盘剩余空间的事情之后,我急急忙忙冲过去对它进行了清理,然后我决定必须做点什么来改变这种情况。现在要做的应该是提前预防问题,而不 是等待问题出现之后再来善后。在仔细检查了所有必须要进行的任务之后,我发现看起来所有的任务我都可以在命令行完成。虽然Windows已经推行了很久的图形界面,我们中的一 些人依旧还记得当初使用DOS作为主要操作系统的时代,那时候我们的大部分工作都是在命令行状态完成的(微软正在倾听这些人推崇命令行的呼声。Windows Power Shell也已经 进入了Beta测试版阶段,并承诺可以完成类似*nix命令Shell的绝大多数功能。你可以在这里下载:
[url]http://www.microsoft.com/windowsserver2003[/url]
/technologies/management/powershell/default.mspx)。
我也了解,你可以简单的创建一个批处理文件,找到你要用到的命令, 拷贝到剪贴板上,最后将它们使用.bat作为文件后缀保存。这会创建一个可运行的执行文件。用任务调度实用工具(Task Scheduler utility)将这些批处理文件组成队列,看起 来是天作之合。虽然我对任务调度工具有些疑虑,我还是要指出它非常值得尝试,因为它不但免费,而且一旦使用了它,在其他系统上也有大量的可供使用之处。
使用批处理文件和任务调度程序进行测试
起初我通过书写批处理文件来清理坏邮件目录,重起SMTP服务,以及清理DNS缓存。由于这些并不需要每天进行,所以任务调度工具可以很容易的安排它们每周单独执行一次。唯一 的困难是决定要用到的参数开关,让整个脚本过程完全自动化。幸好,通过在命令行使用“/?”这样的参数,可以看到该命令的帮助文件,其中列出了所有可用的参数。确认了最 初的运行成功后,简单的设置一下,然后就可以不用再管它了。
工具是否适合工作?
在看到所有的事情都运行得很顺利之后,我们可以很容易的想出这套工具的新用途。第一个想到的是结束三班倒的重启。Windows Server 2003有Shutdown命令,可以让你在命令行 关机或重启系统。这个命令在Windows XP中也有,并且允许你关闭一台远程电脑。这个命令让你可以在本地工作站上使用一个脚本重启系统,而无须对服务器添加任何东西。在 Windows 2000的资源工具包中也有该工具的一个版本,可以用于较老的系统。现在,使用批处理文件和任务调度程序已经成为我们公司的标准习惯。而这也极为明确的表明,这个 工具对于我们要进行的工作来说,是再合适不过了。