solaris自动化管理.ppt_第1页
solaris自动化管理.ppt_第2页
solaris自动化管理.ppt_第3页
solaris自动化管理.ppt_第4页
solaris自动化管理.ppt_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Solaris系统管理,第四部分 自动化管理,1.系统资源的定时调用,计划任务,是任务在约定的时间执行已经计划好的工作,这是表面的意思。在UINX中,我们经常用到 cron 服务来完成这项工作。cron服务可以根据配置文件约定的时间来执行特定的作务。比如我们可以在配置文件中约定每天早上4点,对httpd 服务器重新启动,这就是一个计划任务;,1.系统资源的定时调用,可以使用crontab将系统设定在每天、每周和每月的某个时刻自动运行某个命令或者应用程序,实现系统资源的循环定时调用。在不需要人工干预的情况下, 还可以设定好将系统执行信息记录在某个文件之中,我们定期查看这些文件,以了解系统执行情况。可以使用 crontab 命令来调度例程系统管理任务,使其每日、每周或每月执行一次。,1.系统资源的定时调用,每日 crontab 系统管理任务可能包括以下内容: 从临时目录中删除几天前的文件 执行记帐摘要命令 使用 df 和 ps 命令捕获系统快照 执行每日安全监视 运行系统备份 每周 crontab 系统管理任务可能包括以下内容: 重新生成 catman 数据库以供 man -k 命令使用 运行 fsck -n 命令以列出任何磁盘问题 每月 crontab 系统管理任务可能包括以下内容: 列出在特定月份中未使用的文件 生成每月记帐报告 此外,用户还可以调度 crontab 命令以执行其他例程系统任务,例如发送提醒和删除备份文件。,1.系统资源的定时调用,crontab 仅仅是一个文本文件,可以用任何 UNIX 编辑器编辑它。它可以包含四种代码行:空行、注释、环境变量设置和命令。 空行和注释 文件中的空行和多余的空格被忽略。空行和空格有助于提高 crontab 的可读性,使 crontab 组织有序。还可以使用注释对每个作业的时间表和用途加以说明。要想创建注释,只需在一行的开头加上一个井号(#)。,1.系统资源的定时调用,环境变量和命令 cron 最终使用一个 shell 执行每个命令。可以通过环境变量修改或定制 shell 的行为。 cron 预定义了五个环境变量: PATH 的默认值是 /usr/bin:/bin。 SHELL 预设置为 /bin/sh。 LOGNAME 初始化为 crontab 所有者的用户名。 HOME 设置为 crontab 所有者的主目录,比如 /home/joe。 MAILTO 设置为 crontab 所有者的名称。 要想修改这些默认值或设置任何变量,只需在 crontab 中设置适当的环境变量。,1.系统资源的定时调用,cron 概念 cron 守护进程是一个由实用程序和配置文件组成的小型子系统,在几乎所有类 UNIX 系统上都可以找到某种风格的 cron。cron 的组件包括守护进程本身;一组系统范围的配置文件;一组针对特定用户的配置文件;一个用来添加、修改和删除用户配置文件的实用程序;以及一个简单的访问控 制设施。一般来说,cron 配置文件或 cron 作业的列表被称为 crontab 或 cron 时间表。 守护进程 cron 连续运行,每分钟检查一次配置文件中的修改。cron 读取系统范围的和针对用户的 crontab、相应地更新事件调度计划并执行这一分钟内应该执行的所有命令。这个守护进程还捕捉每个作业的输出(如果有输出的话),并把结果通过电子邮 件发送给作业的所有者。,1.1 配置文件,/usr/sbin/cron 守护进程检查 /var/spool/cron/crontabs文件来查看某个指定命令被调度执行的时间。如果命令已经调度,守护进程就会执行它们。 查看crontab文件内容: #crontab l 10 3 * * * /usr/sbin/logadm 15 3 * * 0 /usr/lib/fs/nfs/nfsfind,1.1 配置文件,这个格式的前一部分是对时间的设定,后面一部分是要执行的命令,如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后在这里直接调用这个脚本就可以了,调用的时候记得写出命令的完整路径。 时间的设定我们有一定的约定,前面五个*号代表五个数字: * * * * * 用户名 命令 文件(file)中的每一行格式为 minute hour day-of-month month-of-year day-of-week username commands 2 3 4 5 6 7,1.1 配置文件,cron 配置计划任务的书写格式 分钟 小时 日 月 周 用户名 命令 10 3 * * * /usr/sbin/logadm 说明: 第一段应该定义的是:分钟,表示每个小时的第几分钟来执行。范围是从0-59 第二段应该定义的是:小时,表示从第几个小时来执行,范围是从0-23 第三段应该定义的是:日期,表示从每个月的第几天执行,范围从1-31 第四段应该定义的是:月,表示每年的第几个月来执行,范围从1-12 第五段应该定义的是:周,表示每周的第几天执行,范围从0-6,其中 0表示星期日。 每六段应该定义的是:用户名,也就是执行程序要通过哪个用户来执行,这个一般可以省略; 第七段应该定义的是:执行的命令和参数。调用的时候记得写出命令的完整路径,1.1 配置文件,若要20分钟执行一次某个任务,可以这样写: 0,20,40 * * * * command 若要5分钟执行一次某个任务,可以这样写: 0,5,10,15,20,25,30,35,40,4,50,55 * * * * command solaris下的crontab和linux下不一样,linux支持 */5 表示每5分钟一次 */20 表示每20分钟一次 而solaris不支持,1.1 配置文件,例1:在每天的早上8点30分重新启动机器,就可以在/var/spool/cron/crontabs/root中加入下面的两句,第一句就注释,以#号开始,后面写一个自己能知道这是什么任务的备注; # reboot OS 30 8 * * * root /sbin/reboot 例2:每天早上6点 0 6 * * * echo “Good morning.“ /tmp/test.txt /注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。 例3:每小时 0 * * * * echo “Have a break now.“ /tmp/test.txt,1.1 配置文件,例3:晚上11点到早上8点之间每两个小时,早上八点 0 23-7/2,8 * * * echo “Have a good dream:)“ /tmp/test.txt 例4:每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点 0 11 4 * 1-3 command line 例5:1月1日早上4点 0 4 1 1 * command line,1.2 编辑crontab 文件,cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/var/spool/cron/crontabs,因此我们配置这个文件也能运用cron服务做一些事情。用crontab配置是针对某个用户的,而编辑crontab是针对系统的任务。 Crontab命令: 用法 :crontab file | -e | -l | -r user crontab l:列出当前用户的crontab文件。 crontab l username: 列出指定用户的crontab文件。(root用户) crontab e:编辑当前用户的crontab文件。 crontab e username: 编辑指定用户的crontab文件。(root用户) crontab r: 删除当前用户的crontab文件。 crontab r username: 删除指定用户的crontab文件。(root用户),1.2 编辑crontab 文件,编辑方法: (1)直接编辑 /var/spool/cron/crontabs/ 下对应用户的crontab文件,如/var/spool/cron/crontabs/root文件。 (2) 使用命令 crontab -e ,Ctrl+D是保存退出编辑模式,Ctrl+Z是不保存退出编辑模式。一旦Ctrl+D会将原有crontab内容全部replace,一定要小心操作。 注意:如果不能编辑crontab文件,请检查/etc/cron.d/cron.allow中是否有当前用户,同时确保/etc/cron.d/cron.deny中没有你现在使用的账户。 编辑完毕,需要重新启动cron服务,或者让cron服务重新读取使配置文件生效。,1.3 cron自动调用服务,/usr/sbin/cron进程 Solaris 9: 服务名:/etc/init.d/cron 启动服务: /etc/init.d/cron start 停止服务: /etc/init.d/cron stop Solaris 10: 服务名: svc:/system/cron 启动服务:svcadm enable cron 停止服务:svcadm disable cron 重启服务:svcadm restart cron 重读配置文件: svcadm refresh cron 启停cron进程: 1. 先杀掉cron进程,可以用ps ef|grep cron 得出id号,kill -9 PID 2. rm /etc/cron.d/FIFO 3. /usr/bin/cron启动进程,2.系统资源一次性定时调用,at命令,可以使系统在以后的某个时刻执行一项命令或程序,从而实现系统资源的调用。 at命令格式 at -m time date at命令参数: -m执行完后给执行用户邮件通知。 time执行命令的时间,以小时或分钟表示。 data执行命令的时间,以天数表示。 操作说明:在 at 提示符下,键入要执行的命令或脚本,每行一个。 通过在每行结尾处按回车键,可以键入多个命令。 按 Ctrl-D 组合键,以退出 at 实用程序并保存 at 作业。 at 作业将被分配一个队列编号,它也是该作业的文件名。退出 at 实用程序时将显示该编号。,2.系统资源一次性定时调用,2.at命令应用实例 (1)创建定期执行的任务 在早上7:30删除/home/goodcjh/*.tmp文件的任务: $ at -m 7:30 at rm /home/goodcjh/*.tmp at Press Control-D job 897355800.a at Thu Jul 12 730:00 2008 稍后用户goodcjh到一封确认已执行 at 作业的电子邮件。 Your “at” job “rm /home/goodcjh/*.tmp ” completed.,2.系统资源一次性定时调用,(2)验证at命令 要验证您是否已创建了 at 作业,请使用 atq 命令。在以下示例中,atq 命令确认已将属于 goodcjh 的 at 作业提交至队列。 $ atq Rank Execution Date Owner Job Queue Job Name 1st Jul 12, 2008 19:30 goodcjh 897355800.a a stdin 2nd Jul 14, 2008 23:45 goodcjh 897543900.a a stdin 3rd Jul 17, 2008 04:00 goodcjh 897732000.a a stdin,2.系统资源一次性定时调用,(3)显示 at 作业 以下示例显示 at -l 命令的输出,该输出提供有关用户已提交的所有作业的状态信息。 $ at -l 897543900.a Sat Jul 14 23:45:00 2008 897355800.a Thu Jul 12 19:30:00 2008 897732000.a Tue Jul 17 04:00:00 2008 以下示例显示使用 at -l 命令指定单个作业时所显示的输出。 $ at -l 897732000.a 897732000.a Tue Jul 17 04:00:00 2008,2.系统资源一次性定时调用,(4)删除at命令建立的任务 在以下示例中,用户要删除计划在 7 月 17 日凌晨 4 点执行的 at 作业。首先,该用户显示 at 队列,以找到作业标识号。然后,用户从 at 队列中删除此作业。最后,该用户验证是否已从队列中删除此作业。 $ at -l 897543900.a Sat Jul 14 23:45:00 2003 897355800.a Thu Jul 12 19:30:00 2003 897732000.a Tue Jul 17 04:00:00 2003 $ at -r 897732000.a 使用命令验证一下任务是否删除了: $ at -l 897732000.a at:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论