Bash. Подборка старых скриптов от Ben-Ja. Очистка логов oracle.


#!/bin/bash
#=========================================================================
# Скрипт для поиска и очистки логов в указаной директории больше заданного размера
# produced by Ben-Ja©2006
#=========================================================================

# Проверка 2 параметров:
if [ -z "$1" ] || [ -z "$2" ]; then
echo используйте: $0 10000 /oracle/ т.е. Укажите минимальный размер логфайлов и путь для поиска.
exit 1
fi
# Параметры поступили - работаем.
# Всевозможные
# echo -en "\\033[0;34m";
# Это работа с цветом выводимого текста. Т.что можно не обращать внимания.
echo -en "\\033[0;34m";
echo "========== Начальное Пространство ==========";
echo -en "\\033[0;39m";
df -h
echo -en "\\033[0;34m";
echo "========== Список очищаемых логов ==========";
echo -en "\\033[0;36m";
# Побеждаем специфику параметра -size команды find:
# Т.к. по умолчанию -size задается в количестве блоков по 512 Кбайт (по половине).
SIZEK=`expr $1 \* 2`;
echo "Искомый размер > $1 Kb";
for i in `find $2 \( -name "*.log" -or -name "*log.xml" \) -size +$SIZEK `;
do
echo -ne `ls -lah $i | gawk '{print($5)}'`;
echo " файл $i ";
wait
done
echo -en "\\033[0;34m";
echo "==== Вывели список. Приступаем к очистке ====";
echo -en "\\033[0;39m";
# start
# Вот тут и начинается сама очистка:
for i in `find $2 \( -name "*.log" -or -name "*log.xml" \) -size +$SIZEK `;
do
echo -en "\\033[0;33m";
echo -ne `ls -lah $i | gawk '{print($5)}'`
echo " файл $i ";
echo -en "\\033[0;31m";
read -s -n1 -p "Очистить? [y/n]: " myyn
case "$myyn" in
[Yy] ) echo "Выбор: YES"; echo "## File was cleaned by logclean.sh ##" > $i;;
[Nn] ) echo "Выбор: NO";;
* ) echo "Пропускаем...";;
esac
echo -en "\\033[0;39m";
done
# Закончили очистку.
# finish
echo -en "\\033[0;34m";
echo "============= Итог пространства =============";
echo -en "\\033[0;39m";
df -h
echo -en "\\033[0;34m";
echo "============= Очистка завершена =============";
echo -en "\\033[0;39m";
exit 0