ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Unix Shell 参考

Unix Shell 参考

原创 Linux操作系统 作者:kevinwang 时间:2008-06-20 14:55:44 0 删除 编辑

[@more@]

[原创]1.批量改名或拷贝文件
比如将 start*.sh文件改为stop*.sh
拷贝
先查看
ls -l start*.sh|awk '{m=$9; gsub(/start/,"stop",$9);print "cp "m " "$9}'
再运行
ls -l start*.sh|awk '{m=$9; gsub(/start/,"stop",$9);print "cp "m " "$9}'|sh
改名
先查看
ls -l start*.sh|awk '{m=$9; gsub(/start/,"stop",$9);print "mv "m " "$9}'
再运行
ls -l start*.sh|awk '{m=$9; gsub(/start/,"stop",$9);print "mv "m " "$9}'|sh

[原创]2.改进grep 2048字符限制的小工具
我们查找匹配文件市常常遇到grep报行长度超过2048这样的错误,我做了这个小工具,findtxt,可查找当前目录下的匹配文件,如果需要,把注释打开,可显示匹配内容。希望对大家有所帮助。

for file in `find . ! -type d`
do
line=`sed -n /$1/p $file`
if [ "$line" != "" ]; then
echo $file
# echo $line
fi
done

[原创]3.查看文件使用者的小工具对fuser的一点改进,呵呵.
1.vi showuser 建立一个文件,内容只有一句:
find $1 -exec fuser -u {} ; 2>;&1|awk '{ if ($2 != "" print $1 $2 }'
2. chmod 755 showuser
3. cp showuser /usr/bin
4. showuser .
showuser /usr
会把当前目录下的在使用的文件的文件名,使用者的id,name显示出来.


[原创]4.清理垃圾,可放在crontab里每天执行。#rmlog.sh
find /tmp ! -name "*.X11*" -mtime +7 -exec rm -f {} ;
find /var/tmp -mtime +5 -exec rm -f {} ;
find /var/preserve /recycle -mtime +7 -exec rm -f {} ;

crontab
0 1 * * * /home/scripts/rmlog.sh > /tmp/rmlog.log 2>&1

[原创]5.强制关闭vg(包括umount所有相关文件系统)
#varyoffvg_force.sh
if [ $# -le 0 ] ;then
echo "no para, example:varyoff_vg.sh erpapp_vg "
exit
fi
df -k|awk '{print $7 }'|grep -v Mounted >/tmp/fs_mounted.txt
for i in `lsvg -l $1 |grep -vE "N/A|vg|MOUNT"|awk '{print $7}'`
do
if [ `grep -c $i /tmp/fs_mounted.txt` -ge 1 ] ; then
echo fuser -kc $i
umount $i
fi
done
varyoffvg $1

[原创]6.kill_fs_user.sh (停掉使用某文件系统的用户,自动判断该文件系统是否mount,避免kill掉其他用户)
if [ $# -le 0 ] ;then
echo "no para, example:kill_user.sh /applprod "
exit
fi
df -k|awk '{print $7 }'|grep -v Mounted >/tmp/du_.txt
if [ `grep -c $1 /tmp/du_.txt` -eq 1 ] ; then
echo fuser -kc $1
fi

[原创]7.相当于mirror rootvg,但当rootvg里有不想mirrror的lv或盘大小不一时比较有用。
##mkmirrorvg.sh
mklvcopy -k hd5 2 $1
mklvcopy -k hd6 2 $1
mklvcopy -k hd8 2 $1
mklvcopy -k hd4 2 $1
mklvcopy -k hd9var 2 $1
mklvcopy -k hd3 2 $1
mklvcopy -k hd1 2 $1
mklvcopy -k hd2 2 $1
mklvcopy -k hd10opt 2 $1
mklvcopy -k lg_dumplv 2 $1
bosboot -ad $1
bootlist -m normal $1

[原创]8. 察看根目录各文件和子目录大小,去除文件系统统计
# du_.sh

df -k|awk '{print $7 }'|grep -v Mounted >/tmp/df_mounted.txt
cd /
for i in `ls -l|awk '{print $9}'|grep -v "-i"`
do
if [ `grep -c $i /tmp/df_mounted.txt` -eq 0 ] ; then
du -sk $i
fi
done

[原创]9.防止文件系统下和根目录下rm -rf * 误操作。
#deny_rmall.sh
cd /;touch ./-i;df -k|grep -v Mounted|grep -v proc|grep -v "/tmp"|awk '{print "cp "./-i" " $7'}|sh
cp "/-i" /etc
cp "/-i" /dev

[原创]10. 保存清理errpt,(当然可以改为其他目录 )
#errclear.sh
errpt >/home/mxin/mon/log/errpt_`date +%Y%m%d`.log
errpt -a >>/home/mxin/mon/log/errpt_`date +%Y%m%d`.log
errclear 0

[原创]11.起大量shell脚本
#start_procs.sh
cat start_procs.list|awk '{print "sh "$1".sh"}'|sh


#start_procs.list(可追加修改)
startprocessor
ProcProcessor
/home/scripts/startArocessor
p_mj_deal_cardevent

[原创]12.停大量进程
# stop_procs.sh
cat procs.list|awk '{print "stop_proc.sh "$1}'|sh

#stop_proc.sh
ps -ef|grep $1|grep -v grep|awk '{print "kill -9 "$2}'|sh

#stop_procs.list(可追加修改)
startprocessor
ProcProcessor
Jackrocessor
p_mj_deal_cardevent

[原创]13.收集系统信息
#showconf.sh
echo --------------------------------------`hostname`-------------------------------------------
prtconf
echo -----------lsvg;lsvg `lsvg -o`
echo "-----------lsvg -l ";lsvg -l `lsvg -o`
echo "-----------lslv lv ";lsvg -l `lsvg -o`|grep -v "LV NAME"|grep -v : |awk '{print "lslv "$1}'|sh
echo -----------df;df -k;lsfs
echo -------------netstat;netstat -in;netstat -i;netstat -r
echo -------------------ps;ps -efk;ps gu
echo ------------------lscfg;lscfg -vp
echo --------------lssrc;lssrc -a
echo ------------lsslot;lsslot -c pci
echo -------------lspv;lspv
echo -------------lslpp;lslpp -l
echo -------------lsattr; lsdev -C|awk '{print "echo ---"$1";lsattr -El " $1}'|sh
echo -------------prtconf -v;prtconf -v
echo -------------errpt; errpt ;errpt -a
echo -------------major; ls -al /dev/*
echo -------------host file; cat /etc/hosts

[原创]14.将多级子目录的权限放开#chmod_dir.sh
echo for example::chmod_dir.sh rwx /home/mxin/mon
echo $1$2 >/tmp/chmod_dir.txt
cat /tmp/chmod_dir.txt|awk -F / '{print "chmod o+x /"$2";chmod o+x /"$2"/"$3";chmod o+x /"$2"/"$3"/"$4";chmod o+x /"$2"/"$3"/"$4"/"$5";chmod -R o+"$1" /"$2"/"$3"/"$4"/"$5"/"$6}'|sh

已经公开 Sunday, July 02, 2006 2:31 PM 作者: zhouxl

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/6917/viewspace-1005879/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: TSM 相关
请登录后发表评论 登录
全部评论

注册时间:2009-11-20

  • 博文量
    7
  • 访问量
    49741