说明: < > 的内容需要替换(带<>一起替换)

python

  • 获取当前路径
    • os.path.split(os.path.realpath(__file__))[0]

Linux

  • 查看打开文件描述符最多的进程,第一列打开个数,第二列为pid
    • lsof -w -n | awk '{print $2}' | sort | uniq -c | sort -nr | more

k8s

  • 查看多个pod日志输出

    • k logs -f --since=15m -l app=ingress-nginx -n kube-system --max-log-requests=15 > nginx.log
  • 强制删除Terminating的pod

    • kubectl delete pods <pod_name> --grace-period=0 --force -n <namespace>
  • 清理已完成job

    • kubectl delete job $(kubectl get job|grep -v -i COMPLETIONS |grep "1/1"|awk '{print $1}')
  • 创建仓库密钥

    • kubectl create secret docker-registry <registry-name> --docker-server=<registry-url> --docker-username=<username> --docker-password=<passwd> -n <namespace>
  • 创建tls

    • kubectl create secret tls <name> --cert=<cert-url> --key=<key-url> -n <namespace>
  • 给节点打污点并驱逐pod

    • kubectl cordon k8s-node-xxx
    • kubectl drain k8s-node-xxx --delete-local-data --ignore-daemonsets --force
  • 节点恢复调度

    • kubectl uncordon k8s-node-xxx
  • 当namespace无法删除的时候

    • kubectl api-resources -o name --verbs=list --namespaced | xargs -n 1 kubectl get --show-kind --ignore-not-found -n some-namespace
    • 可以查看是哪些资源占用,导致无法删除,可以使用finalizers置空的方式来强制删除占用资源

mysql

  • 导入数据报外键错误,可能是因为外键的表还没建立,可以暂时取消外键检查,添加以下语句到sql文件头
    • SET FOREIGN_KEY_CHECKS=0;

docker

  • 查看容器的磁盘占用docker system df -v
  • 查看overlay2下的目录,对应哪些容器,以便查看磁盘占用
    • docker ps -q | xargs docker inspect --format '{{.State.Pid}}, {{.Name}}, {{.GraphDriver.Data.WorkDir}}'|grep "b2aac876bb88cdd86ac80395530dd4cb72d95f7d089aeb780ace564324b10944"

PG

  • 删除账号的时候无法删除

    • 切换到旧账号具有权限的库,执行以下语句
    • REASSIGN OWNED BY old_user TO new_user;
    • DROP OWNED BY old_user;
    • DROP USER old_user;
  • 创建只读账号

    - --创建用户
    CREATE USER adb_clickhouse_read WITH ENCRYPTED PASSWORD '123456';
    
    --设置用户默认开启只读事务
    ALTER USER adb_clickhouse_read SET default_transaction_read_only = ON;
    
    --将schema中usage权限赋予给adb_clickhouse_read用户,访问所有已存在的表
    GRANT usage ON SCHEMA public TO adb_clickhouse_read;
    
    --将schema中表的查询权限赋予给adb_clickhouse_read用户,访问所有已存在的表
    GRANT SELECT ON ALL tables IN SCHEMA public TO adb_clickhouse_read;
    
    --未来访问public模式下所有新建的表:
    ALTER DEFAULT privileges IN SCHEMA public GRANT SELECT ON tables TO adb_clickhouse_read;