четверг, 30 июля 2015 г.

Загрузка Linux

Существует 2 вариант загрузки системы:
1. Первичный загрузчик просматривает таблицу разделов, находит раздел, помеченный как загрузочный и выолняет код в загрузочном секторе данного раздела. Данный загрузочный сектор содержит вторичный загрузчик, который в свою очередь ищет ядро системы, загружает и выполняет его.
2. Первичный загрузчик ищет ядро системы, загружает и выполняет его.

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

EFI в отличие от BIOS полагается не на код в загрузочном секторе, а на загрузчик в разделе ESP. В линукс ESP обычно монтируется в /boot/efi Загрузчик содержится в файле с расширением .efi и находится в отдельной поддиректории название которой совпадает с названием ОС. Это позволяет устанавливать параллельно две или более ОС.

четверг, 16 июля 2015 г.

Управление файлами в Linux

Рекомендуется использовать в именах файлов только буквы, цифры и символы (.), (-), (_).
Пробелы в именах файлов при  работе в командной строке должны предваряться символом "\" или имя файла должно быть взято в кавычки.

Вывести список файлов в директории: ls -a (отобразить все файлы, втч с названием, начинающимся с точки), --color (элементы списка разных типов (файлы, директории, символические ссылки) обозначаются разыми цветами), -l (отобразить разрешения, владельца, группу, размер, дату создания), -F (отобразить типы файлов: / - директория, @ - символическая ссылка, = - сокет, | - пайп)

Копировать файлы: cp -f  (перезапись без предупреждения), -i (выдвать запрос на перезапись), -p (сохранять владельца и разрешения - по умолчанию владельцем скопированного файла становится пользователь от имени которого выполняется команда), -R (копировать поддиректории), -a (аналог -R, но сохраняет владельца, и копирует линки а не файлы, на которые они ссылаются),  -u (файл копируется только если оригинал новее конечного файла или конечный файл не существует)

вторник, 14 июля 2015 г.

Включение теневого копирования в Win7 скриптом

Теневое копирование поддерживается только для NTFS
Можно исключить файлы из области копирования, ключ рееста FilesNotToSnapshot
По умолчанию делается 64 копии, после чегоони удаляются и процесс начинается снова. Можно увеличить до 512, ключ рееста MaxShadowCopies
Увеличить объем теневого тома: vssadmin resize shadowstorage

Всего требуется 3 файла в одной директории: vss.bat, vss.ps1, sch.bat
Запускать vss.bat с правами администратора

vss.bat (скрипт для запуска):
@echo off
Разрешаем выполнение неподписанных скриптов powershell
start /wait powershell.exe -WindowStyle Hidden Set-ExecutionPolicy RemoteSigned
Запускам файл vss.ps1. %~dp0 указывает на директорию из которой запущен скрипт. Ключ -WindowStyle Hidden прячет окно powershell
start /wait powershell.exe -WindowStyle Hidden %~dp0vss.ps1
cmd.exe /c %~dp0sch.bat
exit

четверг, 9 июля 2015 г.

Немного о Postgre SQL

Записи в таблице называются кортежами  (tuples)
Кортеж - упорядоченная группа компонентов или атрибутов, каждый из которых имеет определенный тип.
Все кортежи дожны иметь одинаковое количество типов компонентов.
В таблице не должно быть идентичных кортежей.
Каждый атрибут должен быть атомарным, т.е. не являться другой записью или или списком атрибутов.
Атрибут опеределяющий отдельную запись в таблице называется первичным ключом.

SQL (обычно произносится как "sequel") - язык запросв, разработанный IBM. Т.к. оригинальный SQL не включает себя ряд команд, необходимых для администрирования баз данный, появляются вариации SQL, реализованные разными разработчиками (Oracle, MS и тд)

Типы команд SQL
-Data manipulation language (DML) - команды для ввода, удаления, обновления и выборки данных из базы
-Data definition language (DDL) - команды для создания таблиц, определения взаимосвязей.
-Data control Language (DCL) - команды для контроля разрешений и определения прав доступа.


Управление аппаратной частью в Linux

Managing hardware

Посмотреть информацию о процессоре и оперативной памяти компьютера:
cat /proc/meminfo
cat /proc/cpuinfo

Посмотреть информацию о сетевых устройствах:
lshw -C network

Прошивка (firmware) инициализирует оборудование материнской платы и контролирует процесс загрузки. В прошлом, большинство компьютеров с архитектурой  х86 и х86_64 использовало BIOS. Начиная с 2011  года получил распространение новый тип прошивки, известный как Extensible Firmware Interface (EFI).

Прерывание (IRQ) сигнал процессору прервать выполнение текущей задачи и обработать внешнее событие, например ввод с клавиатуры.
Просмотреть список IRQ: cat /proc/interrupts
/proc это виртуальная файловая система, которая не ссылается на реальные файлы на жестком диске. Это данные из ядра, которые удобно представлять в используя фаловую систему. /proc предоставляет информацию об устройствах, процессах, и т.д.
На современном оборудовании конфликты IRQ редки, но в случае, если он все-таки случается, нужно настроить устройства  таким образом, чтобы они использовали разные IRQ.

Управление программами в Linux

RPM-дистрибутивы: Fedora - бесплатный вариант для домашних пользователей, RHEL - платный для энтерпрайзов, CentOS - бесплатный для энтерпрайзов
Именование RPM-пакетов: packagename-a.b.c-x.arch.rpm, где packagename - имя пакета, a.b.c - номер версии, x - номер билда (изменения, внесенные теми, кто собирал пакет, а не авторами программы, например изменения конфигурационных файлов. иногда к номеру билда добавляют буквы, чтобы различать билды,собранные разными группами), arch - архитектура.
Ключи RPM: -i установить, -e удалить, -l отобразить файлы в пакете, -h отобразить прогресс установки, -qi отобразить информацию о пакете
Собрать пакет из исходников: rmpbuild
Извлечь содержимое RPM-пакета: rmp2cpio (RPM это, как правил, модифицированный cpio архив, сначала конвертирует в стандартный cpio), cpio (затем извлекаем)
Паектный менеджер: yum
Основной файл конфигурации RPM: /usr/lib/rpm/rpmrc, Yum: /etc/yum.conf (основные опции), /etc/yum.repos.d/ (репозитории)


Ключи dpkg:
-i установить, --configure запустить post-installation скрипты (переконфигурирует пакет), -r удалить (с сохранением конфигурационных файлов), -P удалить (вместе с конфигурационными файлами), --get-selections (-l) показать установленные пакеты -L список файлов относящихся к пакету -C поиск незавершенных установок --no-act проверка зависимостей и конфликтов без устновки

Основы командной строки в Linux

cd - сменить рабочую директорию
~ - сокращение, обозначает домашнюю директорию пользователя
pwd - выводит на экран текущую рабочую директорию
echo <> - выодит на экран текст <>. Полезно для скриптов, а также для просмотра переменных среды.
time <command> - сколько требуется команде для выполнения

exec <команда> запустить команду, при этом команда заменяет консоль
<команда>& -запустить команду в фоновом режиме

В некоторых случаях, внутренние команды (встроенные в bash) и внешние команды могут выдавать разные результаты для однихи тех же команд и принимать разные опции.
Если директории, где находится программа нет в переменной среды PATH, нужно прописывать полный путь к этой программе (например /home/user/myprog вместо ./myprog)
Следует избегать добавления в PATH для рута директорий с  графическими и другими программами, предназначенными для запуска пользователем, а также не добавлять в PATH рута текущую директорию (./), т.к. это позволяет запустить потенциально опасные программы под видом системных.

среда, 8 июля 2015 г.

Небольшой ликбез по ленточным накопителям 2

Компрессия данных на ленточных носителях.

Компрессия позволяет хранить больше данных за счет более эффективного кодирования последовательностей данных (patterns of input characters). Чем чаще повторяются те или иные последовательности, тем более эффективно сжимаются данные, следовательно, эффективность компресии напрямую зависит от сжимаемых данных.
Для ленточных приводов, компрессия, как правило, реализуется на аппаратном уровне.

Если в характеристиках носителя указана емкость при условии сжатия (например 320 GB (with a 2:1 compression ratio)), это не означает, что на носитель получится записать именно столько информации. Объем может быть больше или меньше, в зависимости от записываемых данных. Поэтому следует ориентироваться на нативный (native) объем.

Следует обратить внимание на то, что данные со случайными битовыми последовательностями (random bit strings), зашифрованные или предварительно сжатые, будут занимать не намного меньше места после компрессии. Для данных с высокой степенью случайности (highly random data), объем данных после компрессии может даже увеличиться.

Небольшой ликбез по ленточным накопителям 1

Изначально для записи на ленту использовалась линейная (linear) технология. В середине 80-х начала применяться также спиральная (helical) технология, изначально разработанная для видеозаписи.
Приводы использующие линейную технологию записывают дорожку по всей длине ленты, когда достигается конец ленты, позиция головок меняется и запись продолжается, лента при этом двигается в обратную сторону. Процесс повторяется, пока лента не заполнится. Головки в приводах, использующих линейную технологию записи не двигаются.
В приводах, использующих спиральную технологию, лента оборачивается вокруг вращающегося барабана, на котором расположены пишущие и читающие головки. В спиральных приводах, в сравнении с линейными, сильно возрастает нагрузка на ленту, но плотность записи у них намного выше (соответственно стоимость носителя ниже). Также спиральные приводы имеют более низкую скорость передачи данных, менне эффективный доступ к случайным данным, повышенные требования к обслуживанию и пониженную целостность данных. Еще одним значительным улучшением является использование вспомогательных дорожек, которые записываются при производстве ленты и позволяют точно располагать головки во время движения ленты.

За прошедшие декады линейные системы сильно улучшились в плане плотности хранения и удобства с появлением съемных картриджей (QIC, DLT и Linear Tape Open - LTO, используемые в настоящий момент), в спиральных системах  повысилась скорость передачи данных, а также технология коррекции ошибок.