Linux运维常见问题

2015-12-03 03:23
网络安全和信息化 2015年9期
关键词:脚本命令进程

故障一:删除文件无法释放磁盘空间

一次在操作中发现,使用命令df -h查看磁盘空间,显示已用磁盘空间为90GB,而用命令du -sh /*查看,显示所有使用空间加起来只有30GB。为什么会出现这种文件已删除,磁盘空间却没释放的问题呢?经研究发现,可能是在操作中直接用命令rm删除某个正在写的文件导致的。

解决方法:

1.重启系统或者重启相关服务。

2.以笔者使用的系统为例,可以删除进程/usr/sbin/lsof|grep?delete d?ora?25575?data?33u?R EG?65,65?4294983680?/oradata/DATAPRE/UNDOTBS009.dbf?(deleted)?。因为从lsof的输出中,发现pid为25575的进程持有着以文件描述号(fd)为33打开的文件/oradata/DATAPRE/UNDOTBS009.dbf。找到了这个文件之后,可以通过结束进程的方式来释放被占用的空间,使用命令:

echo > /proc/25575/fd/33

3.删除正在写的文件,一般使用命令:

cat /dev/null > file g :% s/^M//g (^M 输入用Ctrl+v, Ctrl+m),启动脚本。

故障二:shell脚本无法执行

某一天,想查看已写好的shell脚本,脚本很简单,也没有常规性的错误,却一直报“:bad interpreter: No such file or directory”错误,无法正常执行。这是一个在Windows下编写的脚本,然后再上传到Linux服务器中。经研究发现,在DOS/Windows里,文本文件的换行符为rn,而在Linux系统里 为n,所 以,DOS/Windows里编辑过的文本文件到了*nix里,每一行都多了已个^M,就会出现这种shell脚本不执行的情况。

解决方法:

1.重新在Linux下编写脚本。

2.使用命令vi :% s/r//

故障三:crontab输出问题

一次在操作中发现,/var/spool/clientmqueue目录占用空间超过100GB。和同事一起研究一番发现,cron中执行的程序有输出内容,输出内容会以邮件形式发给cron的用户,而SendMail没有启动,所以就产生了/var/spool/clientmqueue目录下的许多文件。

解决方法:

1.手动删除文件,使用命令 :ls |xargs rm -f。

2.彻底解决:在cron的自动执行语句后加上 >/dev/null 2>&1。

故障四:find文件耗资源

有一段时间,在tmp目录下有大量包含picture_*的临时文件,每天凌晨2:30对一天前的文件进行清理。之前在crontab下运行脚本#!/bin/sh find /tmp -name“picture_*”

-mtime +1-exec rm -f {},但是发现脚本效率很低,每次执行时负载猛涨,影响到其他服务。

解决方法:

猜你喜欢
脚本命令进程
酒驾
只听主人的命令
安奇奇与小cool 龙(第二回)
债券市场对外开放的进程与展望
改革开放进程中的国际收支统计
移防命令下达后
快乐假期
小编的新年愿望
这是人民的命令
社会进程中的新闻学探寻