文章

shell-命令搭配使用

1.以时间排序 列出当前目录下 前30文件数 时间以全时间显示

1
ls -lhm --full-time /var/log/journal/20190711105006363114529432776998/ | sort -k6 | head -n30

2.显示当前目录下使用空间>1G

1
du -s * | sort -nr | awk '{if ( $1/1024 > 1024)printf("%0.4sG %s\n"), $1/1024/1024, $2}'

3.找出25天之前的文件删除

1
find /var/log/journal/20190711105006363114529432776998/ -ctime +30 -exec rm -rf  {} \;

4.文件太多无法删除

1
2
3
报错: /bin/rm: Argument list too long
#分组删除
ls | xargs -n 10 rm -rf

5.查当前目录下所有文件的总行数

1
find . -type f | xargs cat | wc -l

6.查看占用最高的cpu的进程

1
ps -eo pid,pcpu,cmd | sort -n -k 2 | tail

7.去除指定列重复行

1
2
3
cat 123.txt | sort -k1 | awk -F"|" '!i[$1]++'
sort 先排序
awk 去除相邻行的重复行保留第一行

8.查看所有docker的network对应的网络段

1
for i in $( docker network ls | grep -v NAME | awk '{print $2}' ); do aa=$(docker network inspect $i  | grep -Ew "Subnet" | awk -F"\"" '{print $4}');  printf "%-50s%-30s\n" ${i} ${aa} ;done

9.查看自建kafka指定topic的分区数据存储情况

1
topic_name="kafka-test-007"; aa=0; for i in $(kafka-run-class.sh kafka.tools.GetOffsetShell --topic "${topic_name}"  --time -1 --broker-list kafka:9092 | awk -F":" '{print $3}'); do aa=$(($aa+$i)); echo "${topic_name}:${aa}" ;done

10. find 指定多个条件规则

1
2
3
4
5
相同条件匹配多次: -o
find /var/log -type f \( -name "*.[0-9]" -o -name "*.gz" \) -mtime +30 -exec rm -rf {} \;

-name: 目录匹配规则,支持正则
-o: 关联两个相同规则
本文由作者按照 CC BY 4.0 进行授权