Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #В скрипте проверяется наличие контрол-файла на шаре, если он найдет - то все ок и можно вызывать скрипт копирования. Если контролфайл не найден-
- #то проверяется смонтирована ли шара и если нет, то выполняется попытка монтирование и повторного поиска контролфайла. Если все ок - то вызывается скрипт.
- CONTROLFILE=/mnt/smb/controlfile
- LOGS=/root/nas/logs/
- STORAGE=/storage
- echo "Subject: SMB check_log" >> $LOGS/mailfile.txt
- echo "" >> $LOGS/mailfile.txt
- if [[ -f $CONTROLFILE ]];
- then
- echo "SMB Share seems UP: bypassing control to copy script" > $LOGS/worklog.txt
- cat $LOGS/worklog.txt >> $LOGS/mailfile.txt && cat $LOGS/mailfile.txt | sendmail -t
- # Here will be main script
- else
- echo "CONTROFILE not found, checking if remote share is mounted..." > $LOGS/worklog.txt
- SMBMOUNTSTATUS=`systemctl status mnt-smb.mount | grep Active: | cut -d' ' -f5`
- if [[ $SMBMOUNTSTATUS == active ]];
- then
- echo "SMB Share is mounted, but CONTROLFILE not found. Something wrong could happen, check it manually" >> $LOGS/worklog.txt
- cat $LOGS/worklog.txt >> $LOGS/mailfile.txt && cat $LOGS/mailfile.txt | sendmail -t
- exit 1
- elif [[ $SMBMOUNTSTATUS == inactive ]];
- then
- echo "SMB share unmounted, trying to remount..." >> $LOGS/worklog.txt
- systemctl start mnt-smb.mount
- SMBMOUNTSTATUS=`systemctl status mnt-smb.mount | grep Active: | cut -d' ' -f5`
- if [[ $SMBMOUNTSTATUS == active ]];
- then
- echo "SMB Share seems UP after remount: checking controlfile existing.." >> $LOGS/worklog.txt
- if [[ -f $CONTROLFILE ]];
- then
- echo "SMB Share is UP after remount and controfile exists, bypassing shell to copy script" >> $LOGS/worklog.txt
- cat $LOGS/worklog.txt >> $LOGS/mailfile.txt && cat $LOGS/mailfile.txt | sendmail -t
- # From this line you should call copy script
- else
- echo "SMB Share is mounted after remount, but CONTROLFILE not found. Something wrong could happen, check it manually" >> $LOGS/worklog.txt
- cat $LOGS/worklog.txt >> $LOGS/mailfile.txt && cat $LOGS/mailfile.txt | sendmail -t
- exit 1
- fi
- elif [[ $SMBMOUNTSTATUS == inactive ]];
- then
- echo "Cannon mount SMB Share, check spr1-backup01 share availability" >> $LOGS/worklog.txt
- cat $LOGS/worklog.txt >> $LOGS/mailfile.txt && cat $LOGS/mailfile.txt | sendmail -t
- else
- echo "Cannot get mount status. Check it manually" >> $LOGS/worklog.txt
- cat $LOGS/worklog.txt >> $LOGS/mailfile.txt && cat $LOGS/mailfile.txt | sendmail -t
- fi
- fi
- fi
Advertisement
Add Comment
Please, Sign In to add comment