1. 磁盤滿了
如果一臺(tái)機(jī)器磁盤滿了,首先我們需要確定其位置,命令為
df(或者df -h)
//顯示結(jié)果
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一級(jí)一級(jí)的查找,確定最大文件。
du -h --max-depth=1 | grep 'G' | sort -n
如果是日志文件過(guò)大需要?jiǎng)h除時(shí)候,使用日志切割,保留最新日志。
//指定分割后文件行數(shù)
split -l 300 largelog newlog
//指定分割后文件大小
split -b 10m largelog newlog
2. 負(fù)載過(guò)高
使用uptime命令查看機(jī)器負(fù)載。
uptime
//輸出
up 1 day, 23:14, 2 users, load averages: 1.69 2.21 2.09
平均負(fù)載表示1、5、15分鐘進(jìn)程隊(duì)列中的平均進(jìn)程數(shù)量。一般單核大于3的話負(fù)載就算高了。查看linux多少cpu與核的命令如下:
#查看物理CPU個(gè)數(shù)
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
#查看每個(gè)物理CPU中core的個(gè)數(shù)(即核數(shù))
cat /proc/cpuinfo| grep "cpu cores"| uniq
# 查看邏輯CPU的個(gè)數(shù)
cat /proc/cpuinfo| grep "processor"| wc -l
然后使用top命令查看每個(gè)進(jìn)程占用CPU,內(nèi)存情況。top顯示時(shí)候使用“M”進(jìn)程會(huì)按內(nèi)存使用排序,按“P”會(huì)按CPU使用排序。
如果沒有進(jìn)程占用大量CPU,內(nèi)存資源的話,可能就是某個(gè)進(jìn)程阻塞了。使用ps -ef, 看到哪個(gè)進(jìn)程會(huì)卡住,然后去/proc/中找到這個(gè)進(jìn)程對(duì)應(yīng)的文件,看是否能正常打開。
找到以后殺死這個(gè)進(jìn)程或者重啟機(jī)器。
3. can’t lock /etc/passwd;try again later
首先查看是在/etc下否存在lock文件,
$cd /etc
$ls *.lock
$ rm -f *.lock //刪除文件鎖
沒有的話,使用df -i看是否 inode滿了,如果是 查找每個(gè)文件下的文件數(shù)目
for i in ./*; do echo $i; find $i | wc -l |sort -n ; done
找到后刪除沒用的小文件。 建議去/var/spool/postfix/maildrop去看看。
科普一下df -i與df -h,一個(gè)是總共能創(chuàng)建多少文件,一個(gè)是總共能創(chuàng)建多大的文件。