学习札记

 

 1.14 学习札记

  摘要  cron anacron  日志  ntp

   计划任务:
      1.一次性 at  batch
      2.周期性 cron anacron
     at 服务 /etc/init.d/atd restart | start|stop|
     at -l 或atq 列出任务计划   at [-m] TIME
     at -d = atrm  删除任务计划
    eg:at 23:00 2011-05-05
       at> /bin/sync
       at> /bin/sync
       at> /sbin/shutdown -h now
       at> <EOF>
     batch 系统空闲时间执行
    cron
       周期性执行任务
       使用crontab编辑、安装和浏览工作时间表
       语法:  crontab [-u user] file
              crontab [-l|r|-e]【列出|删除|编辑】
       crontab 语法介绍man 5 crontab
       服务:service crond status | start|restart|stop
       用户cron表格文件保存在/var/spool/cron/下
       系统cron表格文件保存在/etc/crontab下
       可运行的执行文件有/etc/cron.hourly /etc/cron.weekly /etc/cron.monthly
       /etc/cron.d/目录包含额外的系统crontab文件
       配置文件:cron访问控制
              /etc/cron.allow
              /etc/cron.deny
      若两者都不存在,那么就只允许根用户安装新的crontab文件;如果只

有/etc/cron.allow存在,那么根用户和所有该文件中列出的用户都可以安装crontab文件;
如果/etc/cron.deny存在,那么除了cron.deny列出的用户都可以创建crontab文件;
如果两者都存在,忽略cron.deny文件
  eg /etc/crontab文件实例
  SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
 
   crontab文件格式
    MIN   HOUR   DAY   MONTH    WEEK   COMMAND
    0-59  0-23   1-31  1-12     0-7
  
  通配符 * 任何时间都接受 , 分割时间段;- 时间段范围;/n 每个n单位时间
  eg: 59 23 1 5 * mail kiki < /home/dmtsai/lover.txt
      */5 * * * * /home/dmtsai/test.sh
     anacron 运行计算机关机时cron不运行的任务
     配置文件 /etc/anacrontab
    # /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

1 65 cron.daily  run-parts /etc/cron.daily
7 70 cron.weekly  run-parts /etc/cron.weekly
30 75 cron.monthly  run-parts /etc/cron.monthly
     字段1 :如果在这些日子里没有运行这些任务
     字段2 :在重新引导后等待这么多分钟后运行
     字段3:任务识别器
     字段4:要执行的任务
   系统日志
        日志守护进程 :syslogd 、klogd
     日志文件实例
         /var/log/dmesg:内核引导信息
         /var/log/maillog:邮件系统信息
         /var/log/messages:标准系统出错信息
         /var/log/secure:安全、认证和xinetd信息
         /var/log/audit/audit.log 内核审计信息
        应用程序日志文件和目录也保存在/var/log/中
    服务: /etc/init.d/syslog
          service syslogd restart | start | stop
 
  配置系统日志
       /etc/syslog.conf
  # Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*       /dev/console

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none  /var/log/messages

# The authpriv file has restricted access.
authpriv.*      /var/log/secure

# Log all the mail messages in one place.
mail.*       -/var/log/maillog


# Log cron stuff
cron.*       /var/log/cron

# Everybody gets emergency messages
*.emerg       *

# Save news errors of level crit and higher in a special file.
uucp,news.crit      /var/log/spooler

# Save boot messages also to boot.log
local7.*      /var/log/boot.log
分析:
Syslog的规则分成三部分:设备名,优先级和log文件存储路径。下面第一列列出了所有的设

备名。下面第二列列出了所有的优先级。
auth               Debug
authpriv           Info
daemon             Notice
cron               Warning
ftp                Error
lpr                Critical
kern               Alert
mail               Emergency
news
syslog
user
uucp
local0-local7
  配置 /etc/sysconfig/syslog
# Options to syslogd
# -m 0 disables 'MARK' messages.
# -r enables logging from remote machines
# -x disables DNS lookups on messages recieved with -r
# See syslogd(8) for more details
SYSLOGD_OPTIONS=" -m 0"
# Options to klogd
# -2 prints all kernel oops messages twice; once for klogd to decode, and
#    once for processing with 'ksymoops'
# -x disables all klogd processing of oops messages entirely
# See klogd(8) for more details
KLOGD_OPTIONS="-x"
#
SYSLOG_UMASK=077
# set this to a umask value to use for all log files as in umask(1).
# By default, all permissions are removed for "group" and "other".
 

   额外补充
      摘要:
      选择符(seletor)

选择符由 facility 和 level 两部分组成,之间用一个句点(.)连接。这两部分将在后面

syslogd 小节中详细描述。下面提到的名字和 /usr/include/syslog.h 中的 LOG_-values

相一致。

facility 指定了产生日志的子系统,可以是下面的关键字之一:

代码:
auth  由 pam_pwdb 报告的认证活动。
authpriv 包括私有信息(如用户名)在内的认证活动
cron  与 cron 和 at 有关的信息。
daemon  与 inetd 守护进程有关的信息。
ftp  与 FTP 有关的信息
kern  内核信息,首先通过 klogd 传递。
lpr  与打印服务有关的信息。
mail  与电子邮件有关的信息
mark  syslog 内部功能用于生成时间戳
news  来自新闻服务器的信息
syslog  由 syslog 生成的信息
user  由用户程序生成的信息
uucp  由 uucp 生成的信息
local0 ~ local7 由自定义程序使用,例如使用 local5 做为 ssh 功能
*  通配符代表除了 mark 以外的所有功能在大多数情况下,任何程序都可以

通过任何 facility 发送日志消息,但是一般都遵守约定俗成的规则。比如,只有内核才能

使用"kern" facility 。

level 指定了消息的优先级,可以是下面的关键字之一(降序排列,严重性越来越低):

代码:
emerg 系统不可用
alert 需要立即被修改的条件
crit 阻止某些工具或子系统功能实现的错误条件
err 阻止工具或某些子系统部分功能实现的错误条件
warning 预警信息
notice 具有重要性的普通条件
info 提供信息的消息
debug 不包含函数条件或问题的其他信息
none 没有优先级,通常用于排错
* 除了none之外的所有级别facility 部分可以是用逗号(,)分隔的多个子系统,而多

个 seletor 之间也可以通过分号(组合在一起。需要注意的是,多个组合在一起的选择符,

后面的会覆盖前面的,这样就允许从模式中排除一些优先级。

默认将对指定级别以及更严重级别的消息进行操作,但是可以通过下面2个操作符进行修改。

等于操作符(=)表示仅对这个级别的消息进行操作,不等操作符(!)表示忽略这个级别以及更

严重级别的消息。这两个操作符可以同时使用,不过"!"必须出现在"="的前面。

动作(action)
这个字段定义了对符合条件的消息进行何种操作,可以选择下列操作之一:

普通文件
将消息记录到这个文件中,必须使用绝对路径。如果在文件名之前加上减号(-),则表示不将

日志信息同步刷新到磁盘上(使用写入缓存),这样可以提高日志写入性能,但是增加了系统

崩溃后丢失日志的风险。
命名管道
在绝对路径表示的FIFO文件(使用mkfifo命令创建)前加上管道符号(|)即可。通常用于调试。

比如:|/usr/adm/debug
终端或者控制台
比如:/dev/tty1 或 /dev/console
远程主机
syslogd 能够将消息发送到远程主机或从远程主机接收消息,不过默认并不转发接收到的消

息。要将消息发送到远程主机,可以在主机名前加一个"@"即可。
逗号分隔的用户名列表
critical 级别的消息除了记录到日志之外,通常还转发到root用户。
所有当前登录的用户
如果写上一个星号(*)则表示向当前所有登录的用户显示这条消息。

实例
下面的例子来自于实践,希望能够对上面的内容做一个很好的示范以帮助理解。

代码:
  # 将所有 crit 级别的消息(排除所有内核消息)记录在 critical 文件中
              #
              *.=crit;kern.none            /var/adm/critical

              # 首先记录所有内核消息到 kernel 文件,
              # crit 级别以上的消息转发到远程同时在本地控制台也显示
              # 最后将info(包含)~err(不含)范围的内核消息记录到kernel-info文件(err

和更高的级别被忽略)
              #
              kern.*                       /var/adm/kernel
              kern.crit                    @finlandia
              kern.crit                    /dev/console
              kern.info;kern.!err          /var/adm/kernel-info

              # 将恰好等于mail.info的消息显示在第12个终端(tcpd默认使用mail.info)
              #
              mail.=info                   /dev/tty12

              # 将除mail.info之外的所有mail子系统消息记录到mail文件
              #
              mail.*;mail.!=info           /var/adm/mail

              # 将所有mail.info和news.info消息记录到info文件
              #
              mail,news.=info              /var/adm/info

              # 记录所有info和notice级别的消息,来自mail子系统的除外
              #
              *.=info;*.=notice;mail.none  /var/log/messages

              # 记录所有info级别的消息,来自mail和news子系统的除外
              #
              *.=info;mail,news.none       /var/log/messages

              # 向所有登录用户通知emerg级别的消息
              #
              *.=emerg                     *

              # 将所有alert以及更高级别的消息转发到root,joey用户的终端上(如果他们

已经登录)
              #
              *.alert                      root,joey

              # 将所有子系统的所有消息都发送到远程名为"finlandia"的主机
              *.*                          @finlandia


      网络时间协议
    NTP
   配置文件  /etc/ntp.conf
     restrict default ignore
     restrict 127.0.0.1
     restrict 192.168.0.254
     driftfile /var/lib/ntp/drift
     broadcastdelay 0.008

     server instructor.example.com
     restrict instructor.example.com mask 255.255.255.255 nomodify notrap noquery
      server 127.127.1.0
  配置工具 system-config-date  或 system-config-time

 

 

 


   

 

你可能感兴趣的:(日志,ntp,cron,anacron,休闲)