公司的集羣不少人一塊兒用,有時候就不免資源緊張,某次須要用的時候沒資源等了半天仍是沒資源,再等半天仍是沒資源,因而就寫了個腳本泄憤,建議看到的人拷走放在本身公司集羣上長期運行 :)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