#!/bin/sh # # | _ # | o o | | # | _ _ _ _ | | __, _ _ # | | |/ \_/ |/ |/ | |-----|/ / | / |/ | # | |_/|__/ | | |_/|_/ |__/\_/|_/ | |_/ # | /| |\ # | \| |/ # # ipmi-fan # # controls fan speed for servers and computers using ipmi # only supports dell idrac 6 for now (r710 battletested) # # ~ rgoncalves.se . ./ipmi.sh . ./log.sh usage() { cat <<-EOF usage: ${0} -s speed EOF } log() { echo "[${0} ] $@" } main() { # parse while getopts "s:" arg; do case "${arg}" in s) speed="${OPTARG}" ;; *) usage exit 1 ;; esac done # Check fan speed validity if [ -z ${speed} ]; then log "-s must be a valid fan speend" usage exit 1 fi # load environment variables for IPMI ipmi_env # disable automatic fan control ipmi_cmd raw 0x30 0x30 0x01 0x00 log "automatic fan control disabled" # change fan speed ipmi_cmd raw 0x30 0x30 0x02 0xff "0x${speed}" log "set fan control to ${speed}" } main $@