和at命令类似,控制使用crontab命令的文件存在/etc/cron.d目录下,即cron.deny和cron.allow两个文件。这两个文件与用户名相联系,一个用户名在文件中列为一行。控制文件是这样工作的:
具体解释如下:其中f1是表示分钟,f2表示小时,f3表示一个月份中的第几日,f4表示月份,f5表示一个星期中的第几天。program表示要执行的程序。
cron守护进程是一个由实用程序和配置文件组成的小型子系统,在几乎所有类UNIX系统上都可以找到某种风格的cron。cron的组件包括守护进程本身;一组系统范围的配置文件;一组针对特定用户的配置文件;一个用来添加、修改和删除用户配置文件的实用程序;以及一个简单的访问控制设施。一般来说,cron配置文件或cron作业的列表被称为crontab或cron时间表。
可以使用crontab将系统设定在每天、每周和每月的某个时刻自动运行某个命令或者应用程序,实现系统资源的循环定时调用。在不需要人工干预的情况下,还可以设定好将系统执行信息记录在某个文件之中,定期查看这些文件,以了解系统执行情况。可以使用crontab命令来调度例程系统管理任务,使其每日、每周或每月执行一次。
/etc/at.allow和/etc/at.deny文件可以用来限制对at令的使用,所以可以编辑/etc/cron.d/at.deny文件并添加要禁止其使用at命令的用户名,每行一个用户名。
at作业将在7月的最后一天接近午夜时删除用户账户cjh的core文件,使用命令:
在 Solaris 系统上,许多管理任务必须频繁地定期执行。这些任务包括轮转日志文件以避免装满文件系统、备份数据和连接时间服务器来执行系统时间同步。上面提到的教程更详细地介绍了这些管理任务。在本章中,将学习Solaris中提供的调度机制,包括cron设施及crontab和at命令。
Solaris 10是一个令人激动的,创新的操作环境。它提供了比现有的桌面操作系统更多的功能,然而,你需要注意的是,它需要更多的管理开销。在本书中,我们希望提供管理练习,提供解决很多Solaris相关问题的实践技术,为企业级用户提供最好的训练。
邮件列表是和同事进行交流和讨论的很好的方式。Sun管理员列表是最著名的Sun列表,包括提问、回答和大多数以前提问的重要概要。包括了所有和Solaris相关的主题。可以在ftp://ftp.cs.toronto. edu/pub/jdd/sun-managers/faq找到详细的介绍。另外,在http://www.egroups.com/group/solarisonintel可以找到Intel平台(x86)的Solaris列表。这里为Solaris9新手提供了一些重要的提示、窍门和建议,但它们对于特定的硬件配置或许有些困难。
USENET(新闻组)是提问题,找答案,并分享你的技术和意见以帮助其他人的巨大资源。这并不是一个必需的无私的行为,总有一些你不能回答的关于Solaris9的问题,如果以前你曾经帮助过别人,他们将会记住你。comp.UNIX.solaris论坛是获得有关Solaris信息并进行讨论的最好的新闻组。最好的实用Solaris信息来源可以在Solaris的FAQ中找到,它由传说中的CasperDik维护。你总可以在http://www.wins.uva.nl/pub/solaris/solaris2/找到最新的版本。对于Intel平台的Solaris用户来说,alt.solaris.x86论坛并不是非常正式,在那里关于微软Windows双启动的问题或者非SPARC硬件的问题或许并不会得到很好的答复。对于Intel平台的Solaris,最好的FAQ在http://sun.pmbc.com/faq/。对于Intel和SPARC两个平台而言,comp.sys.sun.admin是最好的处理系统管理问题的新闻组,在ftp://thor.ece.uc.edu/pub/sun- faq/FAQs上也可以找到FAQ。
你可以利用很多第三方的站点,这些站点是专门关于Sun和Solaris的。例如,如果你在寻找Solaris FAQ,或者想获得Sun的信息,可以试试Sun帮助站点(http://www.sunhelp.org/)。如果你想得到免费的预编译的软件,可以在Sun免费软件站点(http://www.sunfreeware.com/),或者很多镜像站点中的一个去看看。在这里你可以找到预编译包的GNU的C编译器(Sun在Solaris2.x到Solaris8中并没有使用这个编译器,导致在很多Solaris的论坛上会频繁地出现这样的问题:"为什么Solaris的C编译器不能工作?")。对于Intel平台的Solaris用户来说,在ftp://x86.cs.duke.edu/pub/solaris-x86/bins/上可以发现预编译二进制代码的一个存档。
和一些操作系统不同的是,Solaris 10在文档光盘中有完整的在线指南和用户手册,它包含所有的Solaris 10版本(Intel和SPARC)。手册是PDF格式的,包括很大范围的系统管理主题,如下所示。
OpenSolaris是一个由Sun发起的开放源代码计划,用来建立以Solaris操作系统为主的开发者社区,专案的适用对象主要是开发者(也就是软件设计师、程序员)、系统管理者(资讯管理师、资管师、资管员)及使用者(用户),透过这些人期望能使Solaris获得进一步的发展与强化。此开放源代码专案已有超过12000人上专案官方网站(http://OpenSolaris.org)并注册成为社区会员,其中有超过11000名会员都不是Sun Microsystems的员工(表示不是强迫自己公司同仁去充量注册才造就为数众多的会员),由此可知OpenSolaris的用户团体社区(User Group Community)相当活络,且仍在持续成长中,有越来越多来自全球各地的人加入响应。此外在官方网站上也有12个OpenSolaris的技术社区与专案已发起并取得进展。
如果Solaris只是为运行在SPARC硬件上而设计的,那么Sun可以在SPARC上赚到钱,为什么Sun还要支持Intel版本呢?对于初学者而言,世界上的Intel系统要比SPARC系统多。Sun和Intel还有历史上的关系,Intel在80386和80486中支持SunOS4.x。然而,正是因为这样,Sun开发了SPARC的CPU,它是现在UltraSPARC系列CPU的先驱。基于Intel的系统也可以在工作站环境中运行,比SPARC系统要便宜得多。因为Sun的生意主要在服务器硬件上,所以它为Intel工作站开发可靠的(它自己的高端服务器也支持)操作系统。
Solaris支持多种系统架构:SPARC、x86和x64。x64即AMD64及EMT64处理器。在版本2.5.1的时候,Solaris曾经一度被移植到PowerPC架构,但是后来又在这一版本正式发布时被删去。与Linux相比,Solaris可以更有效地支持对称多处理器,即SMP架构。Sun同时宣布将在Solaris 10的后续版本中提供Linux运行环境,允许Linux二进制程序直接在Solaris x86和x64系统上运行。
预测及自我修复技术是通过联机错误检测和自动恢复提供的一种应急方案。Solaris 10能够通过Solaris Fault Manager提前删除故障组件,从而使CPU、存储器和I/O问题可以在几秒钟内得到诊断和纠正。硬件和应用程序监控对系统管理员和用户是透明的,并且所有服务信息和相关性均存储在一个中央存储库中,因此能使错误报告得到简化
DTrace是一种实时调试和性能调优的工具,传统的UNIX或Windows有一些系统工具可以提供一些系统信息,但缺乏跟踪每个用户和每个进程的能力,DTrace允许编程人员通过观察UNIX用户/内核间的控制流来看其应用程序与内核间的交互活动,DTrace有简单易学的D语言,可构建自定义程序以动态跟踪系统,并使得对有关操作系统的任意问题提供即时简明的回答成为可能。
Solaris 10是最具有里程碑意义的。从此,Solaris走向了开源,代码不再专门由Sun公司的操作系统专家编写。也就是说,下一个版本的Solaris将是由开源社区的众多自由软件开发者编写的。
Sun Microsystems是由Stanford和Berkeley两所大学的毕业生创建的,他们使用Stanford大学的硬件和Berkeley大学的软件来开拓企业工作站市场。他们希望通过提供空前的CPU速度和成熟的桌面操作系统来和大型机厂商直接竞争。对于一个给定的价格而言,使用Sun工作站可以获得比使用任何大型机都高的性能。这一成功破坏了传统的使用哑终端和非常智能但非常昂贵的大型机系统进行通信的客户/服务器市场。
图1-3绘出了UNIX系统的高层次的体系结构。图中心的硬件部分向操作系统提供基本服务。操作系统直接与硬件交互,向程序提供公共服务,并使它们同硬件特性隔离。当我们把整个系统看成层的集合时,通常将操作系统称为系统内核,或简称内核,此时强调的是它同用户程序的隔离。因为程序是不依赖于其下面的硬件的,所以,如果程序对硬件没做什么假定的话,就容易把它们在不同硬件上运行的UNIX系统之间迁移。比如,那些假定了机器字长的程序就比没假定机器字长的程序更难以搬到其他机器上。外层的程序,诸如shell及编辑程序(vi),是通过引用一组明确定义的系统调用而与内核交互的。这些系统调用通知内核为调用程序做各种操作,并在内核与调用程序之间交换数据。图1-3中出现的一些程序属于标准的系统配置,就是大家所知道的命令。但是由名为a.out的程序所指示的用户自有程序也可以存在于这一层。此处的a.out是被C编译程序产生的可执行文件的标准名字。其他应用程序能在较低的程序层次之上构筑而成,因此它们存在于图1-3的最外层。比如,标准的C编译程序cc就处在图1-3的最外层;它引用C预处理程序、两次编译程序、汇编程序及装入程序(称为连接-编译程序),这些都是彼此分开的底层程序。虽然图1-3对应用程序只描绘了两个级别的层次,但用户能够对层次进行扩充,直到级别的数目适合于自己的需要。确实,为UNIX系统所偏爱的程序设计风格鼓励把现存程序组合起来去完成一个任务。