重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要为大家展示了“Linux如何自动关机与计算任务管理”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux如何自动关机与计算任务管理”这篇文章吧。
创新互联专业为企业提供密云网站建设、密云做网站、密云网站设计、密云网站制作等企业网站建设、网页设计与制作、密云企业网站模板建站服务,十多年密云做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
1.自动关机脚本
每隔一定时间检测一次,如果不存在某个进程就关机,如果存在就休眠。
用法: ./脚本名 进程名 休眠时间
注意:要有关机的权限(一般来说是root用户或者有sudoer权限)!
建议用法: screen ./脚本名 进程名 休眠时间
#/bin/bash while : do thread_num=`ps -e |grep $1 | wc -l` if [ $thread_num -eq 0 ]; then date >> shutdowntime.log shutdown -h exit else echo "Sleeping $2 second..." sleep $2 fi done
2.计算任务管理脚本
简单的计算任务管理:检测某个为某个名字的进程的个数,如果不是少于设定的个数,就提交任务,直到进程数和设定的相等;如果进程数大于等于设定个数,就休眠一定时间。
用法:./脚本名 程序名 任务数 循环次数
建议用screen运行。
#!/bin/bash pro_name=$1 task_num=$2 cycle_num=$3 i=1 while (( $i <= $cycle_num )) do pro_num=$(ps -A | grep $pro_name |wc -l) if (( $pro_num < $task_num )); then echo $i #在这里写要执行程序 sleep 1s i=$(($i+1)) else echo 'sleeping 600s' sleep 600s fi done
另外,可以在循环中针对时段控制任务数:
core_num=`cat /proc/cpuinfo |grep 'core id' | wc -l` time_hour=`date +%H` if (( $time_hour >= 23 )) || (( $time_hour < 7 ); then task_num=$core_num #晚上23:00以后到早上7点前这段时间,就按机器的core数来提任务 else task_num=$(( $core_num / 2 )) #其它时间只占用一半的core数来用于任务 fi
在执行完后所有该做循环这后,也可以加上关机的命令。
以上是“Linux如何自动关机与计算任务管理”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!