我发现渐渐喜欢上写脚本,这里记录一些实际用到的“漂亮”的脚本。
一、shell删除指定日期日志
day=$1
ls -l | awk '{if($7=='"$day"') print $9}' | xargs rm
$7是日期列,$9是文件名列
二、杀掉所有zk进程
ps -ef | grep zookeeper | grep -v grep | awk '{print $2}' | xargs kill -9
awk非常实用,写出的脚本简洁,有效,配合xrags更加高效
三、统计grep查找的行数
grep 'key' filename | wc -l
//匹配开头、结尾
grep ^024$ get.log | wc -l
四、svn 批量提交
svn st | awk '{if($1=="M") print $2}' | grep -v metrics | xargs svn commit -m "ref #34454 @8h"
五、查找jar包冲突
find . -name "*.jar"|awk '{print "jar -tvf "$1}' | sh | grep 'Class Name'
递归的查找当前路径下所有jar包中所有类名为‘Class Name’的类。
六、向多台服务器传文件
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: 这几台机器最好设好免密登陆,要不然要一台一台输密码。
七、保留最新的特定数量的文件(用于清除zk日志文件)
ls -t $dataLogDir/log.* | tail -n +$count | xargs rm -f