Files
Bash_Scrips/scripts/mount_tool.sh
2025-06-23 21:19:51 +02:00

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