182 lines
6.0 KiB
Bash
182 lines
6.0 KiB
Bash
#!/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` <file name>"
|
|
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
|