1,logrotate配置 logrotate的配置文件为:/etc/logrotate.conf。
主要参数。
参数 功能
compress通过gzip 压缩转储以后的日志 nocompress 不需要压缩时,用这个参数 copytruncate 用于还在打开中的日志文件,把当前日志备份并截断 nocopytruncate备份日志文件但是不截断 create mode owner group转储文件,使用指定的文件模式创建新的日志文件 nocreate不建立新的日志文件 delaycompress 和 compress 一起使用时,转储的日志文件到下一次转储时才压缩 nodelaycompress 覆盖 delaycompress 选项,转储同时压缩。 errors address专储时的错误信息发送到指定的Email 地址 ifempty 即使是空文件也转储,这个是 logrotate 的缺省选项。 notifempty 如果是空文件的话,不转储 mail address 把转储的日志文件发送到指定的E-mail 地址 nomail 转储时不发送日志文件 olddir directory 转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统 noolddir转储后的日志文件和当前日志文件放在同一个目录下 prerotate/endscript 在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行 postrotate/endscript在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行 daily指定转储周期为每天 weekly 指定转储周期为每周 monthly 指定转储周期为每月 rotate count 指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份 tabootext [+] list 让logrotate 不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v, 和 ~ size size 当日志文件到达指定的大小时才转储,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB (sizem).
2,缺省配置 logrotate
Red Hat Linux中的缺省配置内容为:
复制代码代码示例:
# see "man logrotate" for details
# keep 4 weeks worth of backlogs
# send errors to root
# uncomment this if you want your log files compressed
# no packages own lastlog or wtmp --we'll rotate them here
/var/log/lastlog { # system-specific logs may be configured here
缺省的配置一般放在logrotate.conf 文件的最开始处,影响整个系统。
第三行 weekly 指定所有的日志文件每周转储一次。
3,include读取其它配置文件
第13行 include /etc/logrotate.d 告诉 logrotate 读入存放在/etc/logrotate.d 目录中的日志转储参数,当系统中安装了RPM 软件包时,使用include 选项十分有用。 include 选项十分重要,一些应用把日志转储参数存放在 /etc/logrotate.d 。 典型的应用有:apache, linuxconf, samba, cron 以及syslog。 这样,系统管理员只要管理一个 /etc/logrotate.conf 文件就可以了。
4,使用include 选项覆盖缺省配置
复制代码代码示例:
# linuxconf 的参数
/var/log/htmlaccess.log { errors jim notifempty nocompress weekly prerotate /usr/bin/chattr -a /var/log/htmlaccess.log endscript postrotate /usr/bin/chattr +a /var/log/htmlaccess.log endscript } /var/log/netconf.log { nocompress monthly }
此例中,当 /etc/logrotate.d/linuxconf 文件被读入时,下面的参数将覆盖/etc/logrotate.conf中缺省的参数。
5,为指定的文件配置转储参数
复制代码代码示例:
# 注释
/full/path/to/file { option(s) }
每月转储 /var/log/wtmp 一次:
复制代码代码示例:
#Use logrotate to rotate wtmp
/var/log/wtmp { monthly rotate 1 } 7,注意事项 1、尽管花括号的开头可以和其他文本放在同一行上,但是结尾的花括号必须单独成行。 2、使用 prerotate 和 postrotate 选项 一个经典的脚本:/etc/logrotate.d/syslog,此脚本仅对 /var/log/messages 有效。
复制代码代码示例:
/var/log/messages
{ prerotate /usr/bin/chattr -a /var/log/messages endscript postrotate /usr/bin/kill -HUP syslogd /usr/bin/chattr +a /var/log/messages endscript }
说明:
3、logrotate 的运行分为三步:
复制代码代码示例:
#/etc/cron.daily/logrotate /usr/sbin/logrotate /etc/logrotate.conf
4、/var/log/messages 不能产生的原因:
7、cron 计划任务
cron 假定系统持续运行。如果当某任务被调度时系统不在运行,该任务就不会被执行。
1、配置 cron 任务
复制代码代码示例:
SHELL=/bin/bash
# run-parts
前四行是用来配置 cron 任务运行环境的变量。SHELL 变量的值告诉系统要使用哪个 shell 环境(在这个例子里是 bash shell);PATH 变量定义用来执行命令的路径。
/etc/crontab 文件中的每一行都代表一项任务,它的格式是:
复制代码代码示例:
minute — 分钟,从 0 到 59 之间的任何整数
hour — 小时,从 0 到 23 之间的任何整数 day — 日期,从 1 到 31 之间的任何整数(如果指定了月份,必须是该月份的有效日期) month — 月份,从 1 到 12 之间的任何整数(或使用月份的英文简写如 jan、feb 等等) dayofweek — 星期,从 0 到 7 之间的任何整数,这里的 0 或 7 代表星期日(或使用星期的英文简写如 sun、mon 等等) command — 要执行的命令(命令可以是 ls /proc >> /tmp/proc 之类的命令,也可以是执行你自行编写的脚本的命令。)
在以上任何值中,星号(*)可以用来代表所有有效的值。譬如,月份值中的星号意味着在满足其它制约条件后每月都执行该命令。
如你在 /etc/crontab 文件中所见,它使用 run-parts 脚本来执行 /etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly 和 /etc/cron.monthly 目录中的脚本,这些
如果某 cron 任务需要根据调度来执行,而不是每小时、每日、每周、或每月地执行,它可以被添加到 /etc/cron.d 目录中。该目录中的所有文件使用和 /etc/crontab 中
复制代码代码示例:
# record the memory usage of the system every monday
# at 3:30AM in the file /tmp/meminfo 30 3 * * mon cat /proc/meminfo >> /tmp/meminfo # run custom script the first day of every month at 4:10AM 10 4 1 * * /root/scripts/backup.sh
cron 守护进程每分钟都检查 /etc/crontab 文件、etc/cron.d/ 目录、以及 /var/spool/cron 目录中的改变。如果发现了改变,它们就会被载入内存。这样,当某个
2、控制对 cron 的使用
无论使用控制文件中的规定如何,根用户都总是可以使用 cron。
3、启动和停止服务
复制代码代码示例:
/sbin/service crond start
停止 cron 服务:
复制代码代码示例:
/sbin/service crond stop
(责任编辑:IT) |