вторник, 17 марта 2015 г.

ousers.sh

cat ousers.sh
#!/bin/bash
# 17.03.2015
# Selecting usernames and their statuses from dba_users (ORACLE)
daScr=/tmp/osu_120629.sql
echo SET PAGESIZE 0\;>$daScr

if [ -z $1 ]; then # Выполнять этот блок, если скрипт запущен без ключей.

echo select username \|\| case when account_status=\'OPEN\' then \'\' else \' \(\' \|\| account_status \|\| \'\)\' end case from dba_users>>$daScr
echo where default_tablespace=\'USERS\'>>$daScr
echo and username not in \(\'APEX_PUBLIC_USER\',\'ORACLE_OCM\'\,\'SPATIAL_CSW_ADMIN_USR\',\'SPATIAL_WFS_ADMIN_USR\'\) --Исключаем из выборки пользователей, которые создаются по-умолчанию в процессе установки и конфигурирования Oracle>>$daScr
echo and username like \'%=_%\' escape \'=\' -- Включаем в выборку только тех пользователей, у которых в имени есть символ подчеркивания \(мы только так схемы и называем\)>>$daScr
echo order by account_status desc, username asc\;>>$daScr
echo exit\;>>$daScr
sqlplus -S / as sysdba @$daScr

if [[ -n $DISPLAY ]]; then read -p 'Press ENTER key to exit.'; fi

elif [ $1 == "-s" ]; then # Скрипт выводит список схем с указанием размера каждой из них

echo select owner, to_char\(sum\(bytes\)/1048576,\'999G999G999G999D999\'\) \"SIZE \(MB\)\" from dba_segments group by owner order by sum\(\bytes\) desc\;>>$daScr
echo exit\;>>$daScr
sqlplus -S / as sysdba @$daScr

else
  echo Usage:
  echo $0 [-s]
fi
rm $daScr

Комментариев нет:

Архив