公司的集群不少人一块儿用,有时候就不免资源紧张,某次须要用的时候没资源等了半天仍是没资源,再等半天仍是没资源,因而就写了个脚本泄愤,建议看到的人拷走放在本身公司集群上长期运行 :)html
此脚本运行时会每隔10秒检测一下,列出当前运行的全部任务,若是提交者不是当前登陆用户的话就杀掉,为了搞清楚本身手上有多少血债,杀掉任务的同时必需要记下log。bash
crazy-killer.sh:app
#! /bin/bash ########################################################################## # # 循环检测,将不是本身启动的任务所有杀掉 # ########################################################################## log(){ echo "[`date '+%F %T'`] $1" >> crazy-killer.log } map(){ function_name=$1 shift 1 while read line do $function_name $line $@ 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
.htm