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

четверг, 26 марта 2015 г.

[успешно] LibreOffice для OEL

Загрузка, распаковка и установка:
cd /tmp
wget http://download.documentfoundation.org/libreoffice/stable/4.4.1/rpm/x86_64/LibreOffice_4.4.1_Linux_x86-64_rpm.tar.gz
tar -zxvf LibreOffice_4.4.1_Linux_x86-64_rpm.tar.gz
cd LibreOffice_4.4.1.2_Linux_x86-64_rpm/RPMS
yum localinstall *.rpm
Если процесс завершится с ошибкой: "Package libobasis4.4-pyuno-4.4.1.2-2.x86_64.rpm is not signed", тогда можно:
yum localinstall *.rpm --nogpgcheck

среда, 25 марта 2015 г.

Sybase IDE

- dictman;
- Oracle SQL Developer с установленным JDBC-драйвером (не удалось до конца разобраться, как настроить подключение к локальному серверу);
- "родной" "Interactive SQL" ("C:\Program Files (x86)\Sybase\SQL Anywhere 7\win32\dbisqlg.exe")

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

Виртуальные нюансы

---
23.04.2012
Разобраться с тонкостями и нюансами работы с HASP (USB-ключи Guardian, Sentinel, хаспы для 1С итд итп) и FDD (floppy disk drive) на виртуальных серверах (Hyper-V, VMWare ESXi, итд итп).
---
24.03.2015
Успешно проверена работы USB-HASP Sentinel UltraKey:
- ОС хоста: Oracle Enterprise Linux 5.11 x64 (+ драйвера Sentinel x64);
- ПО виртуализации: VirtualBox 4.3.24;
- ОС виртуальной машины: Windows XP SP3 x32 + Java 1.7u51 x32 (+ драйвера Sentinel x32).
---

понедельник, 23 марта 2015 г.

Выпадение крови

Диалог мамы с сыном:
— Иди на тротуар, а то машина тебя задавит.
— И тогда из меня выпадет кровь?

Sentinel Protection Server для Linux

После установки драйверов и сервера за утилитами следует ходить сюда:
/opt/sentinel
/opt/safenet_sentinel

--
Если пытаешься перенести лиц.ГЗ на Linux x64, то остановись, ибо Поддержка ГЗ-2010, #687. Только x32.

вторник, 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

osize.sh

cat osize.sh
#!/bin/sh
# 11.03.2015
daScr=/tmp/ots_150306.sql
echo SET LINESIZE 125\;>$daScr
echo SET PAGESIZE 90\;>>$daScr
if [ -z $1 ]; then # Выполнять этот блок, если скрипт запущен без ключей.
  echo --DBA_DATA_FILES>>$daScr
  echo SELECT /\* + RULE \*/>>$daScr
  echo df.tablespace_name,>>$daScr
  echo round\(sum\(df.maxbytes\)/1048576\) \"SizeMAX\(MB\)\",>>$daScr
  echo --round\(sum\(df.bytes\)/1048576\) \"SizeCUR\(MB\)\",>>$daScr
  echo round\(\(sum\(df.maxbytes\) - sum\(df.bytes\)\)/1048576\) \"Free\(MB\)\",>>$daScr
  echo 100-round\(\(sum\(df.bytes\)\*100\)/sum\(df.maxbytes\)\)\|\|\'\%\' \"Free\(%\)\">>$daScr
  echo FROM dba_data_files df>>$daScr
  echo GROUP BY df.tablespace_name>>$daScr
  echo UNION ALL>>$daScr
  echo --DBA_TEMP_FILES>>$daScr
  echo SELECT /\* + RULE \*/>>$daScr
  echo df.tablespace_name,>>$daScr
  echo round\(sum\(df.maxbytes\)/1048576\),>>$daScr
  echo --round\(sum\(df.bytes\)/1048576\),>>$daScr
  echo round\(\(sum\(df.maxbytes\) - sum\(df.bytes\)\)/1048576\),>>$daScr
  echo 100-round\(\(sum\(df.bytes\)\*100\)/sum\(df.maxbytes\)\)\|\|\'\%\'>>$daScr
  echo FROM dba_temp_files df>>$daScr
  echo GROUP BY df.tablespace_name>>$daScr
  echo order by 1 desc\;>>$daScr
  echo exit\;>>$daScr
  sqlplus -S / as sysdba @$daScr
  if [[ -n $DISPLAY ]]; then read -p 'Press ENTER key to exit.'; fi # Если скрипт запущен в GUI, то окно не закрываем.

elif [ $1 == "-g" ]; then # Скрипт выводит дополнительный столбец (SizeCUR - текущий фактический размер на диске), и все числовые значения, группируются по разрядам.
  echo --DBA_DATA_FILES>>$daScr
  echo SELECT /\* + RULE \*/>>$daScr
  echo df.tablespace_name,>>$daScr
  echo to_char\(round\(sum\(df.maxbytes\)/1048576\),\'999G999G999G999\'\) \"SizeMAX\(MB\)\",>>$daScr
  echo to_char\(round\(sum\(df.bytes\)/1048576\),\'999G999G999G999\'\) \"SizeCUR\(MB\)\",>>$daScr
  echo to_char\(round\(\(sum\(df.maxbytes\)-sum\(df.bytes\)\)/1048576\),\'999G999G999G999\'\) \"Free\(MB\)\",>>$daScr
  echo 100-round\(\(sum\(df.bytes\)\*100\)/sum\(df.maxbytes\)\)\|\|\'\%\' \"Free\(%\)\">>$daScr
  echo FROM dba_data_files df>>$daScr
  echo GROUP BY df.tablespace_name>>$daScr
  echo UNION ALL>>$daScr
  echo --DBA_TEMP_FILES>>$daScr
  echo SELECT /\* + RULE \*/>>$daScr
  echo df.tablespace_name,>>$daScr
  echo to_char\(round\(sum\(df.maxbytes\)/1048576\),\'999G999G999G999\'\),>>$daScr
  echo to_char\(round\(sum\(df.bytes\)/1048576\),\'999G999G999G999\'\),>>$daScr
  echo to_char\(round\(\(sum\(df.maxbytes\) - sum\(df.bytes\)\)/1048576\),\'999G999G999G999\'\),>>$daScr
  echo 100-round\(\(sum\(df.bytes\)\*100\)/sum\(df.maxbytes\)\)\|\|\'\%\'>>$daScr
  echo FROM dba_temp_files df>>$daScr
  echo GROUP BY df.tablespace_name>>$daScr
  echo order by 1 desc\;>>$daScr
  echo exit\;>>$daScr
  sqlplus -S / as sysdba @$daScr
else
  echo Usage:
  echo $0 [-g]
fi
rm $daScr

Размер схем Oracle

--Для DBA (c примером форматирования числа: группировка цифр по разрядам с помощью TO_CHAR)
select owner, to_char(sum(bytes)/1048576,'999G999G999G999D999') "SIZE (MB)" from dba_segments group by owner order by sum(bytes) desc;

понедельник, 16 марта 2015 г.

Midnight Commander, как FTP-клиент

http://sprinthost.ru/support/howto/services/ftp/soft/mc.html
Alt + Shift + h.

Размер таблиц схемы Oracle

--Для SYSDBA
select t.TABLE_NAME, sum(s.bytes)/1048576 "SIZE (MB)"
from dba_segments s join dba_tables t on t.owner=s.owner and t.TABLE_NAME=s.SEGMENT_NAME
where t.owner=upper('<OWNER_NAME>')
group by t.TABLE_NAME
order by sum(s.bytes) desc;

--Для пользователя схемы:
select t.TABLE_NAME, sum(s.bytes)/1048576 "SIZE (MB)"
from user_segments s join user_tables t on t.TABLE_NAME=s.SEGMENT_NAME
group by t.TABLE_NAME
order by sum(s.bytes) desc;

пятница, 13 марта 2015 г.

importdp.sh - вариант без FROM_USERNAME

Формат команды
./import.sh <ИМЯ НОВОЙ СХЕМЫ> <ФАЙЛ ДАМПА>
Данная редакция скрипта "самостоятельно узнаёт" "старое" имя схемы, которое скрывается в параметре OWNER_NAME в файле дампа.
Может работать только с дампами, содержащими лишь одну схему!
Перед импортом создает схему с предустановленным в параметре NEW_SCHEMA_PASSWD паролем.

cat importdp.sh
#!/bin/sh

# Set the parameters first
# -------------------------------------
# system user name
SYSTEM=<DBA_USERNAME>
# system user password
PASSWD=<DBA_PASSWORD>

# Instance name (if any)
URL=@<ORACLE_SID>

# New schema password
NEW_SCHEMA_PASSWD=<NEW_SCHEMA_PASSWD>

# Set the ORACLE_HOME variable to find an "imp" utility
# ORACLE_HOME=/usr/oracle
# -------------------------------------

help() {
  echo "-------------------------------------"
  echo "Logical Database restore utility v0.1"
  echo "-------------------------------------"
  echo "USAGE:"
  echo "./importdp.sh <TO_USERNAME> <FILE_NAME>"
  echo 
  echo "EXAMPLE:"
  echo "./importdp.sh LNXTEST23 lnx.dmp"
}

if [ $# -eq 0 ] ; then
  help;
  exit 1;
fi

TO_USERNAME=$1
FILENAME=$2
LOGFILE="restore_$TO_USERNAME.log"

if [ "$FILENAME" == "" ] ; then
  FILENAME="expdat.dmp";
fi  

if [ "$TO_USERNAME" == "" ] ; then
  TO_USERNAME=$FROM_USERNAME;
fi  

if [ "$ORACLE_HOME" != "" ] ; then
  CMD="$ORACLE_HOME/bin/impdp";
else
  CMD="impdp";  
fi  

if [ ! -f $FILENAME ] ; then
  echo "ERROR:"
  echo "File $FILENAME does not exist."; 
  exit 1;
fi

# block_150312_2116(begin)
# d.aryshtaev@bftcom.com, 13.03.2015 02:31 IRKT
# Проверка наличия новой схемы (импорт будет выполнен только в случае, если новой схемы в экземпляре Oracle нет):
daScr=/tmp/imp_150312_2100.sql
echo SET PAGESIZE 0\;>$daScr
echo select count\(\*\) from dba_users where username=upper\(\'$TO_USERNAME\'\)\;>>$daScr
echo exit\;>>$daScr
daUsrCnt=`sqlplus -S / as sysdba @$daScr`
if [ $daUsrCnt == 0 ]; then
  # block_150312_2116_A(begin)
  # Создаем схему до импорта, чтобы сразу же задать ей пароль [потому что мы ленимся :-) ]:
  echo create user $TO_USERNAME identified by $NEW_SCHEMA_PASSWD\;>$daScr
  echo grant connect\,resource to $TO_USERNAME\;>>$daScr
  echo grant select on v_\$locked_object to $TO_USERNAME\;>>$daScr
  echo GRANT SELECT ANY DICTIONARY TO $TO_USERNAME\;>>$daScr
  echo exit \;>>$daScr
  sqlplus -S / as sysdba @$daScr

  # block_150312_2116_B(begin)
  # Вытаскиваем OWNER_NAME из дампа и запоминаем значение в переменной FROM_USERNAME:
  daDDLfile=tmp_ddl_`date +%y%m%d_%H%M%S`.txt
  $CMD $SYSTEM/$PASSWD$URL SILENT=ALL NOLOGFILE=Y DIRECTORY=BACKUP_DIR DUMPFILE=$FILENAME SQLFILE=$daDDLfile
  daStrFromDDL=`cat $daDDLfile|grep "CREATE USER"`
  rm $daDDLfile
  FROM_USERNAME=${daStrFromDDL:14:$(expr `expr index "${daStrFromDDL:14}" \"` - 1)}
  # block_150312_2116_B(end)
  # block_150312_2116_A(end)

echo "-----------------------------------------"
echo "Restoring from $FROM_USERNAME to $TO_USERNAME using dump $FILENAME ..."
echo "-----------------------------------------"

export NLS_DATE_FORMAT="YYYY-MM-DD" 
export NLS_TIMESTAMP_FORMAT="YYYY-MM-DD HH24:MI:SS"

$CMD $SYSTEM/$PASSWD$URL SCHEMAS=$FROM_USERNAME DIRECTORY=BACKUP_DIR REMAP_SCHEMA=$FROM_USERNAME:$TO_USERNAME TRANSFORM=OID:N DUMPFILE=$FILENAME LOGFILE=$LOGFILE
else
  # Если новая схема уже существует, то сообщаем об этом пользователю и не выполняем импорт:
  echo Schema $TO_USERNAME already exists.
fi
rm $daScr
# block_150312_2116(end)

четверг, 12 марта 2015 г.

importdp.sh - вариант с FROM_USERNAME

#!/bin/sh

# Set the parameters first
# -------------------------------------
# system user name
SYSTEM=<DBA_USERNAME>
# system user password
PASSWD=<DBA_PASSWORD>

# Instance name (if any)
URL=@<ORACLE_SID>

# New schema password
NEW_SCHEMA_PASSWD=<NEW_SCHEMA_PASSWD>

# block_150312_2116(begin)
# Проверка наличия новой схемы (импорт будет выполнен только в случае, если новой схемы в экземпляре Oracle нет):
daScr=/tmp/imp_150312_2100.sql
echo SET PAGESIZE 0\;>$daScr
echo select count\(\*\) from dba_users where username=upper\(\'$2\'\)\;>>$daScr
echo exit\;>>$daScr
export daUsrCnt=`sqlplus -S / as sysdba @$daScr`
if [ $daUsrCnt == 0 ]; then
  # block_150312_2116_A(begin)
  # Создаем схему до импорта, чтобы сразу же задать ей пароль [потому что мы ленимся :-) ]:
  echo create user $2 identified by $NEW_SCHEMA_PASSWD\;>$daScr
  echo grant connect\,resource to $2\;>>$daScr
  echo grant select on v_\$locked_object to $2\;>>$daScr
  echo exit \;>>$daScr
  sqlplus / as sysdba @$daScr
# Весь остальной скрипт ниже не изменялся.
  # block_150312_2116_A(end)

# Set the ORACLE_HOME variable to find an "imp" utility
# ORACLE_HOME=/usr/oracle
# -------------------------------------

help() {
  echo "-------------------------------------"
  echo "Logical Database restore utility v0.1"
  echo "-------------------------------------"
  echo "USAGE:"
  echo "./importdp.sh <FROM_USERNAME> [<TO_USERNAME>] [<FILE_NAME>]"
  echo 
  echo "EXAMPLE:"
  echo "./importdp.sh LNXSTEND23 LNXTEST23 lnx.dmp"
}

if [ $# -eq 0 ] ; then
  help;
  exit 1;
fi

FROM_USERNAME=$1
TO_USERNAME=$2
FILENAME=$3
LOGFILE="restore_$TO_USERNAME.log"

if [ "$FILENAME" == "" ] ; then
  FILENAME="expdat.dmp";
fi  

if [ "$TO_USERNAME" == "" ] ; then
  TO_USERNAME=$FROM_USERNAME;
fi  

if [ "$ORACLE_HOME" != "" ] ; then
  CMD="$ORACLE_HOME/bin/impdp";
else
  CMD="impdp";  
fi  

if [ ! -f $FILENAME ] ; then
  echo "ERROR:"
  echo "File $FILENAME does not exist."; 
  exit 1;
fi

echo "-----------------------------------------"
echo "Restoring from $FROM_USERNAME to $TO_USERNAME using damp $FILENAME ..."
echo "-----------------------------------------"

export NLS_DATE_FORMAT="YYYY-MM-DD" 
export NLS_TIMESTAMP_FORMAT="YYYY-MM-DD HH24:MI:SS"

$CMD $SYSTEM/$PASSWD$URL SCHEMAS=$FROM_USERNAME DIRECTORY=BACKUP_DIR REMAP_SCHEMA=$FROM_USERNAME:$TO_USERNAME TRANSFORM=OID:N DUMPFILE=$FILENAME LOGFILE=$LOGFILE
else
  # Если новая схема уже существует, то сообщаем об этом пользователю и не выполняем импорт:
  echo Schema $2 already exists.
fi
rm $daScr
# block_150312_2116(end)

пятница, 6 марта 2015 г.

Расчет размера табличных пространств Oracle (еще один подход к снаряду)

--DBA_DATA_FILES
SELECT /* + RULE */
df.tablespace_name,
round(sum(df.maxbytes)/1048576) "Size (MAX) (MB)",
round(sum(df.bytes)/1048576) "Size (CRNT) (MB)",
round((sum(df.maxbytes) - sum(df.bytes))/1048576) "Free (MB)",
round((sum(df.bytes)*100)/sum(df.maxbytes)) "Free (MAX) (%)"
FROM dba_data_files df
GROUP BY df.tablespace_name
UNION ALL
--DBA_TEMP_FILES
SELECT /* + RULE */
df.tablespace_name,
round(sum(df.maxbytes)/1048576),
round(sum(df.bytes)/1048576),
round((sum(df.maxbytes) - sum(df.bytes))/1048576),
round((sum(df.bytes)*100)/sum(df.maxbytes))
FROM dba_temp_files df
GROUP BY df.tablespace_name
order by 1 desc;

/* bash-вариант */
cat osize.sh
#!/bin/sh
daScr=/tmp/ots_150306.sql
echo --DBA_DATA_FILES>$daScr
echo SELECT /\* + RULE \*/>>$daScr
echo df.tablespace_name,>>$daScr
echo round\(sum\(df.maxbytes\)/1048576\) \"SizeMAX\(MB\)\",>>$daScr
echo round\(sum\(df.bytes\)/1048576\) \"SizeCUR\(MB\)\",>>$daScr
echo round\(\(sum\(df.maxbytes\) - sum\(df.bytes\)\)/1048576\) \"Free\(MB\)\",>>$daScr
echo round\(\(sum\(df.bytes\)\*100\)/sum\(df.maxbytes\)\) \"Free\(MAX\)\(%\)\">>$daScr
echo FROM dba_data_files df>>$daScr
echo GROUP BY df.tablespace_name>>$daScr
echo UNION ALL>>$daScr
echo --DBA_TEMP_FILES>>$daScr
echo SELECT /\* + RULE \*/>>$daScr
echo df.tablespace_name,>>$daScr
echo round\(sum\(df.maxbytes\)/1048576\),>>$daScr
echo round\(sum\(df.bytes\)/1048576\),>>$daScr
echo round\(\(sum\(df.maxbytes\) - sum\(df.bytes\)\)/1048576\),>>$daScr
echo round\(\(sum\(df.bytes\)\*100\)/sum\(df.maxbytes\)\)>>$daScr
echo FROM dba_temp_files df>>$daScr
echo GROUP BY df.tablespace_name>>$daScr
echo order by 1 desc\;>>$daScr
echo exit\;>>$daScr
if [ $USER == root ]
then
su - oracle -c "sqlplus / as sysdba @$daScr"
else
sqlplus / as sysdba @$daScr
fi
rm $daScr
if [[ -n $DISPLAY ]]; then read -p 'Press ENTER key to exit.'; fi

четверг, 5 марта 2015 г.

Сисадмин

[5 марта 2015 г. 11:46] Денис З.:
«
Мила (11:44:18 5/03/2015)
у нас на нескольких компах плохо работает инет со вчерашнего дня
Мила (11:44:30 5/03/2015)
сегодня повторно пришел сисадмин
Мила (11:44:37 5/03/2015)
посидел за моим компом
Мила (11:45:02 5/03/2015)
сажусь после него - запрос в яндексе "как определить скорость интернета"
»

среда, 4 марта 2015 г.

(В процессе) Автоматический импорт дампов Oracle

== Автоматический импорт дампов. Плюс, сюда же: как автоматизировать поиск OWNER_NAME в файле дампа? ==
Реализовано с помощью SQLFILE. Источник.

--
http://koenigocm.blogspot.ru/2012/08/automatic-import-using-filewatcher.html - вникнуть, проверить

--
bft_dbn, bdkvsk
https://ru.wikipedia.org/wiki/Hudson
http://cvs.bft.local:8081/jenkins/job/dump.restore.v2/

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

Скачивание APK из Google Play

http://apk-dl.com/ - загрузка APK без регистрации в Google (видео).

Информация о винчестере с ОС

[root@dbserver ~]# smartctl -i /dev/sdd
smartctl 5.42 2011-10-20 r3458 [x86_64-linux-2.6.39-400.215.10.el5uek] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Model Family: Western Digital Caviar Blue Serial ATA
Device Model: WDC WD1600AAJS-75PSA0
Serial Number: WD-WMAP98490365
LU WWN Device Id: 5 0014ee 0003feca0
Firmware Version: 05.06H05
User Capacity: 160,000,000,000 bytes [160 GB]
Sector Size: 512 bytes logical/physical
Device is: In smartctl database [for details use: -P show]
ATA Version is: 7
ATA Standard is: Exact ATA specification draft version not indicated
Local Time is: Tue Mar 3 12:37:09 2015 KRAT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

[root@dbserver ~]# fdisk -l /dev/sdd
Disk /dev/sdd: 160.0 GB, 160000000000 bytes
60 heads, 12 sectors/track, 434027 cylinders
Units = cylinders of 720 * 512 = 368640 bytes

Device Boot Start End Blocks Id System
/dev/sdd1 * 1 284 102234 83 Linux
/dev/sdd2 285 434027 156147480 8e Linux LVM

понедельник, 2 марта 2015 г.

Информация о крайнем подключении к БД Oracle

Реализован скрипт, который показывает дату крайнего подключения к базам Oracle:

select du.username||case when du.account_status='OPEN' then '' else ' ('||du.account_status||')' end USERNAME, to_char(max(da.TIMESTAMP),'DD.MM.YYYY') LASTLOGON
from dba_users du left join dba_audit_session da on da.username=du.username
where du.default_tablespace='USERS'
and du.username not in ('APEX_PUBLIC_USER','ORACLE_OCM','SPATIAL_CSW_ADMIN_USR','SPATIAL_WFS_ADMIN_USR') --Исключаем из выборки пользователей, которые создаются по-умолчанию в процессе установки и конфигурирования Oracle
and du.username like '%=_%' escape '=' -- Включаем в выборку только тех пользователей, у которых в имени есть символ подчеркивания (мы только так схемы и называем)
group by du.username||case when du.account_status='OPEN' then '' else ' ('||du.account_status||')' end
order by 1 asc;

Пример:
[oracle@dbserver playground]$ ./olastlogon.sh

USERNAME                                                      LASTLOGON
----------------------------------------------------------------- ----------
F_ANGARSK_150218                                              04.03.2015
F_BRATSK_150218
F_IRKOBL_150129                                                   06.03.2015

3 rows selected.


/* bash-вариант */:
cat olastlogon.sh
#!/bin/bash
# Selecting usernames and their statuses from dba_users with last logon info from dba_audit_session (ORACLE)
daScr=/tmp/osu_140829.sql
echo SET LINESIZE 150\;>$daScr
echo SET PAGESIZE 300\;>>$daScr
echo select du.username\|\|case when du.account_status=\'OPEN\' then \'\' else \' \(\'\|\|du.account_status\|\|\'\)\' end USERNAME, to_char\(max\(da.TIMESTAMP\),\'\DD.MM.YYYY'\) LASTLOGON>>$daScr
echo from dba_users du left join dba_audit_session da on da.username=du.username>>$daScr
echo where du.default_tablespace=\'USERS\'>>$daScr
echo and du.username not in \(\'APEX_PUBLIC_USER\',\'ORACLE_OCM\'\,\'SPATIAL_CSW_ADMIN_USR\',\'SPATIAL_WFS_ADMIN_USR\'\) --Исключаем из выборки пользователей, которые создаются по-умолчанию в процессе установки и конфигурирования Oracle>>$daScr
echo and du.username like \'%=_%\' escape \'=\' -- Включаем в выборку только тех пользователей, у которых в имени есть символ подчеркивания \(мы только так схемы и называем\)>>$daScr
echo group by du.username\|\|case when du.account_status=\'OPEN\' then \'\' else \' \(\'\|\|du.account_status\|\|\'\)\' end>>$daScr
echo order by 1 asc\;>>$daScr
echo exit\;>>$daScr
if [ $USER == root ]
then
su - oracle -c "sqlplus / as sysdba @$daScr"
else
sqlplus / as sysdba @$daScr
fi
rm $daScr
if [[ -n $DISPLAY ]]; then read -p 'Press ENTER key to exit.'; fi

----
Необходимо, чтобы заполнялась таблица dba_audit_session, для этого:
alter system set audit_trail=true scope=spfile; --включение параметра
audit connect; --либо аудит любого подключения
audit create session whenever successful; --либо аудит только успешно созданных сессий (сейчас указано это)
create pfile from spfile; - сохранить параметры
Перезапустить экземпляр Oracle.

воскресенье, 1 марта 2015 г.

MP3Tag

Редактор MP3-тэгов: http://mp3tag.de/download.html

Sony XPERIA M2: отключение приложений от Sony

Отключение приложения "What's new" от Sony без root-доступа:
I) подключить смартфон в режиме отладки по USB (+ ADB)
II) выполнить команды ADB:
II.1) adb shell
II.2) pm block com.sonymobile.advancedwidget.entrance
Примечание: если Android 5.1.1, то команда такая:
pm hide com.sonymobile.advancedwidget.entrance
II.3) exit
II.4) adb reboot

Отключение приложения "Альбом" от Sony:
II.2) pm block com.sonyericsson.album (приводит к тому, что невозможно изменить фоновый рисунок на экране блокировки, но с этим можно жить);

Отключение дополнения для камеры "TimeShift" от Sony:
II.2) pm hide com.sonymobile.android.addoncamera.timeshift

Отключение приложения "Small Apps" от Sony:
II.2) pm hide com.sony.smallapp.launcher
II.2.1) pm hide com.sony.smallapp.app.widget

Android: драйвер для ADB-интерфейса

Бвыает, что при подключении в режиме "Отладка по USB" к Windows в диспетчере задач Android-смартфон определяется как "Неизвестное устройство" с надписью "Android". Помогает следующее:

1) скачать, установить и запустить Android Studio;
2) в главном окне открыть пункт "Configure" -> "SDK Manager";
3) выбрать пакет "Google USB Driver" и нажать кнопку "Install 1 packages...";
4) в диспетчере устройств Windows для неизвестного устройства "Android" установить драйвера: пункт меню "Обновить драйверы..." -> кнопка "Выбрать драйвер из списка уже установленных драйверов" -> кнопка "Установить с диска..." -> указать путь "%LOCALAPPDATA%\Android\sdk\extras\google\usb_driver" -> в открывшемся списке выбрать "Android ADB Interface";

P.S. Во время каждого подключения через adb-консоль на смартфоне будет появляться запрос о предоставлении разрешения.
P.P.S. Штатная команда остановки ADB-сервера: adb.exe kill-server.

/etc/fstab, /dev/sda1, boot fail

Когда из файла /etc/fstab комментирую строку про /dev/sda1:
[root@dbserver ~]# cat /etc/fstab
/dev/VolGroup00/LogVol00 / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/VolGroup00/LogVol01 swap swap defaults 0 0
/dev/sda1 /mnt/hd2tb ext3 defaults 0 2
;вот эту

после перезагрузки Linux не загружается, сообщая:
...
Checking filesystems
fsck.ext3: No such file or directory while trying to open /dev/sda1


upd:
Оказалось, что сам дебил - причина была в том, что комментирование строки я выполнял устанавливая символ ";" в начале строки, а надо было ставить символ "#" (ну либо, действительно, удалять строку).

/ read only

При сбое во время загрузки ОС Linux корневая директория "/" монтируется с уровнем доступа "только чтение" (read only). Чтобы получить возможность вносить изменения в системные файлы, необходимо перемонтировать корневой раздел в режиме "чтения и изменения" (read-write), например, внести изменения в /etc/fstab, нужно выполнить команду:
mount / -o remount,rw

+

Архив