查看 linux 栏目文章
三月
28

Linux下获取空闲内存和内存使用率的方法

Author Dominic    Category linux     Tags

一项目基于linux开发,包含一个服务器状态监视的功能,一个兄弟完成该功能之后显示内存占用率一直保存在94%以上,虽然测试机只有512M内存,但也不至于空闲内存如此之少,内存使用率如此之高呀,测试人员在提出这个问题之后,那兄弟还搪塞测试人员:linux就这样,内存使用方式和windows不同。

分析了一下这个系统的代码,他从/proc/meminfo中直接读取了MemFree对应的值,直接导致空闲内存不对,内存使用率当然也不对,在Linux下正确获取空闲内存的方法应当如下:

1、读取/proc/meminfo文件,结果如下:

MemTotal:       515880 kB
MemFree:         12748 kB
Buffers:         20768 kB
Cached:         190328 kB
SwapCached:      91920 kB
Active:         349272 kB
Inactive:       119392 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:       515880 kB
LowFree:         12748 kB
SwapTotal:      891568 kB
SwapFree:       646656 kB
Dirty:             208 kB
Writeback:           0 kB
AnonPages:      246588 kB
Mapped:          62140 kB
Slab:            25504 kB
SReclaimable:    12256 kB
SUnreclaim:      13248 kB
PageTables:       2592 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
CommitLimit:   1149508 kB
Committed_AS:   935784 kB
VmallocTotal:   507896 kB
VmallocUsed:      3576 kB
VmallocChunk:   504176 kB

2、MemTotal值作为总内存

3、空闲内存计算方式:如果Cached值大于MemTotal值则空闲内存为MemFree值,否则空闲内存为MemFree值+Buffers值+Cached值

4、内存使用率为:空闲内存/总内存*100%。

一月
29

新装Ubuntu Server版用户安全优化

Author Dominic    Category linux, 网站管理     Tags ,

使用 Server版安装LAMP server之后,给系统添加了一些不必要的用户,多余的用户在会给黑客留下获取shell的可能性,关闭不必要的用户shell使用权限在一定程度上可以加固服务的安全性。

安装完成后默认/etc/passwd文件内容如下:

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
syslog:x:101:102::/home/syslog:/bin/false
klog:x:102:103::/home/klog:/bin/false
mysql:x:103:104:MySQL Server,,,:/var/lib/mysql:/bin/false
admin:x:1000:1000:Administrator,,,:/home/admin:/bin/bash

具体内容根据选择安装的服务不同而不同。默认创建了20多个帐号,大部分人并不知道这些帐号的具体用途,其中有几个帐号对于一个web服务器来说一般是不必要,可以通过更改shell的方式禁用这些帐号的登录(/bin/false):

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/false
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/false
mail:x:8:8:mail:/var/mail:/bin/false
news:x:9:9:news:/var/spool/news:/bin/false
uucp:x:10:10:uucp:/var/spool/uucp:/bin/false
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/false
irc:x:39:39:ircd:/var/run/ircd:/bin/false
nobody:x:65534:65534:nobody:/nonexistent:/bin/false

syslog:x:101:102::/home/syslog:/bin/false
klog:x:102:103::/home/klog:/bin/false
mysql:x:103:104:MySQL Server,,,:/var/lib/mysql:/bin/false
admin:x:1000:1000:Administrator,,,:/home/admin:/bin/bash

当然,如果相关服务是需要用到的服务,就不要更改shell了。

专题推荐

标签

404错误 apache article CSS dotNet fckeditor Hack iOS iTouch javascript PayPal PHP rar ubuntu utf8 VMware VMware Tools weblinks Win2008 Windows Server 2008 Wordpress xajax XOOPS 上传 个人 中文 中文习惯 关键词 合肥 域名 安全 工作 文件类型 文章管理 时区 未分类 模块 模板 模组 电子地图 界面友好 禅意花园 网速 腾讯 配置管理

分类目录

新浪微博

存档

最近文章

近期评论

友情链接

分享按钮