登录一台服务器,使用free命令查看内存,却发现swap分区被占用。
此时,就需要知道哪些进程占用了这部分swap分区?
从2.6.16版本的kernel开始,可以使用proc文件系统中的smaps来查找此问题。
以下是一个列出所有进程占用swap分区情况的列表。
可以通过简单修改就可以用于统计在/proc/$PID/smaps查出。
命令脚本如下:
一台服务器的两个网卡,是只能配置一个网关的,如果两个网卡都配置网关的话 ,这时网络是会出现故障的,肯定至少有一个网卡的地址是不管用的。
我们今天举的例子是这样:
一个网卡需要配置一个公网地址,需要配置网关,另一个需要和机房客户的另一台服务器通讯,但是需要安装这台服务器和客户原先的那台服务器不在一个机架上,机房分配的地址和原先的服务器又不在同一个网段。
网络需求:
需要安装的服务器:
mask:255.255.255.252 addr:10.0.3.5 mask:255.255.255.0
geteway:211.X.X.49 gateway:10.0.3.253
原先的服务器:
mask:255.255.255.0
给eth0设置过IP、网关之后是可以上公网的,这个是肯定的,除非网络有问题;但是给eth1设置过IP之后是不能和原先的服务器(10.0.1.6)通讯的。
PING 10.0.1.6 (10.0.1.6) 56(84) bytes of data.
From 10.0.3.253 icmp_seq=1 Destination Net Unreachable
From 10.0.3.253 icmp_seq=2 Destination Net Unreachable
From 10.0.3.253 icmp_seq=3 Destination Net Unreachable
From 10.0.3.253 icmp_seq=4 Destination Net Unreachable
此时需要添加一个路由,让10.0.1.0网段和10.0.3.0网段互相识别。
[root@testServer etc]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.3.252 * 255.255.255.252 U 0 0 0 eth1
211.X.X.48 * 255.255.255.252 U 0 0 0 eth0
169.254.0.0 * 255.255.0.0 U 0 0 0 eth1
10.0.0.0 10.0.3.253 255.0.0.0 UG 0 0 0 eth1
default 211.X.X..49 0.0.0.0 UG 0 0 0 eth0
添加过这个路由之后再ping:
PING 10.0.1.1 (10.0.1.1) 56(84) bytes of data.
64 bytes from 10.0.1.1: icmp_seq=1 ttl=255 time=3.11 ms
64 bytes from 10.0.1.1: icmp_seq=2 ttl=255 time=1.01 ms
64 bytes from 10.0.1.1: icmp_seq=3 ttl=255 time=0.808 ms
64 bytes from 10.0.1.1: icmp_seq=4 ttl=255 time=1.05 ms
64 bytes from 10.0.1.1: icmp_seq=5 ttl=255 time=0.902 ms
此时可以通讯了,但是这还没有完,因为只要一重启机器,刚才添加的那个路由就会消失,两台机器还是不能够通讯。
解决方法:
把刚才添加路由的那条命令再添加到这个文件/etc/rc.local的最后一行,然后保存退出。
重启之后,也不会失效了。
syslogd;专门记录非内核的其他设施所产生的日志;当系统的控制权 由内核转交给init的时候,这时候的日志信息的记录由syslog记录
klogd:内核 主要负责内核所产生的日志当系统启动完成之后就会
由klogd进程记录控制并把这些内容记录在/var/log/dmesg中
查看命令
# cat命令也可以查看
相关文件存放日志信息类型介绍
var/log/dmesg:存放的是内核产生的日志信息,即启动init程序之前产生的日志信息
/var/log/messages:系统标准错误日志信息;非内核产生的引导信息大多数的子系统所产生的日志信息都会记录到这里
/var/log/maillog:存放由邮件系统产生的日志信息;
/var/log/secure:存放与安全有关的日志信息,里面记录了用户正确或错误登录系统的详细的私密信息
只有管理员才能查看;
日志级别介绍
debug # 程序或系统的调试信息【级别越低,记录的日志越详细,同时会导致硬盘工作超负荷
info # 一般信息
notice # 不影响正常功能,需要注意的消息
warning/warn # 可能影响系统功能,需要提醒用户的重要事件
err/error # 错误信息
crit # 比较严重的 【相当于发出蓝色警报】
alert # 必须马上处理的 【相当于发出橙色警报】
emerg/panic # 会导致系统不可用的 【相当于发出红色警报】
* # 表示所有的日志级别
none # 跟* 相反,表示什么也不记录
facility(可以理解为产生日志的来源)经常用的总结如下
auth # 认证相关的
authpriv # 权限,授权相关的
cron # 任务计划相关的
daemon # 守护进程相关的 比如:httpd 工作在后台的
kern # 内核相关的
lpr # 打印相关的
mail # 邮件相关的
mark # 标记相关的
news # 新闻相关的
security # 安全相关的,与auth 类似
syslog # syslog自己的
user # 用户相关的
uucp # unix to unix cp 相关的
local0 到 local7 # 用户自定义使用
* # *表示所有的facility
action(可以理解为对日志的处理办法)
系统上的绝对路径
# 普通文件 如: /var/log/xxx
| # 管道 通过管道送给其他的命令处理
终端 # 终端 如:/dev/console
@HOST # 远程主机 如: @10.0.0.1
用户 # 系统用户 如: root
* # 登录到系统上的所有用户,一般emerg级别的日志是这样定义的
格式示例的详解
auth.=info @172.16.0.1 # 表示将auth相关的,只是把info级别的信息记录到10.0.0.1主机上去
user.!=error # 表示记录user相关的,除了error级别外的信息
user.!error # 比error低的级别信息
*.info # 所有可能产生日志信息的子系统的info级别及其以上级别信息
mail.* # mail子系统产生的所有日志信息
*.* # 记录所有的日志信息的所有级别的日志信息
cron.info;mail.info # 记录多个日志系统信息,中间用“;”隔开
cron,mail.info # 意思同上
mail.*;mail.!=info # 记录mail相关的所有级别的信息,但是不包括info级别的
对/etc/logrotate.conf配置文件的分析
# see "man logrotate" for details
# rotate log files weekly
weekly (意思是每周更新一次日志文件)
# keep 4 weeks worth of backlogs
rotate 4 (定义保留4个版本,超出这个定义的数就会被清除)
# create new (empty) log files after rotating old ones
create (滚动结束之后,生成新的一个空的日志文件)
# uncomment this if you want your log files compressed
#compress
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d (日志文件同时还依赖于这个文件,在/etc/logrotate.d中为每个文件定义一个子系统的日志滚动机制)
# no packages own wtmp -- we'll rotate them here
/var/log/wtmp { (指定一个日志文件)
monthly (按月滚动,以这个日志文件定义的滚动时间为主,如果全局定义了,这个没定义,以全局为主)
minsize 1M (最小为1M)
create 0664 root utmp (创建一个新的文件,权限为0664,属主为root,日志文件名为utmp )
rotate 1 (保留1个历史版本)
}
/var/log/btmp {
missingok
monthly
minsize 1M
create 0600 root utmp
rotate 1
}
对/etc/syslog.conf配置文件的分析
# 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
(除了mail,authpriv,cron之外所有facility产生的info以及info以上的级别都放在/var/llog/messages)
# The authpriv file has restricted access.
authpriv.* /var/log/secure
跟用户授权相关的所有级别都记录在/var/log/secure文件中
# Log all the mail messages in one place.
mail.* -/var/log/maillog
(与邮件相关的所有级别都记录在/var/log/maillog文件中,此处的“-”表示异步写入,不会同时写入到磁盘上去)
# Log cron stuff
cron.* /var/log/cron
(与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
(在uucp和news相关的crit和crit以上级别记录在/var/log/spooler文件中)
# Save boot messages also to boot.log
local7.* /var/log/boot.log
(用户自定义的跟引导相关的所有级别都记录在/var/log/boot.log文件中)