Здесь размещено описание одного из функциональных блоков инструкции с примером управления виртуальными машинами "Qemu-KVM" через простейшие BASH-скрипты. Отдельно неприменимо.
Пример опций конфигурационного файла виртуальной машины:
# vi /usr/local/etc/kvm/cnf.d/mashine0.cnf
....
# Перечень электронных почтовых адресов операторов подсистемы виртуализации
email=admin@example.com operator@example.net
....
# Перечень электронных почтовых адресов операторов подсистемы виртуализации
email=admin@example.com operator@example.net
....
Фрагмент кода со вспомогательными функциями:
# vi /etc/kvm/fnc.d/1.misc.fnc
#!/bin/bash
# This file contains the code snippet for the shell Bash v.4 (Bourne again shell)
# Файл содержит фрагмент кода для командного интерпретатора Bash v.4 (Bourne again shell)
# Определяем функцию уведомления администратора о нештатном развитии ситуации
# Example use: send-report "Subject" "Body"
function send-report() {
local MSUBJECT=$1
local MREPORT=$2
# Получаем перечень электронных почтовых адресов операторов подсистемы виртуализации
EMAIL=`grep --ignore-case "^email=" "${CNF}" | awk -F = '{print $2}'`
# Посылаем электронное письмо
echo -e "Content-Type: text/plain; charset="utf-8"\nSubject: Virtualization warning: ${HOSTNAME}: ${MSUBJECT}\n${DATE}.\nHost: ${HOSTNAME}.\nSubject: ${MSUBJECT}.\n${MREPORT}" | sendmail -F${HOSTNAME} ${EMAIL}
}
# Формируем произвольную строку параметров определяемых вручную (extra string)
ESTRING="-watchdog i6300esb -watchdog-action debug"
# ESTRING="-watchdog ib700 -watchdog-action debug"
# This file contains the code snippet for the shell Bash v.4 (Bourne again shell)
# Файл содержит фрагмент кода для командного интерпретатора Bash v.4 (Bourne again shell)
# Определяем функцию уведомления администратора о нештатном развитии ситуации
# Example use: send-report "Subject" "Body"
function send-report() {
local MSUBJECT=$1
local MREPORT=$2
# Получаем перечень электронных почтовых адресов операторов подсистемы виртуализации
EMAIL=`grep --ignore-case "^email=" "${CNF}" | awk -F = '{print $2}'`
# Посылаем электронное письмо
echo -e "Content-Type: text/plain; charset="utf-8"\nSubject: Virtualization warning: ${HOSTNAME}: ${MSUBJECT}\n${DATE}.\nHost: ${HOSTNAME}.\nSubject: ${MSUBJECT}.\n${MREPORT}" | sendmail -F${HOSTNAME} ${EMAIL}
}
# Формируем произвольную строку параметров определяемых вручную (extra string)
ESTRING="-watchdog i6300esb -watchdog-action debug"
# ESTRING="-watchdog ib700 -watchdog-action debug"