Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # colors
- RED="^[[1;31m"
- GREEN="^[[1;32m"
- non="^[[0m"
- # script to produce fancylxc output
- printout="Name State IPv4 Autostart OSType"
- printout="${printout}"$'\n'"----- ------ ----- ---------- ---------"
- cpath="/lxc"
- me=$(basename $0)
- runningonly=0
- if [[ ${me} =~ "run" ]]; then
- runningonly=1
- fi
- # check auto start status
- chkstart() {
- autostart=$(egrep 'lxc.start.auto[ =]*1' ${cpath}/${name}/config | awk -F= '{print $2}')
- if [[ "${autostart}" == "" ]] || [[ ${autostart} -eq 0 ]]; then
- autostart="NO"
- else
- autostart="YES"
- fi
- }
- chkostype() {
- os=$(egrep -o '[a-z]+.common.conf' ${cpath}/${name}/config)
- case ${os} in
- ubuntu*) ostype="Ubuntu";;
- redhat*) ostype="Redhat";;
- debian*) ostype="Debian";;
- centos*) ostype="CentOS";;
- *) ostype="Unknown";;
- esac
- }
- for cname in $(lxc-ls 2>/dev/null); do
- name="${cname}"
- if [[ "x${cname}" == "x." ]]; then continue; fi
- state=$(lxc-info -n "${cname}" | egrep "^State" | awk -F: '{print $2}')
- if [[ "${state}" =~ "RUNNING" ]]; then
- ipaddr=$(lxc-info -n "${cname}" | egrep "^IP" | awk -F: '{print $2}')
- if [[ "x${ipaddr}" == "x" ]]; then ipaddr="-"; fi
- else
- lxcconfigpath="${cpath}/${cname}/config"
- ipaddr=$(egrep 'ipv4 ?= ?.*$' ${lxcconfigpath} |awk '{print $NF}'|sed 's@/.*$@@')
- if [[ "x${ipaddr}" == "x" ]]; then ipaddr="-"; fi
- fi
- if [[ -r "${cpath}/${cname}/config" ]]; then
- chkstart
- chkostype
- fi
- printout="${printout}"$'\n'"${name} ${state} ${ipaddr} ${autostart} ${ostype}"
- done
- if [[ ${runningonly} -eq 1 ]]; then
- echo -e "${printout}" | column -t | sed "s/\(STOPPED\)/${RED}\1${non}/i; s/\(RUNNING\)/${GREEN}\1${non}/i" | awk 'NR<3{print;next}{print | "egrep RUNNING"}'
- else
- echo -e "${printout}" | column -t | sed "s/\(STOPPED\)/${RED}\1${non}/i; s/\(RUNNING\)/${GREEN}\1${non}/i"
- fi
Advertisement
Add Comment
Please, Sign In to add comment