免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 29546 | 回复: 61
打印 上一主题 下一主题

[新手入门] AIX shell工具集 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-06-18 11:44 |只看该作者 |倒序浏览
逐渐整理,逐步贴出,也希望起到抛砖引玉的作用.
[原创]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

[ 本帖最后由 mxin 于 2006-6-18 12:52 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-06-18 12:35 |只看该作者
[原创]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

[ 本帖最后由 mxin 于 2006-6-18 12:53 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2006-06-18 16:14 |只看该作者
[原创]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显示出来.

论坛徽章:
0
4 [报告]
发表于 2006-06-19 14:57 |只看该作者
[原创]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

[ 本帖最后由 mxin 于 2006-6-21 22:04 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2006-06-19 19:33 |只看该作者
[原创]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

论坛徽章:
0
6 [报告]
发表于 2006-06-20 10:50 |只看该作者
[原创]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

[ 本帖最后由 mxin 于 2006-6-26 20:09 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2006-06-20 11:17 |只看该作者
兄弟,这个帖子不错,最近在研究shell script,很好啊,希望继续增加新的原创,另外有没有关于shell script学习的好的站点链接?

论坛徽章:
0
8 [报告]
发表于 2006-06-20 19:53 |只看该作者
[原创]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

论坛徽章:
0
9 [报告]
发表于 2006-06-20 22:47 |只看该作者
很不错,请继续努力。
建议做一个Shell菜单,将想要的脚本都做做菜单项。

论坛徽章:
0
10 [报告]
发表于 2006-06-21 01:07 |只看该作者
原帖由 mxin 于 2006-6-18 11:44 发表
逐渐整理,逐步贴出,也希望起到抛砖引玉的作用.
[原创]1.批量改名或拷贝文件
比如将 start*.sh文件改为stop*.sh
拷贝
先查看
ls -l start*.sh|awk '{m=$9; gsub(/start/,"stop",$9);print "cp ...


for i in `echo start*.sh`
do
cp $i `echo $i|sed 's/start/stop/g'`    #拷贝
#mv $i `echo $i|sed 's/start/stop/g'`   #改名
done
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP