diff --git a/EnsureVM b/EnsureVM index 8e15d4e..9833dd8 100755 --- a/EnsureVM +++ b/EnsureVM @@ -19,19 +19,21 @@ function ensure_kvm() { # sont chargés, et que le service libvirt-bin est démarré local module modified - # Vérifier que les modules vbox* sont déchargés - for module in vboxpci vboxnetadp vboxnetflt vboxdrv; do - if lsmod | quietgrep "$module"; then - eecho "-$module" - rmmod "$module" || return 1 - modified=1 - fi - done + if [ -z "$check_only" ]; then + # Vérifier que les modules vbox* sont déchargés + for module in vboxpci vboxnetadp vboxnetflt vboxdrv; do + if lsmod | quietgrep "$module"; then + eecho "-$module" + rmmod "$module" || return 1 + modified=1 + fi + done + fi # Vérifier que kvm{,_intel,_amd} sont chargés - if grep -q ^flags.*\\\ /proc/cpuinfo; then + if grep -q '^flags.*\' /proc/cpuinfo; then module=kvm_intel - elif grep -q ^flags.*\\\ /proc/cpuinfo; then + elif grep -q '^flags.*\' /proc/cpuinfo; then module=kvm_amd else module= @@ -39,13 +41,18 @@ function ensure_kvm() { if [ -n "$module" ]; then for module in kvm $module; do if ! lsmod | quietgrep "$module"; then - eecho "+$module" - modprobe "$module" || return 1 - modified=1 + if [ -n "$check_only" ]; then + return 1 # le module n'est pas chargé + else + eecho "+$module" + modprobe "$module" || return 1 + modified=1 + fi fi done fi + [ -n "$check_only" ] && return 0 [ -n "$modified" ] && sleep 1 service= @@ -72,14 +79,16 @@ function ensure_virtualbox() { # sont chargés, et que le service vboxdrv est démarré local module modified - # Vérifier que kvm{,_intel,_amd} ne sont pas chargés - for module in kvm_intel kvm_amd kvm; do - if lsmod | quietgrep "$module"; then - eecho "-$module" - rmmod "$module" || return 1 - modified=1 - fi - done + if [ -z "$check_only" ]; then + # Vérifier que kvm{,_intel,_amd} ne sont pas chargés + for module in kvm_intel kvm_amd kvm; do + if lsmod | quietgrep "$module"; then + eecho "-$module" + rmmod "$module" || return 1 + modified=1 + fi + done + fi # Vérifier que les modules vbox* sont chargés [ -f /lib/modules/`uname -r`/updates/dkms/vboxpci.ko ] && @@ -87,20 +96,27 @@ function ensure_virtualbox() { vboxmodules=(vboxnetflt vboxnetadp vboxdrv) for module in "${vboxmodules[@]}"; do if ! lsmod | quietgrep "$module"; then - eecho "+$module" - modprobe "$module" || return 1 - modified=1 + if [ -n "$check_only" ]; then + return 1 # le module n'est pas chargé + else + eecho "+$module" + modprobe "$module" || return 1 + modified=1 + fi fi done + [ -n "$check_only" ] && return 0 [ -n "$modified" ] && sleep 1 # s'assurer que le service tourne service vboxdrv startm } +check_only= parse_opts + "${PRETTYOPTS[@]}" \ --help '$exit_with display_help' \ + -c,--check-only,--check check_only=1 \ @ args -- "$@" && set -- "${args[@]}" || die "$args" run_as_root "$@" diff --git a/SKvm b/SKvm index 43e857d..060ab8f 100755 --- a/SKvm +++ b/SKvm @@ -9,19 +9,29 @@ USAGE $scriptname {-l|-A|-g} OPTIONS - -n Ne rien faire excepté s'assurer que les modules kvm sont chargés - -u Lancer l'opération avec les droits de l'utilisateur courant. Par défaut, + -n, --check + Ne rien faire excepté s'assurer que les modules kvm sont chargés + -u, --user + Lancer l'opération avec les droits de l'utilisateur courant. Par défaut, ce script tente d'acquérir les droits de root. - -l Lister les machines virtuelles - -s Démarrer la machine virtuelle (par défaut) + -l, --list + Lister les machines virtuelles + -s, --start + Démarrer la machine virtuelle (par défaut) Si le nom de la machine virtuelle n'est pas spécifiée, un menu est affiché - -k Arrêter la machine virtuelle - -H Arrêter sauvagement la machine virtuelle - -r Redémarrer la machine virtuelle - -S Enregistrer l'état de la machine virtuelle - -A Arrêter toutes les machines virtuelles qui tournent actuellement - -g Afficher le gestionnaire de machines virtuelle" + -k, --stop + Arrêter la machine virtuelle + -H, --destroy + Arrêter sauvagement la machine virtuelle + -r, --restart + Redémarrer la machine virtuelle + -S, --managed-save + Enregistrer l'état de la machine virtuelle + -A, --stop-all + Arrêter toutes les machines virtuelles qui tournent actuellement + -g, --gui + Afficher le gestionnaire de machines virtuelle" } source "$(dirname "$0")/ulib/ulib" && @@ -70,15 +80,15 @@ stopaction=shutdown parse_opts + "${PRETTYOPTS[@]}" \ --help '$exit_with display_help' \ -u,--user sudo= \ - -n action=nop \ + -n,--check action=nop \ -l,--list action=list \ -s,--start action=start \ -k,-t,--stop '$action=stop; stopaction=shutdown' \ - -H '$action=stop; stopaction=destroy' \ + -H,--destroy '$action=stop; stopaction=destroy' \ -r,--restart '$action=stop; stopaction=reboot' \ - -S '$action=stop; stopaction=managedsave' \ + -S,--managedsave,--managed-save '$action=stop; stopaction=managedsave' \ -A,--stopall,--stop-all action=stopall \ - -g action=gui \ + -g,--gui action=gui \ @ args -- "$@" && set -- "${args[@]}" || die "$args" if ! is_root && [ -n "$sudo" ]; then