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
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiInBnaukzM1IzMyQjNx8CX1ATMxAjMvwFduVWboNWY0RXYvwVbvNmLvR3YxUjL4M3Lc9CX6MHc0RHaiojIsJye.jpg)