我正试图执行以下伪algorithm:
while true do if there is 1G of free memory && server load below 60% ./some-script & break else sleep 10 fi done
我需要帮助(build议,实施注意事项)与实施:
您需要对可用RAM进行比较,因此我们将从/ proc / meminfo中获取详细信息。
通过做一些巫术(从https://stackoverflow.com/a/9229692/1287561彻底窃取)
while true do if [ `cat /proc/meminfo |grep MemFree|awk '{ print $2 }'` -lt 1048576 && `top -bn1 | grep "Cpu(s)" | \ sed "s/.*, *\([0-9.]*\)%\id.*/\1/" | \ awk '{print 100 - $1}'` -lt 60 ] ./some-script & break else sleep 10 fi done
只需使用batch(1) ,即at包的一部分。 它在负载低时运行参数。