当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪linux下查看哪些进程在占用swap分区的脚本      登录一台服务器,使用free命令查看内存,却发现swap分区被占用。 此时,就需要知道哪些进程占用了这部分swap分区? 从2.6.16版本的kernel开始,可以使用proc文件系统中的smaps来查找此问题。 .........
    ▪linux下双网卡下需要网关时的路由设置      一台服务器的两个网卡,是只能配置一个网关的,如果两个网卡都配置网关的话 ,这时网络是会出现故障的,肯定至少有一个网卡的地址是不管用的。 我们今天举的例子是这样: 一个网卡.........
    ▪深入linux日志系统syslogd与klogd详解      syslogd;专门记录非内核的其他设施所产生的日志;当系统的控制权 由内核转交给init的时候,这时候的日志信息的记录由syslog记录 klogd:内核 主要负责内核所产生的日志当系统启动完成之后.........

[1]linux下查看哪些进程在占用swap分区的脚本
    来源: 互联网  发布时间: 2013-12-24

登录一台服务器,使用free命令查看内存,却发现swap分区被占用。
此时,就需要知道哪些进程占用了这部分swap分区?

从2.6.16版本的kernel开始,可以使用proc文件系统中的smaps来查找此问题。

以下是一个列出所有进程占用swap分区情况的列表。
可以通过简单修改就可以用于统计在/proc/$PID/smaps查出。

命令脚本如下:

for i in `cd /proc;ls |grep "^[0-9]"|awk ' $0 >100'` ;do awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps ;done |sort -k2nr

    
[2]linux下双网卡下需要网关时的路由设置
    来源: 互联网  发布时间: 2013-12-24

一台服务器的两个网卡,是只能配置一个网关的,如果两个网卡都配置网关的话 ,这时网络是会出现故障的,肯定至少有一个网卡的地址是不管用的。

我们今天举的例子是这样:
一个网卡需要配置一个公网地址,需要配置网关,另一个需要和机房客户的另一台服务器通讯,但是需要安装这台服务器和客户原先的那台服务器不在一个机架上,机房分配的地址和原先的服务器又不在同一个网段。

网络需求:
需要安装的服务器:
 

eth0:addr:211.X.X.50  eth1(也就是机房分配的地址):
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

原先的服务器:
 

addr:10.0.1.6
mask:255.255.255.0
 

给eth0设置过IP、网关之后是可以上公网的,这个是肯定的,除非网络有问题;但是给eth1设置过IP之后是不能和原先的服务器(10.0.1.6)通讯的。
 

代码示例:
[root@testServer etc]# ping 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 add -net 10.0.0.0/8 gw 10.0.3.253 eth1
[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:
 

[root@testServer etc]# ping 10.0.1.6
  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的最后一行,然后保存退出。
重启之后,也不会失效了。


    
[3]深入linux日志系统syslogd与klogd详解
    来源: 互联网  发布时间: 2013-12-24

syslogd;专门记录非内核的其他设施所产生的日志;当系统的控制权 由内核转交给init的时候,这时候的日志信息的记录由syslog记录
klogd:内核 主要负责内核所产生的日志当系统启动完成之后就会
由klogd进程记录控制并把这些内容记录在/var/log/dmesg中

查看命令
 

# dmesg(专门负责打开var/log/dmesg文件,并显示出来的
# cat命令也可以查看

相关文件存放日志信息类型介绍
var/log/dmesg:存放的是内核产生的日志信息,即启动init程序之前产生的日志信息
/var/log/messages:系统标准错误日志信息;非内核产生的引导信息大多数的子系统所产生的日志信息都会记录到这里
/var/log/maillog:存放由邮件系统产生的日志信息;
/var/log/secure:存放与安全有关的日志信息,里面记录了用户正确或错误登录系统的详细的私密信息
只有管理员才能查看;

日志级别介绍
 

priority(log level)日志的级别,一般有以下几种级别(从低到高)   
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级别的日志是这样定义的

格式示例的详解
 

代码示例:
mail.info   /var/log/mail.log # 表示将mail相关的,级别为info及以上级别的信息记录到/var/log/mail.log文件中 
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配置文件的分析
 

代码示例:
# 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  
(除了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文件中)

    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
▪Shell脚本实现批量下载网络图片代码分享
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
▪Shell实现判断进程是否存在并重新启动脚本分...
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
▪阿里云云服务器Linux系统更新yum源Shell脚本 iis7站长之家
▪shell常用重定向实例讲解
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3