Наш внешний поставщик ИТ-услуг запускает следующий сценарий через cron для очистки ядра Oracle и файлов трассировки. Это явно не очень хорошо написанный сценарий, но мой вопрос к толпе Serverfault заключается в том, есть ли ошибка или граничное условие, которое заставило бы его удалить другие каталоги, такие как эти:
/ ora / admin / SCRM01P / bdump / ora / admin / SCRM01P / cdump / ora / admin / SCRM01P / pfile / ora / admin / SCRM01P / udump
Недавно мы удалили эти каталоги в производственной системе, что привело к сбою Oracle. Взгляните на этот код. Мы ценим ваше понимание, так как я не очень хорошо разбираюсь в оболочке Korn.
#!/usr/bin/ksh
#This script check the utilization of the location "/ora/admin/SCRM01P"
#and if this exceeds the threshold which is 75%, then it attemps to remove all of the
#core dump files which are "core_*" and "cdmp_*"
#Otherwise, is removes these core dumps that are older than 7 days
THRESHOLD=75
MTIME=7
TOP_DIR=/ora/admin/SCRM01P
cd ${TOP_DIR}
USED=$(df -k ${TOP_DIR} |tail -1|awk '{print $5}'|grep \%|sed 's/%//')
[ ${USED} -gt ${THRESHOLD} ] && MTIME=-1
find ${TOP_DIR}/* -mtime +${MTIME} -type d \( -name "core_*" -o -name "cdmp_*" \) 2>/dev/null|while read DIRTOREMOVE
do
rm -rf $DIRTOREMOVE
#Due to a known Soralis issue, the directory may not be removed by the command above
rmdir $DIRTOREMOVE >/dev/null 2>&1
done
find ${TOP_DIR}/* -mtime +${MTIME} -name "*.trc" -size +2000 2>/dev/null|while read TRACE_FILE
do
cp /dev/null ${TRACE_FILE}
done
Вы можете проверить это сами. изменить
rm -rf $DIRTOREMOVE
#Due to a known Soralis issue, the directory may not be removed by the command above
rmdir $DIRTOREMOVE >/dev/null 2>&1
к
echo "Deleting $DIRTOREMOVE"
а затем изменить
cp /dev/null ${TRACE_FILE}
к
echo "Truncating ${TRACE_FILE}"
Что должно показать вам, над чем мы работаем.
Одно из условий могло бы быть, если бы такой каталог существовал (обратите внимание на пробел):
/ora/admin/SCRM01P/bdump secondword/core_foo
В while
команда разделяет слова пробелом, поэтому тело цикла while будет вызываться два раза, один раз с /ora/admin/SCRM01P/bdump
и однажды с secondword/core_foo
.