bash脚本:集群资源争夺战crazy-killer
发布时间:2020-12-15 23:26:23 所属栏目:安全 来源:网络整理
导读:? 背景 公司的集群很多人一起用,有时候就难免资源紧张,某次需要用的时候没资源等了半天还是没资源,再等半天还是没资源,于是就写了个脚本泄愤,建议看到的人拷走放在自己公司集群上长期运行 :) ? 实现 此脚本运行时会每隔10秒检测一下,列出当前运行的
? 背景公司的集群很多人一起用,有时候就难免资源紧张,某次需要用的时候没资源等了半天还是没资源,再等半天还是没资源,于是就写了个脚本泄愤,建议看到的人拷走放在自己公司集群上长期运行 :) ? 实现此脚本运行时会每隔10秒检测一下,列出当前运行的所有任务,如果提交者不是当前登录用户的话就杀掉,为了搞清楚自己手上有多少血债,杀掉任务的同时必须要记下log。 crazy-killer.sh: #! /bin/bash ########################################################################## # # 循环检测,将不是自己启动的任务全部杀掉 # ########################################################################## log(){ echo "[`date ‘+%F %T‘`] $1" >> crazy-killer.log } map(){ function_name=$1 shift 1 while read line do $function_name $line [email?protected] done } kill_by_id(){ log "kill $1" # 危险操作打个码 # /usr/bin/yarn application -kill $1 } crazy_killer(){ while true do # $1 app id,$4 user id /usr/bin/yarn application -list | awk ‘{print $1,$4}‘ | grep -v "$survive_user_name" | grep -oP "application_d+_d+" | map "kill_by_id" sleep 10 done } survive_user_name="$USER" crazy_killer ? . (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |