Linux日志管理和计划任务

 

日志文件的分类

§ 内核及系统日志

ü  由系统服务rsyslogd统一进行管理,日志格式基本相似

§ 用户日志

ü  记录系统用户登录及退出系统的相关信息

§ 程序日志

ü  由各种应用程序独立管理的日志文件,记录格式不统一

软件包名称:syslog

程序名称:/sbin/rsyslogd

启动脚本:/etc/rc.d/init.d/rsyslog

配置文件:/etc/rsyslog.conf

 

日志保存位置

§ 默认位于:/var/log 目录下

主要日志文件介绍

§ 内核及公共消息日志:/var/log/messages

§ 计划任务日志:/var/log/cron

§ 系统引导日志:/var/log/dmesg

§ 邮件系统日志:/var/log/maillog

用户登录日志:/var/log/lastlog/var/log/secure/var/log/wtmp/var/run/utmp

 

 

 

 

日志消息的级别

§ 0  EMERG(紧急):会导致主机系统不可用的情况

§ 1  ALERT(警报):必须马上采取措施解决的问题

§ 2  CRIT(严重):比较严重的情况

§ 3  ERR(错误):运行出现错误

§ 4  WARNING(警告):可能会影响系统功能的事件

§ 5  NOTICE(注意):不会影响系统但值得注意

§ 6  INFO(信息):一般信息

§ 7  DEBUG(调试):程序或系统调试信息等

 

日志记录的一般格式

4个部分

1. 时间标签

2. 主机名(或IP地址)

3. 程序或服务名

4. 消息内容

 

用户日志分析

保存了用户登录、退出系统等相关信息

§ /var/log/lastlog:最近的用户登录事件  --last命令查看

§ /var/log/wtmp:用户登录、注销及系统开、关机事件   --who

§ /var/run/utmp:当前登录的每个用户的详细信息  -- w

§ /var/log/secure:与用户验证相关的安全性事件

分析工具

whowlastac

 

日志管理策略

及时作好备份和归档        并且远程传送到异地备份

延长日志保存期限

控制日志访问权限

§ 日志中可能会包含各类敏感信息,如账户、口令等

集中管理日志

§ 便于日志信息的统一收集、整理和分析

§ 杜绝日志信息的意外丢失、恶意篡改或删除

 

问题1

若使用的逻辑卷空间不够了,如何处理?(不要生成新的卷组)

新增加磁盘(或Raid),这里以新增加两块单个磁盘为例

[root@StudyServer ~]# echo "scsi add-single-device 2 0 9 0" > /proc/scsi/scsi

[root@StudyServer ~]# echo "scsi add-single-device 2 0 8 0" > /proc/scsi/scsi

 

分区

# fdisk /dev/sdh       #sdh进行分区

# sfdisk -d /dev/sdh | sfdisk /dev/sdi     #参照sdh的分区表信息对sdi进行分区

 

将两块磁盘的分区创建成PV

# pvcreate /dev/sdh1 /dev/sdi1

 

对卷组进行扩容

# vgextend vg_studyserver /dev/sdh1 /dev/sdi1

# vgdisplay

 

/home所在的逻辑卷进行扩容6G

# lvextend -L +6G /dev/vg_studyserver/lv_home

# resize2fs /dev/vg_studyserver/lv_home

 

 

Raid做成逻辑卷

先做成物理卷

# pvcreate /dev/md5

扩容到卷组上

# vgextend MyVg /dev/md5

再扩容逻辑卷

 

缩减LVM

首先将已经挂载的LVM卸载

# umount /home

 

从文件系统上进行收缩

# e2fsck -f /dev/mapper/vg_studyserver-lv_home

# resize2fs /dev/mapper/vg_studyserver-lv_home 8G   #将其缩减到8GB容量

 

重新挂载

# mount /dev/mapper/vg_studyserver-lv_home /home

# df -hl

文件系统              容量  已用  可用 已用%% 挂载点

/dev/mapper/vg_studyserver-lv_home

                      7.9G  199M  7.3G   3% /home

可以看到文件系统确实变成8G容量了

但是# lvdisplay   查看lvm仍然有14GB,现在来缩减LVM

# lvresize -L -6G /dev/vg_studyserver/lv_home

 

 

 

从卷组上将md5剔除

# vgreduce  MyVg  /dev/md5

 

扫描系统中PV的列表

# pvscan

 

md5这个阵列设备的PV属性去除

# pvremove /dev/md5

此时md5就恢复最原始的状态了。

 

注:在缩减LVM时很容易出现数据被破坏的情况,一般情况不建议使用。

 

问题2:系统日志是如何循环的?

Linux系统中日志循环使用logrotate程序进行循环,其配置文件是:/etc/logrotate.conf

详细配置信息、配置方法查看:# man logrotate

 

 

计划任务管理 ―― at

at命令

§ 在指定的日期、时间点自动执行预先设置的一些命令操作,属于一次性计划任务

§ 服务脚本名称:/etc/init.d/atd

§ 设置格式:at  [HH:MM]  [yyyy-mm-d

 

# at 12:29

at> echo Hello > hello.txt

at> <EOT>    #代表着键盘输入Ctrl+D

job 1 at 2013-11-17 12:29

 

如果系统中Ctrl+D快捷键被其他程序占用。这时候可以自定义结束符

# at now + 2min <<!

> echo Hello >> hello.txt

> echo World >> world.txt

> !

 

 

# at 12:30

at> shutdown -h now

at> <EOT>

job 3 at 2013-11-18 12:30

[root@StudyServer ~]# atq

3       2013-11-18 12:30 a root

 

查询计划任务

atq  等价于at -l

取消计划任务

# atrm 3      等价于 at �Cd 3

 

at安全性

默认情况下,任何用户都可以使用at服务,这样并不安全,可以使用策略来控制用户对它的使用。

使用/etc/at.deny 和/etc/at.allow来控制

/etc/at.deny文件中列表的用户不允许使用at

/etc/at.allow 文件中列表的用户允许使用at

 

将用户lisi放入/etc/at.deny中,使用lisi用户登录,发现不能使用at

将用户lisi即放入/etc/at.deny中,又放入/etc/at.allow中,发现可以使用at

说明/etc/at.allow 的优先级高于/etc/at.deny

 

计划任务管理 ―― crontab

crontab命令

§ 按照预先设置的时间周期(分钟、小时、天……)重复执行用户指定的命令操作,属于周期性计划任务

§ 服务脚本名称:/etc/init.d/crond

§ 主要设置文件

ü  全局配置文件,位于文件:/etc/crontab 

ü  系统默认的设置,位于目录:/etc/cron.*/

ü  用户定义的设置,位于文件:/var/spool/cron/用户名

 

/etc/crontab  : 指全局计划任务

系统默认计划任务目录

/etc/cron.daily  凡放在此目录中的脚本,每天都会执行一次

/etc/cron.hourly 每小时执行一次

/etc/cron.monthly 每月执行一次

/etc/cron.weekly每周执行一次

/etc/cron.d  目录下可以设置全局的计划任务脚本,其中必须要指定运行脚本或程序的用户身份。

*/10 * * * * root /usr/lib64/sa/sa1 1 1   用户名必须要指定

 

基于用户定义的周期计划任务

/var/spool/cron

编写用户定义的周期计划任务需要命令crontab

管理cron计划任务

§ 编辑计划任务:crontab  -e  [-u  用户名]

§ 查看计划任务:crontab  -l  [-u  用户名]

§ 删除计划任务:crontab  -r  [-u  用户名]

spacer.gif 

 

crontab任务的配置格式

时间数值的特殊表示方法

§ *   表示该范围内的任意时间

§ ,    表示间隔的多个不连续时间点

§ -   表示一个连续的时间范围

§ /   指定间隔的时间频率

应用示例

§ 0  17  *  *  1-5周一到周五每天17:00 

§ 30  8  *  *  1,3,5每周一、三、五的830

§ 0  8-18/2  *  *  *8点到18点之间每隔2小时

§ 0  *  */3  *  *每隔3

 

crontab应用示例

示例1root用户):

§ 每天早上7:50自动开启sshd服务,2250时关闭

§ 每隔5天清空一次FTP服务器公共目录/var/ftp/pub

§ 每周六的7:30时,重新启动httpd服务

§ 每周一、三、五的17:30时,打包备份/etc/httpd目录

 

[root@localhost ~]# crontab -e

50 7 * * *  /sbin/service sshd start

50 22 * * *  /sbin/service sshd stop

0 * */5 * *  /bin/rm -rf /var/ftp/pub/*

30 7 * * 6  /sbin/service httpd restart

30 17 * * 1,3,5  /bin/tar jcvf httpdconf.tar.bz2 /etc/httpd

 

案例:写一个计划任务让其每星期把系统的日志文件全部打包并压缩保存在root家目录下,每周的文件名各不相同(采用日期命名法)。实际实施过程中,需要将这些打包的日志文件异地备份起来。

1.写脚本

 

 

 

 

 


你可能感兴趣的:(日志)