# docker批量tag goharbor镜像 并推送
docker images | grep goharbor | sed 's/goharbor/harbor.mtr.bj.cn\/goharbor/g' | awk '{print "docker tag"" " $3" "$1":"$2}'|sh
docker images |grep "harbor.mtr.bj.cn/goharbor" |awk '{print $1":"$2}'|xargs -i docker push {} &
# xargs 批量删除 shell
kubectl get deployment -n coding |awk '{print $1}' |xargs kubectl rollout restart deployment -n coding # 重启所有 coding命名空间 deployment
docker images | grep v2.7.0 | awk '{print $1":"$2}' | xargs -i docker rmi {} & # 批量删除含v2.7.0 的镜像
# 重启业务deployment脚本
#!/bin/bash
user_list=$(cat /etc/passwd | awk -F: '$3>=500' | cut -f 1 -d :)
ns_list=$(kubectl get namespaces |grep -v ^kub | grep -v ^tcr |grep -v ^NAME | grep -v ^app | grep -v ^def | grep -v ^prom | awk '{print $1}')
#使用列表for循环显示5次欢迎操作
for variable in $ns_list
do
echo "Hello, ready restart $variable "
#kubectl get deployments.apps -n $variable | grep -v ^NAME | awk '{print $1}' | xargs kubectl rollout restart deployment -n $variable
done
# 格式化输出 : 分隔符来分割 展示 /etc/passwd下的第一列数据
awk -F ':' '{print $1}' /etc/passwd
# 取 符号 “:” 后最后一列数据
awk -F ': ' '{print $NF}'
#指定输出第一列和第九列
$ ll | awk -F' ' '{print $1,$9}' #列之间是空格符
$ ll | awk -F',' '{print $1,$9}' #列之间是逗号符
#定输出最后一列
$ ll | awk -F' ' '{print $NF}' #列之间是空格符
$ ll | awk -F',' '{print $NF}' #列之间是逗号符
## ll命名可以由任何单命令或组合命令替换
# 例如 下面两个命令对比 取服务器的sn号码
dmidecode -t system | grep 'Serial Number'
dmidecode -t system | grep 'Serial Number' | awk -F ': ' '{print $NF}'
# 取linux secret安全log日志里面所有登录密码错误的ip 并且过滤掉 session关键字
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"=" $1;}'|awk '!/session:/'
# 延伸 当 Allowhosts。txt里面 有的 行就再 Denyhosts。txt 里面去除掉
awk '{if(ARGIND==1) {val[$0]}else{if($0 in val) delete val[$0]}}END{for(i in val) print i}' Denyhosts.txt Allowhosts.txt
#10.69.15.32=4
#10.69.15.37=15630
cat Denyhosts.txt
10.69.15.32=4
10.69.15.37=15630
10.69.15.80=3
cat Allowhosts.txt
10.69.15.80=3