shell脚本--持续更新

    我发现渐渐喜欢上写脚本,这里记录一些实际用到的“漂亮”的脚本。java

1、shell删除指定日期日志

day=$1
ls -l | awk '{if($7=='"$day"') print $9}' | xargs rm

    $7是日期列,$9是文件名列shell

2、杀掉全部zk进程

ps -ef | grep zookeeper | grep -v grep | awk '{print $2}' | xargs kill -9

    awk很是实用,写出的脚本简洁,有效,配合xrags更加高效bash

3、统计grep查找的行数

grep 'key' filename | wc -l
//匹配开头、结尾
grep ^024$ get.log | wc -l

4、svn 批量提交

svn st | awk '{if($1=="M") print $2}' | grep -v metrics | xargs svn commit -m "ref #34454 @8h"

5、查找jar包冲突

find . -name "*.jar"|awk '{print "jar -tvf "$1}' | sh | grep 'Class Name'

    递归的查找当前路径下全部jar包中全部类名为‘Class Name’的类。服务器

6、向多台服务器传文件

ip=(ip1 ip2 ip3)
for loop in ${ip[@]}; do scp -r /opt/java/jdk1.7.0_60 username@${loop}:/opt/java/jdk1.7.0_60; done;

    ps: 这几台机器最好设好免密登录,要否则要一台一台输密码。svn

7、保留最新的特定数量的文件(用于清除zk日志文件)

ls -t $dataLogDir/log.* | tail -n +$count | xargs rm -f