#!/bin/bash #(c) Roy Cohen 29/03/2014 :roy@wondercohen.nl #objective :Mount and Umount mounts on remote server #last update :10/05/2014 #version :0.3 if [ $# -lt 1 ] then echo "Syntax error must be : ./`basename $0` " exit fi clear # Parameter DATE=`/bin/date +%H\u%M-%d-%b-%Y` FILE=$1 # Variables LOGDIR="$HOME/celera/logs/" check(){ opt_checkstatus=1 while [ $opt_checkstatus != 6 ] do clear echo -e "\n\t*****Checks for mount on servers*****\n 1. Check all mounts via mtab\n 2. Check Celera mounts via mtab\n 3. Check all mounts via fstab\n 4. Check Celera mounts via fstab\n 5. Check Noauto mounts in fstab\n 6. Go back to Main Menu" read opt_checkstatus case $opt_checkstatus in 1) for host in $(cat $FILE); do ssh $host 'for i in $(hostname && echo "**Mounts**" && cat /etc/mtab |grep -v "^#" |awk '\''{print $2}'\'' ) ; do echo $i; done' 2>&1 | tee -a ${LOGDIR}allMtab${DATE} done read temp;; 2) for host in $(cat $FILE); do ssh $host 'for i in $(hostname && echo "**Mounts**" && cat /etc/mtab |grep -v "^#" | grep sc |awk '\''{print $2}'\'' ) ; do echo $i; done' 2>&1 | tee -a ${LOGDIR}celeraMtab_${DATE} done read temp;; 3) for host in $(cat $FILE); do ssh $host 'for i in $(hostname && echo "**Mounts**" && cat /etc/fstab |grep -v "^#" |awk '\''{print $2}'\'' ) ; do echo $i; done' 2>&1 | tee -a ${LOGDIR}allFstab${DATE} done read temp;; 4) for host in $(cat $FILE); do ssh $host 'for i in $(hostname && echo "**Mounts**" && cat /etc/fstab |grep -v "^#" | grep sc |awk '\''{print $2}'\'' ) ; do echo $i; done' 2>&1 | tee -a ${LOGDIR}celeraFstab${DATE} done read temp;; 5) for host in $(cat $FILE); do ssh $host 'for i in $(hostname && echo "**Mounts**" && cat /etc/fstab |grep -v "^#" | grep noauto | grep -v sys |awk '\''{print $2}'\'' ) ; do echo $i; done' 2>&1 | tee -a ${LOGDIR}allNoautoFstab${DATE} done read temp;; 6) main;; *) echo -e "Wrong Option Selected!!!" esac done } mount() { opt_checkstatus=1 while [ $opt_checkstatus != 4 ] do clear echo -e "\n\t***** Mount on servers *****\n 1. Mount all via fstab\n 2. Mount only Celera via fstab\n 3. Mount all noauto via fstab\n 4. Go back to Main Menu" read opt_checkstatus case $opt_checkstatus in 1) for host in $(cat $FILE); do if [[ $host =~ clnara* || clnars1d && clnars1m && clnsr206 && clnprp1d && clnprp1m && clnpr2e4 ]] ; then echo -e " $host must be mounted as binformd user\n" | tee -a ${LOGDIR}binformd${DATE} else ssh $host mount -a 2>&1 | tee -a ${LOGDIR}mountAll${DATE} fi done read temp;; 2) for host in $(cat $FILE); do if [[ $host =~ clnara* || clnars1d && clnars1m && clnsr206 && clnprp1d && clnprp1m && clnpr2e4 ]] ; then echo -e " $host must be mounted as binformd user\n"| tee -a ${LOGDIR}binformd${DATE} else ssh $host 'for i in $(hostname && echo "**Mounts that were mounted**" && cat /etc/fstab |grep -v "^#" | grep sc |awk '\''{print $2}'\'' ) ; do mount $i; done' 2>&1 | tee -a ${LOGDIR}celeraMnt${DATE} fi done read temp;; 3) for host in $(cat $FILE); do if [[ $host =~ clnara* || clnars1d && clnars1m && clnsr206 && clnprp1d && clnprp1m && clnpr2e4 ]] ; then echo -e " $host must be mounted as binformd user\n"| tee -a ${LOGDIR}binformd${DATE} else ssh $host 'for i in $(hostname && echo "**Mounts that were mounted**" && cat /etc/fstab |grep -v "^#" | grep noauto | grep -v sys |awk '\''{print $2}'\'' ) ; do mount $i; done' 2>&1 | tee -a ${LOGDIR}NoautoMnt${DATE} fi done read temp;; 4) main;; *) echo -e "Wrong Option Selected!!!" esac done } umount() { opt_checkstatus=1 while [ $opt_checkstatus != 3 ] do clear echo -e "\n\t***** UnMount on servers *****\n 1. UnMount all via fstab\n 2. UnMount only Celera via fstab\n 3. Go back to Main Menu" read opt_checkstatus case $opt_checkstatus in 1) for host in $(cat $FILE); do echo "are you sure? if so change the script" #ssh $host umount -a 2>&1 | tee -a ${LOGDIR}umountAll${DATE} done read temp;; 2) for host in $(cat $FILE); do ssh $host 'for i in $(hostname && echo "**Mounts that were unmounted**" && cat /etc/fstab | grep -v "^#" | grep sc |awk '\''{print $2}'\'' ) ; do umount $i; done' 2>&1 | tee -a ${LOGDIR}NoautoUmnt${DATE} done read temp;; 3) main;; *) echo -e "Wrong Option Selected!!!" esac done } main() { opt_main=1 while [ $opt_main != 4 ] do echo -e "/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n" #############Check Mounts ############ echo -e "\t*****Main Menu*****\n 1. Checks mounts\n 2. Mount\n 3. Umount\n 4. Exit" read opt_main case $opt_main in 1) check ;; 2) mount ;; 3) umount ;; 4) exit 0 ;; *) echo -e "Wrong option Selected!!!" esac done } main exit 0