Difference between revisions of "Lab2 Shell Script Demo 2"
(Created page with '<pre> </pre> [ Scripting Compatibility for Current OPS235 labs: (Week-by-week) ] [ OPS235 - Curriculum Discussion ] [ [http://zenit.senec…') |
|||
Line 1: | Line 1: | ||
<pre> | <pre> | ||
+ | #!/bin/bash | ||
+ | # ATTENTION: This script is still a demo creating a file with | ||
+ | # imaginary settings for VMs! | ||
+ | |||
+ | # vm-stop.bash | ||
+ | # | ||
+ | # Author: Murray Saul | ||
+ | # Date: January 17, 2015 | ||
+ | # | ||
+ | # Purpose: To allow a Linux sysadmin to identify status of | ||
+ | # VMs on system and stop them... | ||
+ | |||
+ | # Check to see if logged in as root to be able to create file | ||
+ | # in /root/ directory... | ||
+ | |||
+ | if [ $USER != "root" ] | ||
+ | then | ||
+ | echo "You must be logged in as root to run the command." | ||
+ | echo "Either login as root or issue command \"sudo ./report1.bash\"" | ||
+ | exit 1 | ||
+ | fi | ||
+ | |||
+ | # Create dummy virsh list file (virsh list --all) for testing purposes | ||
+ | # to incoporate the zenity command to list status of VMs and | ||
+ | # use checkbox to check or uncheck based on their status in order | ||
+ | # to launch VM that are only "shut-off" | ||
+ | |||
+ | cat > vm-status.txt <<+ | ||
+ | Id Name State | ||
+ | ---------------------------------------------------- | ||
+ | 1 practical1 running | ||
+ | 2 centos1 running | ||
+ | - centos2 shut off | ||
+ | - centos3 shut off | ||
+ | + | ||
+ | |||
+ | awk 'NR > 2 {print}' vm-status.txt > vm-status2.txt | ||
+ | |||
+ | # Using zenity (dialog box constructor) | ||
+ | # Prompts user for elements to be included in the report... | ||
+ | # Activated check box returns values (multiple values | symbol )... | ||
+ | |||
+ | items=$(zenity --height 320 --width 290 --text "<b>Current status of VMs:\n(VMs running are not selected to start):</b>\n" --list --checklist --column "Session Type" --column "Description" $(awk -F" " '{if ($3 == "running") {print "TRUE " $2 "-running"} else {print "FALSE " $2 "-shutdown"}}' vm-status2.txt)) | ||
+ | |||
+ | # Replace pipe "|" with space, and store as positional parameters | ||
+ | set $(echo $items | sed "s/|/ /g") > /dev/null 2> /dev/null | ||
+ | |||
+ | for x # Run loop for each positional parameter to launch application | ||
+ | do | ||
+ | |||
+ | virsh stop $x | ||
+ | |||
+ | done | ||
+ | |||
+ | |||
+ | # End of Bash Shell Script | ||
</pre> | </pre> | ||
[ [[Scripting Compatibility for Current OPS235 labs: (Week-by-week)]] ] | [ [[Scripting Compatibility for Current OPS235 labs: (Week-by-week)]] ] |
Revision as of 10:42, 17 January 2015
#!/bin/bash # ATTENTION: This script is still a demo creating a file with # imaginary settings for VMs! # vm-stop.bash # # Author: Murray Saul # Date: January 17, 2015 # # Purpose: To allow a Linux sysadmin to identify status of # VMs on system and stop them... # Check to see if logged in as root to be able to create file # in /root/ directory... if [ $USER != "root" ] then echo "You must be logged in as root to run the command." echo "Either login as root or issue command \"sudo ./report1.bash\"" exit 1 fi # Create dummy virsh list file (virsh list --all) for testing purposes # to incoporate the zenity command to list status of VMs and # use checkbox to check or uncheck based on their status in order # to launch VM that are only "shut-off" cat > vm-status.txt <<+ Id Name State ---------------------------------------------------- 1 practical1 running 2 centos1 running - centos2 shut off - centos3 shut off + awk 'NR > 2 {print}' vm-status.txt > vm-status2.txt # Using zenity (dialog box constructor) # Prompts user for elements to be included in the report... # Activated check box returns values (multiple values | symbol )... items=$(zenity --height 320 --width 290 --text "<b>Current status of VMs:\n(VMs running are not selected to start):</b>\n" --list --checklist --column "Session Type" --column "Description" $(awk -F" " '{if ($3 == "running") {print "TRUE " $2 "-running"} else {print "FALSE " $2 "-shutdown"}}' vm-status2.txt)) # Replace pipe "|" with space, and store as positional parameters set $(echo $items | sed "s/|/ /g") > /dev/null 2> /dev/null for x # Run loop for each positional parameter to launch application do virsh stop $x done # End of Bash Shell Script
[ Scripting Compatibility for Current OPS235 labs: (Week-by-week) ] [ OPS235 - Curriculum Discussion ] [ OPS Stream Discussion ]