摘要 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