Linux Shell 学习笔记二

阅读: 评论:0

Linux Shell 学习笔记二

Linux Shell 学习笔记二

#!/bin/bash# 当你遇到shell脚本异常时,加上此行set -euxo pipefail,会打印出执行过程并阻止脚本继续执行。
set -euo pipefail# 使用说明:
# BACKUP=<backup> NS=<ns1,ns2,...> ./migrate-ack.sh
# 其中BACKUP为velero backup的名称,可以通过 velero --kubecontext=jiankunking-ing-test backup get | grep old | grep Completed | head -n1 获取
# NS为要迁移的namespace列表,逗号隔开
# 需要安装velero/jq/kubectl等命令ctx=jiankunking-testecho "Usage: BACKUP=<backup> NS=<ns1,ns2,...> $0"# command -v 可以判断一个命令是否支持
if ! command -v velero >/dev/null; thenecho "velero not installed" >&2exit 1
fi
if ! command -v jq >/dev/null; thenecho "jq not installed" >&2exit 1
fi
if ! command -v kubectl >/dev/null; thenecho "kubectl not installed" >&2exit 1
fiecho "+ using backup $BACKUP"# /
velero --kubecontext $ctx restore create --from-backup $BACKUP --include-namespaces $NS -w# a,b,c=>a b c
for ns in `echo $NS | tr ',' ' '`; doecho "+ NS: $ns"k="kubectl --context $ctx -n $ns"# set svc ownerrefsvcs=`$k get svc --no-headers -owide 2>/dev/null | awk '{print $1}'`for svc in $svcs; doapp=`$k get svc $svc -ojson | jq '.metadata.labels.app' -r`uid=`$k get deploy $app -ojson | jq -r .metadata.uid`$k patch svc $svc --patch '{"metadata": {"ownerReferences": [{"apiVersion": "apps/v1","blockOwnerDeletion": true,"controller": true,"kind": "Deployment","name": "'$app'","uid": "'$uid'"}]}}'done# replace ingress host: jiankunking-ing-internal -> jiankunking-ing-test-internal#	-gt:大于,greater thanif [ `$k get ing -lingress-class!=internal-gw 2>/dev/null | wc -l` -gt 0 ]; then$k get ing -lingress-class!=internal-gw -ojson | jq '.items[].spec.rules[].host |= sub("jiankunking-ing-internal"; "jiankunking-ing-test-internal")' | $k apply -f -fi
done

svc jq

[jiankunking@hddxps8156 ~]# kubectl get svc gateway -n console-dev -ojson 
{"apiVersion": "v1","kind": "Service","metadata": {"annotations": {"k8s.haier/creator": "jiankunking"},"creationTimestamp": "2023-07-04T03:21:53Z","labels": {"app": "gateway","app.kubernetes.io/name": "gateway","app.kubernetes.io/version": "v0"}},"spec": {},"status": {"loadBalancer": {}}
}
[jiankunking@hddxps8156 ~]# kubectl get svc gateway -n console-dev -ojson | jq '.metadata.labels.app' -r
gateway
[jiankunking@hddxps8156 ~]# kubectl get svc gateway -n console-dev -ojson | jq .metadata.labels.app -r
gateway
[jiankunking@hddxps8156 ~]# 

deploy jq

[jiankunking@hddxps8156 ~]# kubectl get deploy gateway -n console-dev -ojson
{"apiVersion": "apps/v1","kind": "Deployment","metadata": {"annotations": {"deployment.kubernetes.io/revision": "3","k8s.haier/description": "","k8s.haier/display-name": "gateway","k8s.haier/updated-timestamp": "2023-07-04T02:58:06Z"},"creationTimestamp": "2023-07-04T02:51:18Z","generation": 3,"labels": {"app": "gateway","app.kubernetes.io/name": "gateway","app.kubernetes.io/version": "v0","k8s.haier/app-type": ""},"name": "gateway","namespace": "console-dev","resourceVersion": "689881460","uid": "9fe8462b-d65a-4e9f-942c-4cffb912b0e5"},"spec": {},"status": {}
}
[jiankunking@hddxps8156 ~]# kubectl get deploy gateway -n console-dev -ojson | jq -r .metadata.uid
9fe8462b-d65a-4e9f-942c-4cffb912b0e5
[jiankunking@hddxps8156 ~]# 

作者:jiankunking 出处:

本文发布于:2024-02-01 04:19:33,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170673237533807.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:学习笔记   Linux   Shell
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23