Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1340720
  • 博文数量: 416
  • 博客积分: 10495
  • 博客等级: 上将
  • 技术积分: 4258
  • 用 户 组: 普通用户
  • 注册时间: 2005-04-23 22:13
文章分类

全部博文(416)

文章存档

2015年(7)

2014年(42)

2013年(35)

2012年(14)

2011年(17)

2010年(10)

2009年(18)

2008年(127)

2007年(72)

2006年(23)

2005年(51)

分类: LINUX

2007-09-21 16:01:29

Linux Support Tips (or 避免痛苦的艺术)


不要相信人,相信工具
"我们的系统上装了8G内存" (实际: 16G)
"我们用的是32位系统" (实际: 64位)
"系统掉电后,xorg.conf丢失" (实际: 正常关机后,xorg.conf丢失)
"今天这个系统没有人碰过" (实际: 下午有至少3个人在上面使用过U盘)
"环境变量已经设好了,可还是不工作" (实际: 环境变量没有设上)
"turbo上装的是和您们一样的软件,可就你们红旗有问题" (实际: turbo上用的是jdbc->odbc方式,红旗上使用的是jdbc->native (ocijdbc)方式)
"zip一个文件时zip崩溃" (实际: zip一个2G以上的文件时zip程序崩溃)


任何(与问题相关的)信息的都是有价值的
# sysdump.sh
# ldd
# set
# strace
# ltrace
# /proc
# /var/log/*

# debugfs
# /sbin/*
# set -x
# -v, -verbose, -debug...
# sysrq
# tcpdump
...


详细记录

软硬件配置信息
试验过程和结果
搜索到的URL和资料
google notebook
blog


日积月累、不断学习
chinaunix.net
读一下nntp的所有帖子

Red Hat Knowledge Base

Red Hat Magazine

Novell Support

 

 

自动化可自动化的一切

watch
alias

 

不要想当然
-1/0


代码是最好的(有时是唯一的)文档
# mount --guess-fstype
# acpid -f
# 如何设置unlimited in limits.conf


用户不会去看文档。
即使看了文档,也不一定看懂了。
即使看懂了,也不一定看全了。
即使看全了,文档也不一定正确。
即使文档正确,也不一定全面。

程序员不会去看文档 (除非手上没有代码)

程序员宁愿去看代码
程序员不相信别的程序员写的文档
程序员自己不会写文档 (除非被逼无奈)


精通 /sbin/*, /usr/sbin/*


最有用的top
# top -id 1


不常用的Linux进程信息
ps能够提供不少进程信息,比如进程号、进程运行状态、进程名称、所占CPU时间、所占内存等。除此以外,还有一些不很常用的进程信息,可以用来解决一些可能很常见的问题 (比如内存泄漏,进程运行异常等)。了解这些信息毕竟要比去读程序源码要简单一些,更何况有些时候根本没有源代码。

所打开的文件
获取方法1:
# ls -l /proc/$PID/fd/

获取方法2:
# lsof -p $PID

内存分配表
获取方法:
# lcat /proc/$PID/maps

堆栈
获取方法:
# pstack $PID

所发出的系统调用
获取方法:
# strace -p $PID

所发出的库函数调用
获取方法:
# ltrace -p $PID

进程继承关系
获取方法:
ps -eo user,pid,ppid,%cpu,%mem,vsz,rss,tty,stat,start,time,wchan,command --forest

运行时dumpcore
获取方法:
# gcore $PID


一行perl脚本

# perl -e 'while (<>) { if (m//) {...}}'

Undocumented Linux

# mount --guess-fstype
# acpid -f
# connect() returns ECONNRESET
# 0 means unlimited in limits.conf
# DC5. 0 SP1 bind enabled chroot jail

最有用的ps
[pczou@pczou bin]$ cat psl.sh
#!/bin/bash

# more info ps
ps -eo user,pid,ppid,%cpu,%mem,vsz,rss,tty,stat,start,time,wchan,command --forest $*


/proc/$PID/maps的用处

寻找内存泄漏


用vi看man手册

[pczou@pczou ~]$ cat /usr/bin/vman
#!/bin/bash
export MANPAGER="col -b | vim -c 'set filetype=man' -"
man $*

阅读(1170) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~