天天看點

學習劄記

 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> /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

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

學習劄記
學習劄記

繼續閱讀