常用运维命令收集

29

常用的运维命令收集

服务器

  • 查看服务器磁盘中占用>500M的文件
find / -type f -size +500M -exec ls -lh {} \; 2>/dev/null | awk '{ print $9 ": " $5 }'
  • 查找服务器文件,并且忽略权限不足导致的输出
find / -name [文件地址/可以使用通配符] 2>/dev/null

K8s

  • 删除所有因Evicted原因失败的pod:删除内容【Evicted】可以更换

    kubectl get pods --all-namespaces --field-selector=status.phase=Failed -o jsonpath='{.items[?(@.status.reason=="Evicted")].metadata.name}' | xargs -I {} kubectl delete pod {} --grace-period=0 --force --namespace {}
    
  • docker进入容器内并指定账号角色为root

    docker exec -it --user root xxxxxx sh
    
  • 查看docker images中所有的arm架构的镜像

docker images --format "{{.Repository}}:{{.Tag}} {{.ID}}" | \
while read repo_tag image_id; do
  if docker image inspect "$image_id" --format '{{.Architecture}}' | grep -q 'arm'; then
    echo "$repo_tag ($image_id)"
  fi
done
  • 查看docker images中所有的arm架构镜像并且删除
docker images --format "{{.Repository}}:{{.Tag}} {{.ID}}" | \
while read repo_tag image_id; do
  if docker image inspect "$image_id" --format '{{.Architecture}}' | grep -q 'arm'; then
    echo "Deleting $repo_tag ($image_id)"
    docker rmi -f "$image_id"
  fi
done
  • 调试容器网络

    在命名空间下临时启动一个pod调试网络

    kubectl run -i --tty debug \
      --image=deploy.bocloud.k8s:40443/alpine/curl:latest \
      --restart=Never \
      --namespace=axpaas \
      --rm
      --command -- /bin/sh \
    
  • 使用sidecar调试容器网络

    # spec.template.spec.containers 下增加一个调试容器,例如:
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-deployment
      namespace: axpaas
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: myapp
      template:
        metadata:
          labels:
            app: myapp
        spec:
          containers:
            - name: main-app
              image: your-app-image:latest
              ports:
                - containerPort: 8080
            - name: debug-sidecar
              image: deploy.bocloud.k8s:40443/alpine/curl:latest
              command: ["/bin/sh"]
              args: ["-c", "while true; do sleep 3600; done"]
              resources:
                limits:
                  cpu: "100m"
                  memory: "128Mi"
                requests:
                  cpu: "50m"
                  memory: "64Mi"
    

# 进入 debug-sidecar 容器
kubectl exec -it <pod-name> -n axpaas -c debug-sidecar -- /bin/sh
  • 使用 Ephemeral Containers调试容器网络(v1.16+)
    kubectl debug <pod-name> -n axpaas --image=deploy.bocloud.k8s:40443/alpine/curl:latest --target=<主容器名>