Может ли Mail/Mailx использоваться с информацией почтового сервера в строке?
Я пытаюсь создать bash-скрипт, чтобы проверить, что монтируются ли они, и если нет, то и регистрируют информацию в файле, и отправляют уведомление. Я очень новичок в написании сценариев, поэтому некоторые из входов и выходов неуловимы для меня.
Поскольку мы делаем этот сценарий для мониторинга очень привередливого программного обеспечения, я надеялся сделать как можно больше в строке, а не что-то, что создает файл конфигурации, или что-то еще, потому что я знаю, что если что-то изменится в качестве настройки поставщика скажу, что это причина всех проблем. Ниже приведен код того, что я придумал до сих пор. Я признаю, что я не совсем уверен, что что-то в коде будет работать, поэтому, если вы увидите какие-либо явные ошибки, которые я сделал, я хотел бы знать о них.
#!/bin/bash
LOGFILE="/tmp/logs/mount.log
TIMESTAMP=`date "+%Y-%m-%d %H:%M:%S"`
while sleep 10m;
do
status=$(for mnt in /reachengine /reachdata/mongo /reachbkups /mnt/AsperaShares /mnt/Editing /mnt/VOD-World/Movies_in_ProRes51_Archive /mnt/Production /mnt/ReachEngine /mnt/ITBackup /mnt/reach '/mnt/Ready for Air' '/mnt/Ready for Reach'; do mountpoint -q "$mnt" || echo "$TIMESTAMP $mnt missing"; done)
[ "$status" ] && echo "$status" >> $LOGFILE
[ "$status" ] && echo "$status" | mail -s "Missing mount" ####@###.##
done
1 ответ
#!/bin/bash
logfile="/tmp/logs/mount.log" # add 1 quote
timestamp=$( date "+%Y-%m-%d %H:%M:%S" )
mounts=(
/reachengine
/reachdata/mongo
/reachbkups
/mnt/AsperaShares
/mnt/Editing
/mnt/VOD-World/Movies_in_ProRes51_Archive
/mnt/Production
/mnt/ReachEngine
/mnt/ITBackup
/mnt/reach
'/mnt/Ready for Air'
'/mnt/Ready for Reach'
)
while sleep 10m; do
status=$(
for mnt in ${mounts[@]}; do
mountpoint -q "$mnt" || echo "$timestamp $mnt missing"
done
)
if [ "$status" ]; then
echo "$status" >> $logfile
echo "$status" | mail -s "Missing mount" ####@###.##
fi
done
предложения с:
- исправление закрыть двойную кавычку в лог-файле =
- строчные переменные
$( )
вместо клюшки- массив для сканирования креплений, проще в обслуживании
- лучший отступ
просто быстрое чтение, а не тест
возьми то, что тебе нравится