Welcome 微信登录

首页 / 操作系统 / 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
done2.计算任务管理脚本
简单的计算任务管理:检测某个为某个名字的进程的个数,如果不是少于设定的个数,就提交任务,直到进程数和设定的相等;如果进程数大于等于设定个数,就休眠一定时间。
用法:./脚本名 程序名 任务数 循环次数
建议用screen运行。#!/bin/bashpro_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下的任意精度计算器bcLinux下给普通用户添加Sudo权限相关资讯      Linux教程 
  • Linux教程:如何在命令行中查看目  (07/28/2014 12:22:23)
  • Linux 修改root密码  (11/03/2012 07:53:38)
  • su - root 与su root的区别  (06/06/2012 00:39:40)
  • Linux进程间通信:消息队列  (01/28/2013 09:43:00)
  • U盘安装Linux开机无法启动解决方法  (10/07/2012 08:55:52)
  • Windows 7/Linux 同步时间  (05/15/2012 06:17:55)
本文评论 查看全部评论 (0)
表情: 姓名: 字数