1. 磁碟满了
如果一台机器磁碟满了,首先我们需要确定其位置,命令为
df(或者 df -h)
//显示结果
Filesystem 512-blocks Used Available Capacity iused ifree %iused Mounted on
/dev/disk0s2 488555536 124047536 363996000 26% 15569940 45499500 25% /
devfs 361 361 0 100% 626 0 100% /dev
map -hosts 0 0 0 100% 0 0 100% /net
找到那一块盘满了以后,使用命令 du 一级一级的查询,确定最大档案。
du -h –max-depth=1 | grep ‘G’ | sort -n
如果是日志档案过大需要删除时候,使用日志切割,保留最新日志。
//指定分割后档案行数
split -l 300 largelog newlog
//指定分割后档案大小
split -b 10m largelog newlog
2. 负载过高
使用 uptime 命令检视机器负载。
uptime
//输出
up 1 day, 23:14, 2 users, load averages: 1.69 2.21 2.09
平均负载表示 1 、 5 、 15 分钟程序伫列中的平均程序数量。一般单核大于 3 的话负载就算高了。检视 linux 多少 cpu 与核的命令如下:
#检视物理 CPU 个数
cat /proc/cpuinfo| grep “physical id”| sort| uniq| wc -l
#检视每个物理 CPU 中 core 的个数 (即核数)
cat /proc/cpuinfo| grep “cpu cores”| uniq
# 检视逻辑 CPU 的个数
cat /proc/cpuinfo| grep “processor”| wc -l
然后使用 top 命令检视每个程序占用 CPU,内存情况。 top 显示时候使用 “M” 程序会按内存使用排序,按 “P” 会按 CPU 使用排序。
如果没有程序占用大量 CPU,内存资源的话,可能就是某个程序阻塞了。使用 ps -ef, 看到哪个程序会卡住,然后去/proc/中找到这个程序对应的档案,看是否能正常开启。
找到以后杀死这个程序或者重启机器。
3. can’t lock /etc/passwd;try again later
首先检视是在/etc 下否存在 lock 档案,
$cd /etc
$ls *.lock
$ rm -f *.lock //删除档案锁
没有的话,使用 df -i 看是否 inode 满了,如果是 查询每个档案下的档案数目
for i in ./*; do echo $i; find $i | wc -l |sort -n ; done
找到后删除没用的小档案。 建议去/var/spool/postfix/maildrop 去看看。
科普一下 df -i 与 df -h,一个是总共能建立多少档案,一个是总共能建立多大的档案。