码迷,mamicode.com
首页 > 其他好文 > 详细

bash脚本:集群资源争夺战crazy-killer

时间:2018-09-24 18:34:09      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:false   first   UNC   als   rip   公司   line   bash   bin   

 

背景

公司的集群很多人一起用,有时候就难免资源紧张,某次需要用的时候没资源等了半天还是没资源,再等半天还是没资源,于是就写了个脚本泄愤,建议看到的人拷走放在自己公司集群上长期运行 :)

 

实现

此脚本运行时会每隔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 $@	
	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

 

.

bash脚本:集群资源争夺战crazy-killer

标签:false   first   UNC   als   rip   公司   line   bash   bin   

原文地址:https://www.cnblogs.com/cc11001100/p/9696076.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!