zoukankan      html  css  js  c++  java
  • bash脚本:集群资源争夺战crazy-killer

    背景

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

    实现

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

    .

  • 相关阅读:
    mailServer Apache James / sendmail / qmail
    transactionServer IBM CICS / BEA Tuxedo
    java security / SSL / TLS / md5 / sha / base64 / rsa / des / aes / 3des / Blowfish
    growing
    framework osworkflow / jbpm
    8086CPU的16位寄存器
    寄存器AX
    寄存器AX
    8086CPU的16位寄存器
    8086CPU的8位寄存器数据存储情况
  • 原文地址:https://www.cnblogs.com/cc11001100/p/9696076.html
Copyright © 2011-2022 走看看