четверг, 17 декабря 2015 г.

КриптоПро 3.6 и Windows 8.1 (Windows 10)

Как установить КриптоПро 3.6 на Windows 8.1 или Windows 10?
Ответ здесь: https://www.cryptopro.ru/forum2/default.aspx?g=posts&m=39956#post39956, цитирую:
1. качаем утилитку для msi Orca http://www.technipages.com/downloads/OrcaMSI.zip (http://www.technipages.com/download-orca-msi-editor.html)
2. распаковываем, например, winrar'ом CSPSetup.exe (или сразу качаем нужный msi с сайта)
3. открываем с помощью orca msi файл нужный и в разделе LaunchConditions меняем "VersionNT>=500 And VersionNT<=602" на "VersionNT>=500 And VersionNT<=603".
4. устанавливаем, работаем, проверяем.

среда, 2 декабря 2015 г.

Консоль "Developer tools" - инструменты разработчика в Google Chrome

Меню -> Дополнительные инструменты -> Инструменты разработчика (Ctrl + Shift + I).
Данные со вкладки "Network" можно сохранить в формате HAR - нужно щелкнуть правой кнопкой по любой строке в собранных данных и выбрать пункт "Save as HAR with content".
Просмотреть сохраненные данные можно с помощью HARViewer (есть онлайн- и оффлайн-версия).

четверг, 26 ноября 2015 г.

TeamViewer QS для Android

Для того, чтобы к вашему Android-устройству мог кто-то подключиться, нужно выполнить следующее:
1) на Android-устройстве (планшете или телефоне) откройте следующую ссылку:
https://play.google.com/store/apps/details?id=com.teamviewer.quicksupport.market
2) на открывшейся странице нажмите кнопку "Установить":
3) подождите пока вместо кнопки "Установить" не появится кнопка "Открыть", нажмите на нее, когда она появится:
4) в следующем открывшемся окне через некоторое время появится код в поле "Ваш ID", сообщите его человеку, которого просите подключиться к вашему устройству:
5) через некоторое время откроется еще одно окно - нажмите в нем кнопку "Разрешить":
6) если появится вот такое окно, то нажмите в нем кнопку "Принять":

P.S. А так будет выглядеть ваш планшет/телефон на "той стороне":

вторник, 13 октября 2015 г.

Адреса сервисов ГИС ГМП

Страница с адресами сервисов ГИС ГМП с распределением по регионам:
http://smev.gosuslugi.ru/portal/services.jsp
Условия поиска:
поле "Узел СМЭВ": выбираете нужный регион;
поле "Владелец": Федеральное казначейство (ФК);
поле "Доступность сервисов": Общедоступный.

Кнопка "Достунпость сервиса" (лампочка) показывает записи об остановке/запуске сервиса с датой и временем.

Пример для Иркутской области:

воскресенье, 4 октября 2015 г.

vim Azk2Server.properties, DOS-кодировка с кириллицей

Чтобы кириллица в файлах подобных "Azk2Server.properties" отображалась корректно в vim (vim Azk2Server.properties) в ~/.vimrc были добавлены строки:
set encoding=utf-8
setglobal fileencoding=utf-8 bomb
set fileencodings=utf-8,cp1251,koi8-r,latin1
set fileformats=dos,unix,mac


Для gVim (для Windows):
тут приходится применять команду
:e ++enc=ibm866
Что она делает, я пока не понял, но файлы с кодировкой cp866 действительно начинают выглядеть нормально, без кракозябров.
Почему не срабатывает рекомендация в самом верху - пока не понял, при случае нужно разобраться.

понедельник, 21 сентября 2015 г.

[в процессе] Рекомендации для тестовых баз Oracle

Сравнение режимов ARCHIVELOG и NOARCHIVELOG: http://my-oracle.it-blogs.com.ua/post-282.aspx.
«... тестовая база – NOARCHIVELOG; промышленная – ARCHIVELOG».

Ускорение импорта дампов:

http://www.freelists.org/post/oracle-l/Disable-logging-in-tablespace-vs-using-hidden-parameter-disable-logging,5
If you want fast import you can do several things, first of all get all the
DDL statements

1. import only data
2. create indexes with the DDL and adding NOLOGGING and parallel clauses
3. create the constraints but keep them DISABLED
4. Enable the constraints by setting parallel degree at table level, by
doing so parallel executions can be used

http://www.dba-oracle.com/t_import_impdp_import_performance_speed.htm
доп.опции для impdp:
COMMIT=Y
BUFFER=64000
_disable_logging=true (ТОЛЬКО для тестовых баз) (пока проверить не удалось, т.к. СУБД не позволяет задать такой параметр)


Тесты:
mount -t ext4 -o noatime,nodiratime,max_batch_time=0,nobarrier /dev/md0 /mnt/hd2tb

Импорт дампа от 02.09.2015:
- стандартная команда (до оптимизации RAID-0) = 2 часа 30 минут;
- стандартная команда (после оптимизации RAID-0) = 1 час 37 минут;
- дополненная команда (после оптимизации RAID-0) = 2 часа 16 минут;
была дополнена опциями:
COMMIT=Y
BUFFER=64000
- стандартная команда (после оптимизации RAID-0) = 1 час 49 минут.

=================
Перемонтировал с помощью команды:
mount -t ext4 -o rw,noatime,max_batch_time=0,nobarrier,data=writeback /dev/md0 /mnt/hd2tb
+ отключил журналирование в ext4 (http://fenidik.blogspot.ru/2010/03/ext4-disable-journal.html):
# Enable writeback mode. This mode will typically provide the best ext4 performance.
tune2fs -o journal_data_writeback /dev/sda10

# Delete has_journal option
tune2fs -O ^has_journal /dev/sda10

# Required fsck
e2fsck -f /dev/sda10

# Check fs options
dumpe2fs /dev/sda10 |more

Проверяю:
- стандартная команда (после оптимизации RAID-0) = 1 час 28 минут.
- стандартная команда (после оптимизации RAID-0) = 1 час 55 минут.
- стандартная команда (после оптимизации RAID-0) = 1 час 50 минут.

Новая проверка:
mkfs.ext4 -T largefile -O ^has_journal /dev/md0
mount -t ext4 -o rw,noatime,max_batch_time=0,nobarrier,data=writeback /dev/md0 /mnt/hd2tb
./importdp.sh F_IRKOBL_150902 azkbase2015_20150902_1900.dmp
- стандартная команда (после оптимизации RAID-0) = 1 час 20 минут.

среда, 16 сентября 2015 г.

[в процессе] dm-2, dm-3

Подключил аппаратный RAID-0,
в системе появился соответствующий по размеру
/dev/dm-2
создал на нем раздел
`fdisk /dev/dm-2` = /dev/dm-2p1
Перезагрузился (т.к. fdisk сообщил, что без этого система будет использовать старую таблицу разделов),
в системе появился
/dev/dm-3.

Итого:
в системе есть теперь
/dev/dm-2
/dev/dm-2p1
/dev/dm-3

mkfs.ext3 видит только /dev/dm-2 и /dev/dm-3.

Проверяю будет ли работать:
mkfs.ext3 /dev/dm-3

dm-0, dm-1

fdisk -l
показывает разные разделы жестких дисков, в том числе и те, что мне были непонятны:
/dev/dm-0
/dev/dm-1
Статья объяснила, что что такое, плюс дала полезные команды:
lvdisplay|awk '/LV Name/{n=$3} /Block device/{d=$3; sub(".*:","dm-",d); print d,n;}'
dmsetup ls

пятница, 11 сентября 2015 г.

[в процессе] Попытка повысить производительность RAID-0

Изначально RAID-0 был собран тут. Тогда была выбрана ФС "ext3".
Считаю, что повысить производительность можно заменив ФС на "ext4" вместо "ext3".

Созданы резервные копии
/etc/mdadm.conf
/etc/fstab

Отключение RAID-0
umount /mnt/hd2tb
mdadm --stop /dev/md0
mdadm --zero-superblock /dev/sda1
mdadm --zero-superblock /dev/sdb1
fdisk /dev/sda
d - удалить раздел
w - запись изменений на диск

fdisk /dev/sdb
d - удалить раздел
w - запись изменений на диск

Создание RAID-0
fdisk /dev/sda
n - создать раздел
p - основной
1 - с номером 1
t - изменить тип раздела
fd - тип раздела указать auto Linux raid
w - запись изменений на диск

fdisk /dev/sdb
n - создать раздел
p - основной
1 - с номером 1
t - изменить тип раздела
fd - тип раздела указать auto Linux raid
w - запись изменений на диск

mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sda1 /dev/sdb1

Далее, нужно вычислить stride и stripe-width для mkfs.ext4:
stride = chunk_size / file_system_block_size
chunk_size - см. /proc/mdstat (cat /proc/mdstat)
file_system_block_size - см. результат команды "blockdev --getbsz /dev/md0"
stripe-width = stride * (количество HDD для пользовательских данных (не для контрольных данных) в RAID)

mkfs.ext4 -b 4096 -E stride=16,stripe-width=32 /dev/md0

Создаем mdadm.conf:
mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' > /etc/mdadm.conf

Монтируем, проверяем, если все хорошо, то прописываем точку монитрования в fstab.

После проверки оказалось, что процесс импорта дампа выполняется недопустимо медленно.
Найдено решение (googleб по фразе «low oracle performance "ext4"»):
http://www.oracle.com/us/technologies/linux/oracle-linux-with-flash-2004731.pdf, стр. 6:
mount -t ext4 -o noatime,nodiratime,max_batch_time=0,nobarrier /dev/md0 /mnt/hd2tb

=========================

by

аргументация выбора

вторник, 1 сентября 2015 г.

Первый звонок

[ 01 сентября 2015 г. 11:17 ] Денис К.: У Антона первый звонок
[ 01 сентября 2015 г. 11:18 ] Денис А.: Знал бы Антоха, что его дальше ждет, он бы, наверное, назвал этот праздник "Первый звоночек".

вторник, 18 августа 2015 г.

Размер табличных пространств Oracle

Другой запрос для вычисления размера табличных пространств Oracle:
http://www.dba-oracle.com/t_tablespace_script.htm

set lines 132
set pages 105
set pause off
set echo off
set feedb on

column "TOTAL ALLOC (MB)" format 9,999,990.00
column "TOTAL PHYS ALLOC (MB)" format 9,999,990.00
column "USED (MB)" format 9,999,990.00
column "FREE (MB)" format 9,999,990.00
column "% USED" format 990.00

select
a.tablespace_name,
a.bytes_alloc/(1024*1024) "TOTAL ALLOC (MB)",
a.physical_bytes/(1024*1024) "TOTAL PHYS ALLOC (MB)",
nvl(b.tot_used,0)/(1024*1024) "USED (MB)",
(nvl(b.tot_used,0)/a.bytes_alloc)*100 "% USED"
from
(select
tablespace_name,
sum(bytes) physical_bytes,
sum(decode(autoextensible,'NO',bytes,'YES',maxbytes)) bytes_alloc
from
dba_data_files
group by
tablespace_name ) a,
(select
tablespace_name,
sum(bytes) tot_used
from
dba_segments
group by
tablespace_name ) b
where
a.tablespace_name = b.tablespace_name (+)
and
a.tablespace_name not in
(select distinct
tablespace_name
from
dba_temp_files)
and
a.tablespace_name not like 'UNDO%'
order by 1;

вторник, 11 августа 2015 г.

sub_var (Oracle)

Можно задавать переменные прямо в SQL-редакторе IDE, например, вместо
select 'test' from dual;
можно выполнить:
define myvar='dual'
select 'test' from &myvar;
т.е. название таблицы "DUAL" я поместил в переменную "myvar", а затем обратился к этой переменной из запроса "SELECT".

Для подстановки переменной для замены "OWNER" в конструкции:
SELECT * FROM OWNER.TABLE
нужно дублировать "точку", например, вместо:
select * from SCOTT.DEPT
пишем:
define myowner='SCOTT'
define myowner_to_run='&myowner..'
select * from &myowner_to_run.DEPT.


По мотивам: sub_var, sub_var2.

пятница, 24 июля 2015 г.

[в процессе] Новые навыки с Oracle

- Научится оперативно организовывать внешние таблицы (вплоть до раздачи прав в Linux);
- Импортировать дамп частично (только избранные таблицы) - Filtering During Import Operations (параметры impdp: "EXCLUDE" и "INCLUDE");
- Научиться работать с "Database Links" (спасибо Паше Б. за материал: http://psoug.org/reference/db_link.html)

Дополнение про DB Link:
Будковский Павел (15:55:05 24/07/2015)
у меня вот так получилось
CREATE DATABASE LINK conn_user5 CONNECT TO AZ_EKATERINBURG IDENTIFIED BY AZ_EKATERINBURG USING '172.21.20.248:1521/ora11';
select * from systemsite@conn_user5

понедельник, 13 июля 2015 г.

[в процессе] "MS Outlook" после "The Bat" или "сворачивать крестиком"

Как человек, долго работавший с почтовым клиентом "The Bat", я привык сворачивать программу, нажимая на кнопку [x] (крестик). Когда работодатель перевел корпоративный софт на "MS Outlook" эта привычка играла со мной злую шутку - нажимая на крестик я, конечно же, просто закрывал приложение. Недавно ко мне обратился друг, с той же проблемой - работодатель в приказном порядке заставляет использовать "MS Outlook" вместо "The Bat". А привычка "сворачивать крестиком" осталась. А переучиваться не хочется. Что делать?


Вариант №1:

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

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

TASKJOURNAL.ACTION_DATE

select TO_CHAR (ACTION_DATE, 'DD-MM-YYYY HH24:MI:SS') from TASKJOURNAL;

Молитва ))

N (15:26:48 15/05/2015)
я скоро верующим стану

N (15:26:53 15/05/2015)
ААА БОЖЕ

N (15:26:57 15/05/2015)
дай мозги юзерам

N (15:26:59 15/05/2015)
ну хоть чуток

N (15:27:05 15/05/2015)
ну блять по русски же все

N (15:27:09 15/05/2015)
да нахуй им ебаные айфолны

N (15:27:12 15/05/2015)
ведроид

N (15:27:19 15/05/2015)
пусть дрочат в нокии 3110!

N (15:27:28 15/05/2015)
да будут прокляты их сэдлфи

N (15:27:43 15/05/2015)
как в однокласниках порнуху пырит, так все умеют

вторник, 28 апреля 2015 г.

[успешно] "SET /A" в составе цикла "FOR"

Задача:
В батнике, в составе цикла FOR команда "SET /A ..." с последующим выводом результата (внутри того же цикла "FOR") почему-то не обрабатывается.

Решение:
Для вывода результата нужно обращаться к переменной через восклицательный знак "!" (см. строку с "echo") и обязательно в режиме "ENABLEDELAYEDEXPANSION":
BAT-вариант:
SETLOCAL ENABLEDELAYEDEXPANSION
SET myCount=0
FOR /F "tokens=*" %%i in (my_list_file.txt) DO (
SET /A myCount+=1
ECHO !myCount!
)

пятница, 17 апреля 2015 г.

Список портов (Windows, Linux)

Windows:
netstat -anb

Linux:
netstat -anp

Управление виртуальной машиной VirtualBox в консоли

Просмотр списка зарегистрированных виртуальных машин:
vboxmanage list vms
Запуск без окна (в фоне):
vboxheadless -s <VM_name>
Закрыть, сохранив состояние:
vboxmanage controlvm <VM_name> savestate
Закрыть, принудительно отключив питание:
vboxmanage controlvm <VM_name> poweroff
Закрыть, симулировав однократное нажатие на кнопку питания (дальше уже зависит от настроек ОС: либо "спросить о действии", либо "завершить работы", либо "ничего не делать"):
vboxmanage controlvm <VM_name> acpipowerbutton

четверг, 16 апреля 2015 г.

Запуск СП АЦК-ГЗ с предпроверкой статуса Firebird

Интересная задача попалась:
при запуске Windows-сервера с автоматическим запуском СП АЦК-Госзаказ периодически СП завершается с ошибкой:
org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544721. Unable to complete network request to host "localhost"., error code: HY000
Reason: Unable to complete network request to host "localhost".
Данная ошибка возникает из-за того, что СП пытается запустится в тот момент, когда служба Firebird еще не успела запустится.

Решение: перед запуском СП проверяем состояние службы Firebird, если не запущена, то запускаем, затем стартуем СП.
BAT-вариант:

@ECHO OFF
REM Inspired by http://forum.oszone.net/nextoldesttothread-273062.html

SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
SET daAzkPath=C:\home\soft\azk-gz-lic\1.26.0.180\
SET daAzkFile=StartServer.bat
SET daSvcName=FirebirdServerFB21
:begin
FOR /f "usebackq" %%i IN (`wmic Service where "Name='%daSvcName%'" get State /value 2^>nul ^| find /i "State"`) DO SET b%%~i
IF NOT DEFINED bState echo %daSvcName% not found &GOTO end
IF NOT %bState% == Running (SC START %daSvcName% &GOTO begin)
CD %daAzkPath%
CALL %daAzkFile%
:end
ENDLOCAL

Данные о временных зонах для OEL

Проверяем правильность универсального времени:
date -Ru
Thu, 16 Apr 2015 09:49:22 +0000
Проверяем правильность времени в текущем часовом поясе (пример для UTC+8):
date -R
Thu, 16 Apr 2015 17:49:28 +0800

При необходимости устанавливаем данные о часовых зонах:
yum install tzdata
либо:
pirut

четверг, 2 апреля 2015 г.

WMIC

WMIC - Windows Management Instrumentation Command-line.
Пример использования для получения статуса службы:

C:\>wmic Service where "Name='FirebirdServerFB25'" get State /value


State=Running

Зима опять пришла

Вирус скрывает файлы

Последнее время участились обращения от друзей по поводу вируса, который скрывает файлы на флешке.
На всякий случай, вот команда для Windows, которая снимает признаки "Скрытый" и "Системный" с файлов:
attrib -S -H /S /D *

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

+

пятница, 27 февраля 2015 г.

Информация о HDD в Linux

smartctl -i /dev/sda

dbserver, RAID-0, stripe

Инфа:
[root@dbserver ~]# smartctl -i /dev/sdb
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 ===
Device Model: WDC WD1002F9YZ-09H1JL1
Serial Number: WD-WMC5K0D5T51D
LU WWN Device Id: 5 0014ee 003ed344d
Firmware Version: 01.01M03
User Capacity: 1,000,204,886,016 bytes [1.00 TB]
Sector Sizes: 512 bytes logical, 4096 bytes physical
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: 8
ATA Standard is: Exact ATA specification draft version not indicated
Local Time is: Fri Feb 27 18:44:27 2015 KRAT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

[root@dbserver ~]# smartctl -i /dev/sda
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 ===
Device Model: WDC WD1002F9YZ-09H1JL1
Serial Number: WD-WMC5K0D1A6A3
LU WWN Device Id: 5 0014ee 059418b6d
Firmware Version: 01.01M03
User Capacity: 1,000,204,886,016 bytes [1.00 TB]
Sector Sizes: 512 bytes logical, 4096 bytes physical
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: 8
ATA Standard is: Exact ATA specification draft version not indicated
Local Time is: Fri Feb 27 18:44:52 2015 KRAT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

/dev/sda - это HDD Western Digital Se WD1002F9YZ 1TB
fdisk /dev/sda - cоздан раздел /dev/sda1

/dev/sdb - это HDD Western Digital Se WD1002F9YZ 1TB
fdisk /dev/sdb - cоздан раздел /dev/sdb1

Создан RAID-0 (из двух разделов, последовательность HDD по серийным номерам следующая: 1) WD-WMC5K0D5T51D; 2) WD-WMC5K0D1A6A3):
mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=2 /dev/sdb1 /dev/sda1

После перезапуска системы собирается автоматически (по рекомендации из raid.wiki.kernel.org):
mdadm --detail --scan >> /etc/mdadm.conf

При необходимости можно собрать вручную:
mdadm --assemble /dev/md0 /dev/sdb1 /dev/sda1

fdisk /dev/md0 - создан раздел /dev/md0p1 и отформатирован под ext3:
mkfs.ext3 /dev/m0p1

Точка монтирования:
mount -t ext3 /dev/md0p1 /mnt/hd2tb
+ прописка в /etc/fstab

dbserver, mount, HDD 2TB

Инфа:
[root@dbserver ~]# smartctl -i /dev/sda
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 ===
Device Model: WDC WD2000FYYZ-01UL1B1
Serial Number: WD-WCC1P1030551
LU WWN Device Id: 5 0014ee 25eccf34f
Firmware Version: 01.01K02
User Capacity: 2,000,398,934,016 bytes [2.00 TB]
Sector Size: 512 bytes logical/physical
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: 8
ATA Standard is: Exact ATA specification draft version not indicated
Local Time is: Fri Feb 27 18:35:46 2015 KRAT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled


/dev/sda - это Western Digital RE WD2000FYYZ 2TB

fdisk /dev/sda - cоздан раздел /dev/sda1 и отформатирован под ext3:
mkfs.ext3 /dev/sda1

Точка монтирования:
mkdir /mnt/hd2tb
mount -t ext3 /dev/sda1 /mnt/diska

+ прописка в /etc/fstab

среда, 25 февраля 2015 г.

Уведомление о сбое

Формулировка задачи (исходная):
«Каждое утро у нас генерируются прайсы, но иногда случается сбой и ... в общем не генерируются. Надо, чтобы в таких случаях Android-смартфон орал громко-громко».

ICQ, Баир Ш.


--
Предлагаемое решение №1:
Успешное окончание генерации прайсов оформлять автоматической отправкой письма-уведомления на какой-либо адрес, ящик которого будет проверять спец.приложение на смартфоне. В случае, когда по заданному расписанию спец.приложение не находит письмо, смартфон сигнализирует об этом владельцу.

Восстановление флешек

При любой непонятке с флешками, ходи сюда: http://flashboot.ru/iflash/

вторник, 24 февраля 2015 г.

Как правильно выставить дату и время в регистраторе BlackVue?

Ответ для моделей с GPS-модулем (внизу страницы).
Программа TimeSet для моделей без GPS-модуля (внизу страницы).

Чехол для видеорегистратора

Спасибо 23-му февраля. Теперь у меня есть видеорегистратор BlackVue DR500-HD Lite.
В процессе использования потребовался чехол, который в комплект не входит, зато нашлась подсказка Интернете: пенал для карандашей:
«в гипермаркете увидел пенал для карандашей ... вниз пенала приклеена разрезанная пополам наклейка для мебели ... длинная красная крышка обрезана до нужной длинны и уплотнена черной изолентой

пятница, 20 февраля 2015 г.

ГТО

гто38.рф

Бронирование

[20 февраля 2015 г. 11:22] Егор К.: Однаха софсем с танчиками ебанулся.. Сижу,значит,гамаю.. Одним глазом тель-авизор зырю.Там рекламо сайта по БРОНИРОВАНИЮ отелей. А у меня репа начинает судорожно размышлять,сколько лобовое БРОНИРОВАНИЕ и сколько корпуса и куда шить можно...

четверг, 19 февраля 2015 г.

Приложения для Android

- Lazy Swipe;
- Lightning Launcher Extreme;
- Storage Analyser (как SpaceSniffer, только для Android), наверное, из-за него скоро откажусь от DiskUsage;
- Swipeup Utility дает возможность изменить/отключить действие по жесту «провести вверх от кнопки "домой"»;
- Truedialer - норм звонилка;
- Камера Z;
- Textra SMS;
- RD Client - RDP-клиент от Microsoft;
- 2X RDP Client - RDP-клиент, примечателен тем, что имеет собственный RDP-сервер (www.2x.com);
- rus2lat - раскладка для пароля;
- Hovering Controls Free - управление смартфоном без прикосновений;
- Weather Underground - погода;
- Quick Control Panel - панель управления, вызываемая жестом;
- Snowball - Smart Notifications - заменяет шторку, делает ее похожей на шторку из Lollipop (там она более удобная, чем на Kitkat).

понедельник, 16 февраля 2015 г.

Коляска изображения

Все-таки, надо тренировать телепатию, а то перед друзьями неудобно уже:

> NiTRO (10:10:22 16/02/2015)
> у тебя случаем нету коляски изображения в сдр ?
>
> d'Greeze (10:11:28 16/02/2015)
> чо чо?
>
> d'Greeze (10:11:34 16/02/2015)
> коляски изображения? )))
>
> NiTRO (10:11:36 16/02/2015)
> коляска ) децкая
>
> NiTRO (10:11:38 16/02/2015)
> в векторе

четверг, 12 февраля 2015 г.

Azk2Clnt.ini

[CORBA]
Server=localhost:2001

[SERVER]
ServerMode=CORBA
Interactive=true
;SessionProvider=corbaloc:iiop:1.2@localhost:2001/SessionProvider
;DataSetProvider=corbaloc:iiop:1.2@localhost:2001/DataSetProvider
;TransactEngine=corbaloc:iiop:1.2@localhost:2001/TransactEngine

StopServer.bat

cd .\XML &&call .\xml.cmd .\shutdown.xml
@echo off
if %ERRORLEVEL%==0 (goto mrk_ok) else (goto mrk_fail)
:mrk_ok
    rem Если команда завершения выполнилась успешно, то окно можно и закрыть по таймауту
    timeout 5
    goto end
:mrk_fail
    rem Если команда завершения выполнилась с ошибкой, то окно не закрываем, чтобы администратор мог ознакомиться с ее текстом
    pause
    goto end
:end

вторник, 10 февраля 2015 г.

Мегафон, 2007 год

[9:32:30] [Snake]: начал разгребать древний бэкап винта ))) помните как то говорил нашел папку у себя
d:/backup/from_1tb/from_750gb/from_500gb/from_D/from_250gb/from120gb/from 60gb/from 30 gb/from 4.5
так вот начал разгребать фром30гб, там от 2003 года) сижу ржу
...
[16:06:17] [Snake]: немного юмора про мегафон
[16:06:26] [Snake]: из 2007 года:

dbserver.mdb, delete

Надо бы не забыть автоматизировать вот эту часть:

DELETE FROM ORA_USERS WHERE orausername not in (
'F_ANGARSK_150115',
'F_BRATSK_150123_TEST',
'F_IRKOBL_150113',
'F_IRKOBL_150124',
'F_IRKOBL_150201',
'F_IRKOBL_150205',
'F_IRKOBL_150205_B',
'F_IRKOBL_2014_150110',
'F_IRKOBL_2014_150203_B',
'P_BRATSK_141127',
'P_IRKOBL_150112',
'P_IRKOBL_150128',
'P_IRKOBL_150201',
'P_IRKOBL_150205',
'P_IRKOBL_150205_B',
'Z_IRKOBL_141202',
'Z_IRKOBL_141217',
'Z_IRKOBL_150120'
);

понедельник, 9 февраля 2015 г.

Копирование файлов с Android-смартфона на USB-флешку через OTG-USB

Прикупил недавно кабель OTG-USB и тут же столкнулся с проблемой:
Android-смартфон (Sony Xperia M2, Android 4.4.4) при попытке изменения данных на USB-флешке (копирование, удаление) ведет себя так, будто флешка подключена к режиме "только на чтение". Оказалось, что это такое требование безопасности для Android 4.*.

Решение нашлось совсем неожиданно: плагин для Totalcmd "USB Stick Plugin-TC"
Root не требуется.

Ключ в ключ

Panda (13:17:59 9/02/2015)
а мне утром на б4 универсал предложили обмен
Panda (13:18:03 9/02/2015)
Анжела некая
Panda (13:18:07 9/02/2015)
звоню по телефону
Panda (13:18:09 9/02/2015)
в братск
Panda (13:18:13 9/02/2015)
берет трубку муж
NiTRO (13:18:21 9/02/2015)
гг )))
Panda (13:18:23 9/02/2015)
я гвоорю ваша жена мне обмен предложила на кабриолет
Panda (13:18:29 9/02/2015)
он такой долго думал думал
Panda (13:18:37 9/02/2015)
мерседес красный чтоле - я говорю ога он
Panda (13:19:03 9/02/2015)
он еще тупил тупил и выдает - че она поменяться хотела? я говорю ага. А БОЛЬШЕ ОНА НNХ#Я НЕ ХОТЕЛА ))))))))))

суббота, 7 февраля 2015 г.

Ошибка после щелчка правой кнопкой мыши

У друга на компьютере замечена такая проблема:
при щелчке правой кнопкой мыши, сначала появляется сообщение:
"Please run this program from the Administrator account so it can set up your license. Once the license is set up, you can run it from any account." с кнопкой "OK" и только после нажатия на нее появляется контекстное меню.


С помощью диспетчера задач выяснить проблемное приложение не удалось, окно сообщения принадлежало процессу "explorer.exe".

Методом тыка, выяснил, что дело в приложении "Right Click Image Converter". Разбираться не стал, просто удалил приложение.

четверг, 5 февраля 2015 г.

Размер БД Oracle с разбивкой по сегментам

Расчет размера БД Oracle:

select
    sum(bytes)
from
    DBA_EXTENTS
where
    owner=<OWNER_NAME>
;

Размер БД с разбивкой по именам сегментов и их типов (таблицы, индексы и т.д.):
Примечание: в академических целях расписано подробно.

select
    SEGMENT_NAME,
    SEGMENT_TYPE,
    sum(bytes)
from
    DBA_SEGMENTS
where
    owner=<OWNER_NAME>
group by
    SEGMENT_NAME, SEGMENT_TYPE
;

Размер БД по таблицам (с учетом индексов и LOB-сегментов):

select TABLE_NAME, sum(bytes)/1048576 as SIZE_MB from
(
select t.TABLE_NAME, s.bytes
from user_segments s join user_tables t on t.TABLE_NAME=s.SEGMENT_NAME
where s.SEGMENT_TYPE = 'TABLE'
union all
select t.TABLE_NAME, s.bytes
from user_segments s join user_indexes t on t.INDEX_NAME=s.SEGMENT_NAME
where s.SEGMENT_TYPE = 'INDEX'
union all
select t.TABLE_NAME, s.bytes
from user_segments s join user_indexes t on t.INDEX_NAME=s.SEGMENT_NAME
where s.SEGMENT_TYPE = 'LOBINDEX'
union all
select t.TABLE_NAME, s.bytes
from user_segments s join user_lobs t on t.SEGMENT_NAME=s.SEGMENT_NAME
where s.SEGMENT_TYPE = 'LOBSEGMENT'
)
group by TABLE_NAME
order by sum(bytes) desc
;



По мотивам.

понедельник, 12 января 2015 г.

FileZilla и кириллица

FTP-клиент FileZilla в режиме автоматического распознавания кодировки не отображает файлы и папки, в названии которых используются русские буквы (либо отображает, но не может с ними ничего сделать). Чтобы это исправить, необходимо в настройке подключения к серверу на вкладке "Кодировка" ("Charset") выбрать опцию "Использовать указанную кодировку" ("Use custom charset") и указать в поле "Windows-1251".

+

Архив