понедельник, 15 декабря 2014 г.

Office Excel 2010 формула подстановки значений ВПР

Инвентаризация.xlsx
ФИО E-mail
Вася
Коля
Петя

E-mail.xlsx
ФИО E-mail
Вася vasya@mail.com
Петя petya@mail.com

Инвентаризация.xlsx
ФИО E-mail
Вася vasya@mail.com
Коля
Петя petya@mail.com

В книге Инвентаризация.xlsx есть колонки ФИО, E-mail. Нужно в колонку E-mail вставить из книги E-mail.xlsx (1 колонка - ФИО, 2 колонка - E-mail) почтовые адреса по ключевому полю ФИО. Это делает формула ВПР:

=ВПР(R2C1:R4C1;[email.xlsx]Лист1!R2C1:R4C2;2;ЛОЖЬ)

где R2C1:R4C1 - это колонка ФИО из Инвентаризация.xlsx, далее [email.xlsx]Лист1!R2C1:R4C2 диапазон справочника все значения колонок 1 (ФИО) и 2 (E-mail), 2 - вставлять значения колонки 2 (E-mail) из справочника, ЛОЖЬ - ФИО должны полностью совпадать. Там где значение из справочника не найдено - вставляет #н/д, которое можно тоже заменить формулой ЕСЛИОШИБКА.
link

понедельник, 8 декабря 2014 г.

Outlook корректировка автозаполнения при выборе адресата

Хранится база в профиле пользователя в формате *.nk2 Если нужно очистить все - то просто удаляем файл. Для 2007 чтобы откорректировать записи есть проверенная утилитка NKEdit

среда, 26 ноября 2014 г.

OpenVPN TAP заметки по пониманию процесса

TAP работает как Ethernet устройство на канальном уровне модели OSI, оперируя кадрами Ethernet. TUN (сетевой туннель) работает на сетевом уровне модели OSI, оперируя IP пакетами. TAP используется для создания сетевого моста, тогда как TUN для маршрутизации.

Пример работы с TAP, без использования моста:
В локальной сети офиса 192.168.1.0/24 есть сервер приложения, с которым необходимо работать удаленным пользователям. В сети офиса с ним поднят сервер OpenVPN. Находится за NATом, порт к нему проброшен. Всем клиентам назначены статические сетевые адреса внутренней сети VPN  10.0.1.0/24 (в каталоге на сервере для клиентов соответствующие файлы настроек со строкой ifconfig-push 10.0.1.11 255.255.255.0) и включена возможность видеть друг друга client-to client. Т.е. у сервера из сети 192.168.1.0/24 будет адрес 10.0.1.10 из сети VPN, у клиента 10.0.1.11 и т.д. Причем клиентом может быть роутер с включенным НАТом. Чтобы увидеть клиента за натом, нужно пробросить порт на клиентском роутере.

среда, 19 ноября 2014 г.

Office Excel 2010 64bit при прокрутке листа жрет память и вылетает с ошибкой

Анализ формул на листе ничего не дал. Проблема оказалась в шапке. Там был рисунок с формулой ссылающейся на соседнюю ячейку (=$B$5:$B$7, в этой ячейке было название колонки №пп) После удаления  формулы проблема ушла. Чтобы найти рисунки на листе - удобно пользовать "Главная - Найти и выделить - Область выделения" и будут показаны фигуры на листе.

пятница, 24 октября 2014 г.

Windows 2008 Terminal Не удается проверить автора файла. Вы действительно хотите открыть этот файл?

В терминале при открытии проводника, например, перед запуском возникает такое сообщение. Используются перемещаемые профили, размещенные на DFS. Пути у ярлыков имеют в расположении сетевой путь \\domen.local\etc . Предупреждение связано с настройками Internet Explorer.
Нужно на конкретной машине, где возникает предупреждение, войти в Свойства обозревателя -- Безопасность -- Местная интрасеть -- Сайты и поставить галочку "Автоматически определять принадлежность к интрасети"
Также Свойства обозревателя -- Безопасность -- Местная интрасеть -- Сайты -- Дополнительно добавить там domen.local

четверг, 23 октября 2014 г.

Windows 2008 Terminal ошибка при завершении сеанса терминальной сессии "не удалось полностью обновить перемещаемый профиль"

Используются в системе перемещаемые профили, размещенные на DFS.
В логе, перед ошибкой, идеть очередь предупреждений о невозможности скопировать файлы (ntuser.dat, desktop.ini etc) из локального профиля, создаваемого при входе в терминал, в профиль, размещенный на DFS. В предупреждениях присутствуют записи отказано в доступе, не хватает прав.
Проверяю права на папку с перемещаемым профилем (расположена на DFS \\domen\profiles, физически это файловый сервер). Захожу на сервер, смотрю права test_user.V2 (полные - система, Администратор, Администраторы домена, Администраторы предприятия; изменение - test_user). Если посмотреть на файлы из предупреждений, то там только Администратор.

Решение: запускаю от Администратора Безопасность-Дополнительно
Владелец выставляю test_user, закрыл открыл
повторно открываю от Администратора, Разрешения-Изменить разрешения, проверяю "Добавить разрешения наследуемые от родительских обьектов" галочка не стоит, ставлю галочку "Заменить все разрешения дочернего обьекта на разрешения, наследуемые от этого обьекта" и применить. Права на все файлы в папке восстановлены. Ошибка исчезла.

среда, 22 октября 2014 г.

Windows 2008 Terminal не создается папка с профилем на терминальном сервере (происходит вход во временный профиль)

Игрался с тестовой учетной записью AD на предмет перемещаемых профилей. В какой-то момент, а было:
- вручную удалил папку профиля на терминальном сервере
- и после этого, подключался к терминальному серверу без/с настройкой перемещаемого профиля (добавление/удаление пути к профилю в закладке "Профиль" учетной записи AD)

что-то сломалось, и, при входе на терминальный сервер, папка с профилем перестала создаваться. Вход происходил во временный профиль (в C:\Users\Temp@domen).
Вылечилось удалением в реестре на терминальном сервере по пути HKLM\Software\Microsoft\WindowsNT\CurrentVersion\ProfileList
раздела S-1-5-21-NN.bak соответсвующего моей тестовой учетной записи с расширением .bak
(обычно этот раздел без .bak после выхода из системы удаляется как и создаваемый профиль на терминальном сервере)

Если .bak отсутствует, то проверить права на профиль и перенаправляемые папки (система, администратор сервера, администраторы домена и предприятия - полные, сам пользователь - изменение), владелец - Администраторы.

четверг, 9 октября 2014 г.

Windows Terminal шпаргалка по настройке удаленного рабочего места (одна программа, местный принтер с сетевым интерфейсом)

Требуется запуск с филиала одной программы, которая находится в управлении (Medoc), и печать на местный филиальный принтер с сетевым интерфейсом.

Филиал связан с управлением через IPSec - туннель, сети видят друг друга. Завожу в домене пользователя. В закладке Среда указываю запуск программы и рабочий каталог. Все галки на устройства клиента снимаю. Под администратором добавляю принтер филиала как локальный принтер (где порт - сетевой адрес), даю доступ заведенному пользователю.

среда, 8 октября 2014 г.

Windows Terminal Шпаргалка по перемещаемым профилям

Запускаем gpmc.msc
Выбираем нужную групповую политику в Объектах групповой политики и ПКМ "Изменить"
Конфигурация пользователя - Политики - Конфигурация Windows - Перенаправление папки
Указываем на шару DFS. Просмотр шары - Диспетчер сервера - Роли - Файловые службы - Управление общими ресурсами

При добавлении, в закладке Параметры лучше снять галку с Предоставить право монопольного доступа.

вторник, 7 октября 2014 г.

Windows Terminal Квота на размер папки терминального пользователя

Windows 2008 R2

Терминальные пользователи любят засирать рабочий стол. Чтобы не разрастался перемещаемый профиль, можно установить квоту.

Пуск - Администрирование - Диспетчер ресурсов файлового сервера - Управление квотами - Шаблоны квоты

Link1 link2

пятница, 19 сентября 2014 г.

DNS просмотр MX PTR записей

Шпаргалка по командам просмотра значений в DNS - записях

Просмотр MX записей

dix -t mx mail.com
nslookup -type=mx mail.com

Прсмотр PTR записи

dix -x 11.11.11.11
nslookup 11.11.11.11

суббота, 30 августа 2014 г.

пятница, 29 августа 2014 г.

Linux KVM подключение USB в гостевую ОС

Через virt-manager View-Details click "Add Hardware" USB Host Device и выбираем нашу флешку. После этого она появляется в гостевой системе.
Но при уже включенной гостевой автоматом новая флешка в системе не подхватилась. Гостевая была Windows 7. Драйвера установились после выключения и последующего включения ОС.

четверг, 28 августа 2014 г.

Linux KVM увеличение образа гостевой ОС

Останавливаем гостевую ОС. Конвертируем:

qemu-img resize image.qcow2 +1GB

Загружаемся, и средствами ОС расширяем диск.

среда, 27 августа 2014 г.

Linux KVM QCOW2, конвертирование образа гостевой системы IMG -> QCOW2

По-умолчанию, образ в формате RAW (IMG). Из всех перечисленных в man qemu-img типов дисков наиболее гибким и современным является QCOW2. Он поддерживает снапшоты, шифрование и сжатие. Его необходимо создавать до того, как создать новую гостевую систему.

qemu-img create -o preallocation=metadata -f qcow2 qcow2.img 20G

Согласно тому же man qemu-img, предварительное размещение метаданных (-o preallocation=metadata) делает диск изначально немного больше, но обеспечивает лучшую производительность в те моменты, когда образу нужно расти. Кроме типа образа впоследствии можно будет выбрать способ его подключения — IDE, SCSI или Virtio Disk.

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

qemu-img convert -f raw -O qcow2 image.img image.qcow2

Потом выставить права и owner-а на файл образа и скопировать в папку с образами. В virtual-manager останавливаем гостевую систему, удаляем старый диск и добавляем новый.

суббота, 23 августа 2014 г.

четверг, 7 августа 2014 г.

Linux перенос Zabbix со старого сервера на новый с обновлением версии

Дано: есть backup базы zabbix 2.0.3 на ubuntu 12.10, нужно поставить на ubuntu 14.04 текущий релиз zabbix 2.2.5

Поставить zabbix 2.0.3 и потом обновить на ubuntu 14.04 из deb-пакетов нельзя, нет релиза 2.0.3 для ubuntu 14.04

Решение: разворачиваем backup 2.0.3, даем права пользователю zabbix в MySQL, запускаем установку zabbix-server-mysql (версия 2.2.5). Веб-интерфейс у меня разворачивается вручную из tar-архива.

Во время установки предлагается создать базу zabbix, но так как она уже развернута - отказываемся. Проверяем конфиг /etc/zabbix/zabbix_server.conf и заполняем отутствующие параметры. У меня там после установки не были заполнены данные для подключения к базе (DBUser=zabbix  DBPassword=password).
Что дальше? Дело в том, что база обновляется при старте zabbix-server. Поэтому важно, чтобы не было ограничений доступа к базе и не прерывайте обновление. Иначе можно словить подобное: Configuration file error: The frontend does not match Zabbix database. Current database version (mandatory/optional): 2010033/2010033. Required mandatory version: 2020000. Contact your system administrator.
и придется выкручиваться по ситуации. У меня например добавилось поле в таблицу config и обновление остановилось. Пришлось ручками удалять и запускать заново zabbix-server.

Для этого просматриваем лог zabbix на предмет таких записей
 31958:20140806:152453.863 completed 94% of database upgrade
 31958:20140806:152454.097 completed 95% of database upgrade
 31958:20140806:152454.316 completed 96% of database upgrade
 31958:20140806:152454.364 completed 97% of database upgrade
 31958:20140806:152454.481 completed 98% of database upgrade
 31958:20140806:152454.539 completed 99% of database upgrade
 31958:20140806:152454.598 completed 100% of database upgrade
 31958:20140806:152454.598 database upgrade fully completed
 31965:20140806:152454.607 server #1 started [configuration syncer #1]
 31966:20140806:152454.607 server #2 started [db watchdog #1]

Если нужно остановить zabbix-server, то проверяем лог и не останавливаем во время обновления.

После обновления можно заходить в веб-интерфейс и работать.

среда, 6 августа 2014 г.

Linux установка Zabbix на Ubuntu 14.04

Перед этим установлен LEMP. Использую php5-fpm.
Для frontend-а использую nginx, поэтому от мануала немного отличается. Zabbix версия 2.2.5

sudo wget http://repo.zabbix.com/zabbix/2.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_2.2-1+trusty_all.deb
sudo dpkg -i zabbix-release_2.2-1+trusty_all.deb 

sudo apt-get update
sudo apt-get install zabbix-server-mysql

Frontend беру из скаченного tar-а.

вторник, 5 августа 2014 г.

Ubuntu 14.04 виснет после блокировки и отключения дисплея

Ubuntu 14.04 виснет после блокировки и отключения дисплея. Т.е. перед уходом с рабочего места заблокировал экран. Пришел минут через 10 - черный экран (отключен дисплей). По клавишам клац, мышкой тыц - не помогает. Приходилось холодный reset делать.
Думал помогло, но не нет:

Оказалось дело в драйверах видеокарты (старая ATI Radeon X800). На интегрированной такой проблемы не оказалась.

вторник, 29 июля 2014 г.

Linux таргет iSCSI, инициатор Windows 2008 R2

iSCSI таргет на Ubuntu 14.04

sudo apt-get install iscsitarget iscsitarget-dkms

Создадим файлик, который и будем пользовать как диск
dd if=/dev/zero of=templun3 count=0 obs=1 seek=10G

Настраиваем файл конфигурации /etc/ietd.conf
Target iqn.2014-07.locale.server:target00
#Логин и пароль для CHAP, пароль от 12 до 16 символов
IncomingUser user-in 12_char_password
Lun 0 Path=/path/templun3,Type=fileio
#Разрешаем запуск службы в /etc/default/iscsitarget.
ISCSITARGET_ENABLE=true

#Перезапускаем сервис:
service iscsitarget restart

iSCSI инициатор на Windows 2008 R2

Запускаем в Администрировании iSCSI - инициатор. В закладке Конечные объекты по IP находим таргет. Выделяем его и нажимаем свойства. Там нажимаем Добавить сеанс - Дополнительно. Отмечаем в чекбоксе Разрешить вход CHAP и вводим логин пароль для IncomingUser в настройке таргета. Если все правильно, то статус будет подключено. 
В закладке Тома и устройства нажимаем Автонастройка.
Заходим в Управление дисками там предложит выбрать тип загрузочной записи MBR или GPT. Форматируем и назначаем букву диска. Все.

пятница, 25 июля 2014 г.

Windows установка windows 7 на ноутбук acer e1-510

Параметры ноута Сeleron, 2Gb, 500Gb. Хочу поставить Win 7 SP1 32-bit

Проблема: изначально биос UEFI, без выбора Legacy - т.е. 7 не поставишь.

Решение: есть ссылка по которой обновляю биос (был 2.04 стал 2.07). После прошивки доступно Legacy, запускаю установку с флешки.

Если диск с GPT, а для 32-bit нужно MBR. Значит при установке при разбиении диска нажимаю Shift-F10 и в консоли:
diskpart
sel dis 0
clean
convert mbr
exit
exit

Но после установки выяснилось что нет драйверов по крайней мере на видео) Значит 64bit.
С сайтов производителя пришлось скачать драйвера для видео и сети, остальное пошло с CD. 

вторник, 22 июля 2014 г.

понедельник, 21 июля 2014 г.

Linux Num Lock Ubuntu 14.04

Включение Num Lock в Ubuntu 14.04
sudo apt-get install numlockx
Добавить строку в
/usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf

greeter-setup-script=/usr/bin/numlockx on

Только все равно глючит: после смены раскладки индикация выключается. После удаления, нужно не забыть удалить добавленную строку,  иначе ошибка будет, при включении не запустится графический режим из-за ошибки устройства ввода.

пятница, 18 июля 2014 г.

MySQL скрыть пароль в batch-скрипте

echo "batchpassword" > /etc/security/mysqlpassword
chmod 200 /etc/security/mysqlpassword


echo "update tablex set x=1 where a=2;" | mysql mydb --user=batchdb --password=`cat /etc/security/mysqlpassword`

среда, 16 июля 2014 г.

MySQL Удаление записей старше 15 дней

Во время логирования sysloga с железки в базу MySQL на сервере, база заметно растет. Для регулирования этого процесса чистим базу - удаляем записи старше 15 дней.

DELETE FROM `SystemEvents` 
WHERE `ReceivedAt` < (NOW() - INTERVAL 15 DAY);

это дело засунем в крон. Чистим каждый день в 00:00 с логированием.

crontab -e
0 0 * * * $HOME/bin/clearDBSyslog.job >> $HOME/log/daily 2>&1

содержимое clearDBSyslog.job

#!/bin/sh
mysql -B -T --user=root --password=SeCrEt --database=Syslog --execute='DELETE FROM `SystemEvents` WHERE `ReceivedAt` < (NOW() - INTERVAL 15 DAY)'

воскресенье, 22 июня 2014 г.

Linux Sublime Text 3 шпаргалка

Установка

sudo add-apt-repository ppa:webupd8team/sublime-text-3
sudo apt-get update
sudo apt-get install sublime-text-installer

Установка плагинов

Сразу же ставим Package Control. Открываем консоль редактора ( Ctrl - ` ). Вставляем с оф. сайта в консоль строку установки. Потом вызываем Ctrl + Shift + P и работа с пакетами (Package Install, Package Remove).

Автокомплит Python - Jedi
Сначала ставим в системе sudo pip install jedi
Потом в редакторе - Package Install - Jedi

пятница, 20 июня 2014 г.

Длина пароля

Стэнфордский университет недавно обновил требования к паролям для доступа студентов и преподавателей к внутренним ресурсам своей сети. Теперь жёсткие требования использования букв в разных регистрах, цифр и спецсимволов действуют только для коротких паролей, и чем длиннее пароль, тем эти требования мягче. При длине пароля от 8 до 11 символов их использование обязательно, от 12 до 15 — можно обойтись только буквами в разных регистрах и цифрами, от 16 до 19 — можно отказаться от цифр, а для паролей от 20 символов нет вообще никаких ограничений.
взято с хабра 

среда, 18 июня 2014 г.

Linux rsyslog тюнинг

Появилась задача как у многих - писать лог с железяки в базу для анализа. Писать буду в MySQL на Ubuntu. Парсить буду самостоятельно SQL-запросами к полю Message таблицы SystemEvents, так как либо все платное, либо, то что бесплатное, то ни о чем (loganalyzer). С установкой rsyslog для MySQL все понятно. Имеем установленный MySQL, далее
 sudo apt-get install rsyslog-mysql
Задаем пароль для пользователя rsyslog базы Syslog. В результате создается конфигурационный файл который модифицируем:
/etc/rsyslog.d/mysql.conf
$ModLoad ommysql
local0.192.168.0.200 :ommysql:localhost,Syslog,rsyslog,password
& ~
Но в настройке по-умолчанию что-то не так, медленно работает, дублирует в файл syslog. Иногда такое чувство, что вообще не пишет в лог. Пытаемся устранить это далее. Ну и то что в процессе нарыл - добавил сюда. Скажу сразу, что ускорилась запись в лог после отключения резолвинга (до этого пробовал играться с записью очереди в память LinkedList - не помогло). Видимо связано с тем, что IP железки использовал из локальной сети и его соответственно отрезолвить никак не могло, на чем и затык выходил. Это было видно при запуске демона с в дебаг режиме. При записи очереди на диск периодически появлялась запись:
7494.546004979:7f8214d81700: Host name for your address (192.168.0.200) unknown

вторник, 10 июня 2014 г.

Outlook 2010 отправка из контекстного меню с уведомлением о прочтении

Взято с TechNet
Вопрос:
Outlook 2010. Установлены параметры отслеживания по умолчанию: уведомлять о прочтении и доставке. При создании сообщения в программе outlook все нормально работает, создается сообщение, где стоят галочки уведомлять о доставке и прочтении.

Но при создании сообщения через проводник: Контекстное меню на файле - Отправить - адресат, создается новое сообщение с вложенным файлом, но галочки (как задано по умолчанию в параметрах Outlook) уведомлять о доставке и прочтении НЕ СТОЯТ.


четверг, 5 июня 2014 г.

Linux установка драйвера Nvidia на Ubuntu 11.10

Есть система с Ubuntu 11.10 c настройками, которые не хочется заново производить, но нужно продублировать рабочее место (remmina 0.9.2, сетевой сканер, браузер и настройки для подключения в AD). Версия 11.10 уже не поддерживается, а железо куплено новое - в том числе видеокарта Nvidia GT630. Со старта видеокарта не заработала. Пробовал установки из статьи. Из предложенного и опробованного подошел вариант установки из исходников (драйвера скаченные с сайта nvidia.com вида NVIDIA-Linux-x86-331.79.run). Но с небольшой поправкой. Так как 11.10 уже не поддерживается, то репозитории надо изменить в /etc/apt/sources.list с ua.archive.ubuntu.com security.ubuntu.com на old-releases.ubuntu.com и сделать sudo apt-get update. И в 10 пункте, там где нужно отредактировать xorg.conf, так как у меня его не было, то я просто создаю его с предложенным содержимым.
Section "Screen"
 Identifier "Default Screen"
 DefaultDepth 24
EndSection        

Section "Device"
 Identifier "Default Device"
 Driver "nvidia"
 Option "NoLogo" "True"
EndSection

Section "Module"
 Load "glx"
EndSection

суббота, 24 мая 2014 г.

Excel как найти значение в одной таблице и вставить в другую (ВПР)

Пример: в "ИНВЕНТАРИЗАЦИЯ_2013.xlsx" есть заполненные столбец ФИО и столбец E-mail. В  "ИНВЕНТАРИЗАЦИЯ_2014.xlsx" есть столбец ФИО, в котором есть ФИО из "ИНВЕНТАРИЗАЦИЯ_2013.xlsx". Нужно в "ИНВЕНТАРИЗАЦИЯ_2014.xlsx" вставить E-mail из "ИНВЕНТАРИЗАЦИЯ_2013.xlsx" для соответствующих ФИО.

Для этого используем функцию ВПР.
Формула вытаскивания E-mail для ячейки в таблице ИНВЕНТАРИЗАЦИЯ_2014.xlsx:

=ВПР($Q$232;'[ИНВЕНТАРИЗАЦИЯ_2013.xlsx]3 Раб.места'!$Q$226:$U$331;5;0)

где $Q$232 - ФИО из ИНВЕНТАРИЗАЦИЯ_2014.xlsx,
'[ИНВЕНТАРИЗАЦИЯ_2013.xlsx]3 Раб.места'!$Q$226:$U$331 - диапазон, который является таблицей, где первый столбец - это ФИО
5 - номер столбца из которого берется E-mail, из указанного выше диапазона,
0 - точное совпадение

среда, 21 мая 2014 г.

PDF защита от печати

Столкнулся с защитой от печати в PDF-файле (кнопка печати не активна, статус документа ЗАЩИЩЕН). Для снятия защиты использовал сервис

четверг, 15 мая 2014 г.

Windows скрытный запуск приложения

Есть программа, висящая в трее. Почему то она остановилась. Нужно чтобы если она остановилась, то запустить. Программа сама отслеживает повторный запуск. Создаем start_prg.js с таким содержимым

var WShell = CreateObject("WScript.Shell");
WShell.Run('"c:\\program files\\prg\\prg.exe"', 0);

среда, 7 мая 2014 г.

Windows WiFi статус "Ограничено" или что такое FIPS

   Возможна такая ситуация, в Windows 7 или 8 по сетевому кабелю интернет есть, по WiFi при отключенном сетевом кабеле - сеть без Интернета.
   Если в свойствах беспроводного соединения, в закладке "Безопасность" тип безопасности WPA2, тип шифрования AES. Нужно проверить, там где кнопка "Дополнительные параметры", что флажок включен «Включить для этой сети режим совместимости с Федеральным стандартом обработки информации (FIPS)» (Enable Federal Information Processing Standards (FIPS) compliance for this network). Это позволяет указать, следует ли выполнять шифрование AES в режиме проверки подлинности FIPS 140-2. Стандарт FIPS 140-2 представляет собой государственный стандарт компьютерной безопасности в США, который определяет требования к разработке и реализации криптографических модулей. Windows 7, 8 сертифицирована по стандарту FIPS 140-2. Когда режим проверки сертификации FIPS 140-2 включен, Windows выполняет шифрование средствами AES программным путем, а не полагается на адаптер беспроводной сети.

четверг, 1 мая 2014 г.

Linux GPT или MBR

Как определить какая таблица разделов используется GPT или MBR.
Если кратко, в максимальной конфигурации MS-DOS partition table (MBR) на жёстком диске может быть сформировано три основных раздела (primary) и один дополнительный (extended). При этом некоторые операционные системы способны загружаться только с основного раздела; а те, которые могут загружаться с дополнительного раздела, вынуждены держать на основном разделе свой загрузчик. Загружаться можно только в режиме эмуляции BIOS. Ограничение на емкость диска 2 Tb.
GUID partition table (GPT) ограничение 128 разделов, может загружаться в режиме EFI.
Просмотреть какая таблица можно так (предварительно если надо sudo apt-get install gdisk, sudo apt-get install parted):

sudo parted /dev/sda print

Partition Table: msdos

sudo gdisk -l /dev/sda

Partition table scan: 

MBR: MBR only 
BSD: not present 
APM: not present 
GPT: not present

пятница, 18 апреля 2014 г.

APC error Battery Discharge после установки новых аккумуляторов

После аварийного отключения питания выяснилось что сдохли батареи на двух UPS APC Smart-UPS 1000 и 1500. Это ИБП третьего поколения. Поменяли батареи, но парашют (программа Power Chute) показывает что ИБП выдержит работу на батареях только 7 минут. Дело в том, что в APC нет автоматической самокалибровки. Значит нужно делать её самостоятельно. В парашюте в диагностике есть Run Time Calibration, но при запуске выпадает ошибка Battery Discharge. Для устранения этой ошибки нам поможет программа APCFIX.

суббота, 12 апреля 2014 г.

Linux swap

Взято с Opennet

Создаем раздел жесткого диска, устанавливаем ей partition ID = 82 ("Linux-swap")
fdisk /dev/hda 

Создаем swap файл, не содеpжащий дыp. 
dd if=/dev/zero of=/extra-swap bs=1k count=40000 <- размер в килобайтах 

После выделения раздела или файла под swap его надо прописать: 
mkswap /dev/hda2 40000 <- размер в килобайтах 
sync <- обязательно слить дисковые буфера!!! 

Подключаем swap раздел:
swapon /dev/hda2 

Убеждаемся в том, что swap раздел появился в системе
free
             total       used       free     shared    buffers     cached
Mem:       4003208    3667020     336188          0     170600     820664
-/+ buffers/cache:    2675756    1327452
Swap:      3873788         12    3873776


Смотрим, какие swap-области используются и как: 
swapon -s (или cat /proc/swaps). 
cat /proc/swaps 
или 
swapon -s
Filename Type Size Used Priority
/dev/sda6                               partition 3873788 12 -1

Отключаем swap файл:
swapoff /dev/hda2

Для постоянного включения добавить строчку в /etc/fstab : 
echo "/dev/hdb2 none swap sw" >> /etc/fstab

четверг, 10 апреля 2014 г.

Linux копирование тома с диска на диск с помощью LiveCD

Подключаем два диска к компьютеру и загружаемся с LiveCD Ubuntu.
Если том больше, чем диск на который переносим, то уменьшаем gparted размер исходного.
Также с помощью gparted разбиваем новый диск, если не был отформатирован. /dev/sdb1 - откуда копируем, /dev/sda1 - куда копируем. Копируем по-блочно с помощью dd .

dd if=/dev/sdb1 of=/dev/sda1 bs=1M conv=noerror,sync

Так как исходный диск начал сыпаться, то при копировании будут возникать ошибки чтения, поэтому добавляем параметр conv=noerror,sync. Для ускорения процесса добавляем параметр bs=1M.

вторник, 8 апреля 2014 г.

Подключение принтера в L2TP over IPSec клиенте

Задача: есть удаленная торговая точка. Требуется иногда поработать в 1С, которая находится в офисе, с возможностью печатать отчеты на принтер Canon LBP 6020, который находится на этой удаленной точке. Также есть необходимость заходить в сетевые папки компьютеров офиса и распечатывать документы на удаленный принтер. В офисе есть возможность выделить для удаленной точки отдельный компьютер, который находится в сети офиса. Схема подключения:

удаленный компьютер, на котором поднимается L2TP over IPSec клиент -
Интернет -
роутер D-Link DSR-1000, на котором поднимается L2TP over IPSec сервер -
компьютер в сети офиса -
сервер 1С и компьютеры с нужными сетевыми папками

Можно было бы не использовать промежуточный компьютер в сети офиса, но скорость интернета на удаленной точке оставляет желать лучшего, поэтому работать с офисными документами, через компьютер офиса, веселей.
Решение простое. При при настройке L2TP сервера выбирался диапазон адресов для внутренней сети 192.168.13.200 - 192.168.13.210, где 192.168.13.200 - это роутер (сервер L2TP), а 192.168.13.201 - это клиент (в моем случае клиент всего один, поэтому проблемы выдачи другого IP нет, при большем количестве надо делать привязку клиента к выданному IP). На ноуте удаленной точки шарим принтер. На ноуте в политиках выбираем гостевую модель сети и разрешаем Гостя, убираем запрет Гостя при подключении по сети. Через RDP подключаемся к компьютеру в офисе и подключаем сетевой принтер по адресу 192.168.13.201.

понедельник, 7 апреля 2014 г.

Подключение видеонаблюдения в сети 3G через OpenVPN сервер на VDS с белым адресом.

Задача: нужен доступ к видеорегистратору за серым адресом сети 3G.
3G находится за натом, поэтому напрямую подключиться не можем (либо платим ежемесячно за выделение нам белого адреса, что не хочется). Нужен белый адрес. Есть сервер Windows 2008 R2 на VDS с белым адресом. Его будем использовать как сервер OpenVPN. В качестве клиента OpenVPN будет роутер с возможностью подключения 3G модема, с возможностью установки альтернативной прошивки, например DD-WRT. Был использован TP-Link. Также на самом Windows сервере просматривать видео не желательно (тормозит из-за видеокарты), поэтому будет еще один OpenVPN клиент, на котором будет просматриваться видео.

суббота, 5 апреля 2014 г.

Linux NAT MASQUERADE

Задача: нужно получить доступ с сервера OpenVPN под ОС Windows к сети клиента OpenVPN под ОС Ubuntu. Сеть между клиентом и сервером OpenVPN 10.8.0.0/24. Серверу назначен статический адрес 10.8.0.1 в конфигурации OpenVPN. Клиентом является роутер, ему назначен статический адрес 10.8.0.2 в конфигурации OpenVPN. Для того чтобы видеть локальную сеть 192.168.0.0/24 за ним - нужно включить NAT на роутере:

sudo iptables -t nat -A POSTROUTING -o eth0 -s 10.8.0.0/24 -j MASQUERADE

eth0 - интерфейс с адресом 192.168.0.10, -o eth0 выходной интерфейс, -s 10.8.0.0/24 IP-сеть источника пакета (то есть подмена IP-адреса источника пакета на IP-адрес роутера будет только для пакетов из сети 10.8.0.0/24). Если смотреть через Wireshark на пакеты в интерфейсе eth0, то до включения NAT заходят пакеты с источником из сети 10.8.0.0 получателем из сети 192.168.0.0, но ответы не приходят, так как получатели ничего не знают о сети 10.8.0.0. При включении NAT источник заменяется на IP-адрес роутера. Просмотреть таблицу NAT можно командой:
sudo iptables -L -t nat

На сервере 10.8.0.1 должен быть прописан маршрут к этой сети через клиентский роутер 10.8.0.2:

route add 192.168.0.0 mask 255.255.255.0 10.8.0.2

Командой в ОС Windows pathping можно посмотреть через какие хопы проходит пинг.

среда, 2 апреля 2014 г.

Linux routing маршрутизация, PBR (policy based routing)

Выдержки для себя из статьи с Хабра, статьи.
Еще полезная ссылка на LARTC (Linux Advanced Routing and Traffic Control)

route

Добавление маршрута через шлюз:
route add -net 192.168.0.0/16 gw 10.0.0.1 

Добавление маршрута через интерфейс: 
route add -net 192.168.0.0/16 dev eth1 

Маршрут до отдельного хоста: 
route add -host 192.168.0.1 gw 172.16.0.1 

четверг, 27 марта 2014 г.

CentOS автозапуск

За настройку автозапуска сервисов при старте ОС отвечает утилита chkconfig
Просмотреть, что стартует:
# chkconfig --list

acpid  0:выкл 1:выкл 2:вкл 3:вкл    4:вкл 5:вкл 6:выкл
asterisk  0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
atd  0:выкл 1:выкл 2:выкл 3:вкл    4:вкл 5:вкл 6:выкл
auditd  0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
...
0-6 - это runlevel

Просмотреть конкретный сервис:
# chkconfig --list <service>

Включить выключить сервис:
# chkconfig <service> on / off

Если нужно включить / выключить на конкретном runlevel:
# chkconfig --level 345 <service> off

Для добавления удаления сервиса:
# chkconfig --add <service>
# chkconfig --del <service>

Скрипты запуска лежат в /etc/init.d. Внутри скриптов после #!/bin/sh и перед BEGIN INIT INFO прописуется строка
# chkconfig: 345 20 80
где 345 - runlevel, 20 - start priority, 80- stop priority rc.d
Возможна такая запись, для runlevel по-умолчанию:
# chkconfig: - 20 80

четверг, 13 марта 2014 г.

Подключение роутера в асимметричный VLAN с доступом только к серверу

По этой ссылке была схема подключения с симметричным VLAN. Какое отличие при подключении с асимметричным?

Основное различие между базовым стандартом 802.1q VLAN или симметричными VLAN и асимметричными VLAN заключается в том, как выполняется отображение адресов.

Симметричные VLAN используют отдельные адресные таблицы, и таким образом не существует пересечения адресов между VLAN-ами. Асимметричные VLAN могут использовать одну, общую таблицу адресов. Асимметричные VLAN по умолчанию отключены. На использование асимметричных VLAN существуют следующие ограничения:
- Каждый порт в схеме асимметричного VLAN должен быть немаркированным (untagged). 
- IGMP Snooping не поддерживаются.

При активизации асимметричных VLAN, уникальный PVID (Port VLAN Identifier) назначается всем портам схемы, определяющий принадлежность порта к конкретной виртуальной сети внутри коммутатора (по умолчанию все порты коммутатора имеют одинаковый идентификатор PVID=1). Кадр типа untagged преобразуется к типу tagged, для чего дополняется меткой PVID, таким образом уходящий в tagged - порт трафик будет маркироваться номером который мы задаем в PVID.  У каждого порта может быть только один PVID, но в то же время этот порт может принадлежать нескольким VLAN (таким образом расшаривается общий ресурс для разных VLAN).

Возвращаемся к нашей задаче.

вторник, 11 марта 2014 г.

Подключение роутера в симметричный 802.1q VLAN с доступом только к серверу

Дано: управляемый свич 2-го уровня HP Procurve 2530, роутер D-Link DSR-1000, сервер Ubuntu с одной сетевой картой.
Нужно: через удаленный доступ, организованный роутером D-Link, попадать только на сервер Ubuntu (остальная сеть не доступна), при этом из локальной сети сервер должен оставаться доступным.
Решение с симметричным VLAN 802.1q: На свиче создадим VLAN 10 для роутера и сервера. Роутер будет видеть только этот VLAN 10, сервер должен быть доступен для всей локальной сети VLAN 1 и виден в VLAN 10

Чтобы роутер видел только VLAN 10, порт куда он подключен должен принадлежать VLAN 10, режим untagged и не принадлежать VLAN 1.

Чтобы сервер видел и VLAN 1 и VLAN 10, порт куда он подключен должен принадлежать VLAN 1, режим untagged (таким образом все не маркированный пакеты с интерфейса eth0 будут попадать в VLAN 1) и в то же время принадлежать VLAN 10, режим tagged (таким образом все маркированный пакеты с интерфейса eth0.10 будут попадать в VLAN 10).
На сервере  надо включить и настроить VLAN.

Чтобы не заводить новый IP на сервере и не маркировать пакеты на сетевой карте, нужно использовать схему с асимметричным VLAN-ом.

Linux отключение в терминале F10 - вызов меню терминала

Когда пользуешься htop или mc в gnome-terminal раздражает, что по-умолчанию при нажатии F10 вместо выхода из программы открывается меню терминала. Отключается в "Правка" - "Комбинации клавиш" - "Включить клавишу для доступа в меню (F10 по-умолчанию)"

пятница, 7 марта 2014 г.

Linux подключение и настройка VLAN в Ubuntu

Устанавливаем пакет vlan
sudo apt-get install vlan
Добавляем модуль 8021q в /etc/modules

Редактируем /etc/network/interfaces и перезагружаемся
auto eth0.10
        iface eth0.10 inet static
        address 192.168.150.1
        netmask 255.255.255.0
        vlan-raw-device eth0   # это если несколько сетевых интерфейсов


вторник, 4 марта 2014 г.

Linux в Gnome 3 настройка Gnome-shell

Настройка Gnome-shell:

Переключение раскладки клавиатуры
Я для себя в настройке параметров клавиатуры выбрал индикацию через Scroll Lock (т.е. при выбранном русском горит лампочка Scroll Lock на клавиатуре, при английском не горит)

Отображение флагов вместо ru en.
В Gnome-shell мне не помогло, а в Unity работает. Запускаем dconf-editor, переходим: org > gnome > libgnomekbd > indicator
Cтавим галочку: show-flags
предварительно кладем в ~/.icons/flags


Linux смена дисплейного менеджера lightdm на gdm или наоборот

Для выбора дисплейного менеджера
sudo dpkg-reconfugure gdm
и там выбираем нужное

Для запуска из консоли:
sudo stop gdm
sudo start lightdm



среда, 26 февраля 2014 г.

Office 2010 по всему документу расположены красные овалы,в которых написано (отформатировано:......)

Office 2010 по всему документу расположены красные овалы,в которых написано (отформатировано:......)
Решение: Вкладка Рецензирование - Принять все изменения

вторник, 18 февраля 2014 г.

Настройка L2TP over IPSec на роутере D-Link DSR-1000

Для начала настроим L2TP. Этот протокол служит для транспортировки пакетов. Из википедии L2TP (англ. Layer 2 Tunneling Protocol — протокол туннелирования второго уровня) — в компьютерных сетях туннельный протокол, использующийся для поддержки виртуальных частных сетей. Несмотря на то, что L2TP действует наподобие протокола Канального уровня модели OSI, на самом деле он является протоколом Сеансового уровня и использует зарегистрированный UDP - порт 1701. Проверяем после установки соединения:
На роутере проводим настройку L2TP сервера:

четверг, 13 февраля 2014 г.

IPSec

IPSec это не протокол, а стандарт, который включает в себя протоколы. IPSec использует два основных протокола защиты AH, ESP и протокол обмена ключами IKE.

Протокол АН (Authentication Header - заголовок аутентификации) действует как цифровая подпись и гарантирует, что данные в пакете IP не будут несанкционированно изменены. AH можно назвать параноидальным, редко используется, несет дополнительную нагрузку на шифрование.

Протокол ESP (Encapsulating Security Payload – безопасная инкапсуляция полезной нагрузки) занимается шифрованием данных.

Протокол IKE (Internet Key Exchange protocol – протокол обмена ключами) используется для формирования IPSec SA (Security Association), проще говоря, согласования работы участников защищенного соединения. Используя этот протокол, участники договариваются, какой алгоритм шифрования будет использоваться, по какому алгоритму будет производиться (и будет ли вообще) проверка целостности, как аутентифицировать друг друга.

SA (Security Association - ассоциация защиты) в общем смысле представляет собой набор параметров защищенного соединения (например, алгоритм шифрования, ключ шифрования), который может использоваться обеими сторонами соединения. Каждой SA ассоциации защиты IPSec присваивается индекс SPI (Security Parameter Index - индекс параметров защиты) - число, используемое для идентификации ассоциации защиты IPSec.

Как создается защищенное соединение в IPSec.
Сначала на интерфейс приходит криптотрафик. Участникам надо договорится, какие алгоритмы/механизмы защиты они будут использовать для своего защищенного соединения, поэтому начинает работу протокол IKE.     Процесс состоит из двух фаз:

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

Linux grep с несколькими значениями

Иногда нужно выбрать grep-ом несколько значений
ls .. | grep 'folder1 \|folder2'
(без пробелов между знаком | и вторым условием, иначе  не выберется второе условие)

среда, 5 февраля 2014 г.

Linux установка настройка клиента L2TP over IPSec l2tp-ipsec-vpn для Ubuntu

Есть ПО доступное по WEB через VPN. Для подключения выданы внешний адрес VPN-сервера, логин, пароль и IPsec пароль. Хочу настроить клиентскую часть на Ubuntu 12.10. После гугленья остановился на l2tp-ipsec-vpn Установка описана здесь и тут.
sudo apt-add-repository ppa:werner-jaeger/ppa-werner-vpn
sudo apt-get update
sudo apt-get install l2tp-ipsec-vpn
для отображения апплета в Systray
gsettings set com.canonical.Unity.Panel systray-whitelist "['all']"

Для 14.04 без добавления репозитория. Ставим openswan, xl2tpd, l2tp-ipsec-vpn. Для отображения в Systray:
 sudo apt-get install dconf-editor
com > canonical > unity-gtk-module
whitelist добавляем 'all'

Перегружаемся. После загрузки появляется иконка в Systray. Заводим там соединение. В закладке IPsec заполнил Remote server, pre-shared key, в закладке PPP выбрал Allow these protocols и там ввел выданные логин и пароль. Disable IPSec Encription - отключение IPSec.


вторник, 4 февраля 2014 г.

Python вычисление расстояния Хемминга между двоичными числами

Расстоянием Хемминга d(a,b) между двумя двоичными словами a и b называют число не совпадающих позиций в них. Для строк, количество различающихся позиций для строк с одинаковой длинной. Расстояние Хэмминга уже довольно широко используется для различных задач, таких как поиск близких дубликатов, распознавание образов, классификация документов, исправление ошибок, обнаружения вирусов и т.д.
Рассчитывается расстояние для двоичных чисел как исключающее ИЛИ (XOR) между двумя этими числами сложенное поэлементно. Например:
117 = 0 1 1 1 0 1 0 1 
  17 = 0 0 0 1 0 0 0 1 
   H = 0+1+1+0+0+1+0+0 = 3 - расстояние Хемминга
код на Python
int(reduce(lambda x, y: int(x) + int(y), list(bin(a ^ b)[2:])))
или
str(bin(a^b)).count('1')

пятница, 31 января 2014 г.

Linux зависание при выключении или перезагрузке Ubuntu

При корректном выключении или перезагрузке появляется заставка Ubuntu и на этом происходит зависание. Лечится таким образом. Читаем Grub2, находим пункт
Fixing reboot/shutdown freezes и выполняем sudo gedit /etc/default/grub
В строку GRUB_CMDLINE_LINUX_DEFAULT добавляем reboot=bios т.е. будет такого вида
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash reboot=bios" 
далее
sudo update-grub
и перезагружаемся. В моем случае помогло.

четверг, 30 января 2014 г.

Linux устанавливаем нужное разрешение экрана

Если быстро погуглить, то стандартные команды для изменения разрешения монитора на то, которого нет в перечне, но точно поддерживается, это:
xrandr
смотрим что в перечне есть, если нужное есть, то
xrandr --output CRT2 --mode 1680x1050
где CRT2 меняете на своё устройство вывода
Но обычно нужного разрешения нет, а надо добавить.
Тогда запускаем для LCD с 2004 года выпуска:
cvt 1680 1050 60
где 1680x1050 нужное нам разрешение 60 частота, или для ЭЛТ:
gtf 1680 1050 60
Основное отличие между cvt и gtf в частоте (для ЭЛТ обычно rate больше 60, а остальное технические отличия которые гуглятся). Получаем Modeline, который можно добавить к перечню поддерживаемых разрешений:
xrandr --newmode "1680x1050_60.00"  146.25  1680 1784 1960 2240  1050 1053 1059 1089 -hsync +vsync
И заканчиваем установкой нужного разрешения и добавлением скрипта в автозапуск:
xrandr --output CRT2 --mode 1680x1050_60.00
Но не всегда так гладко, бывают и ошибки.

среда, 29 января 2014 г.

Linux установка ATI HD 4xxx на Ubuntu 12.04 LTS

    Необходимо установить Ubuntu на комп с такой видеокартой ATI HD 4670 PCI Express. На сайте AMD говорится, что на Linux драйвера не обновляют. Последние которые есть для нужной мне серии AMD Catalyst™ 13.1 Proprietary Linux x86 Display Driver для Xserver до версии включительно 1.12 и ядра до 3.4. Устанавливал по этой инструкции но не все было как в ней. Опишу установку здесь, чтобы не забыть.

вторник, 28 января 2014 г.

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

Linux Error - debclean: not found, dpkg-buildpackage: not found

При установке драйвера ATI выбираю создание deb файла и получаю в логе ошибку

Package build failed!Package build utility output:
./packages/Ubuntu/ati-packager.sh: 294: ./packages/Ubuntu/ati-packager.sh: debclean: not found
./packages/Ubuntu/ati-packager.sh: 295: ./packages/Ubuntu/ati-packager.sh: dpkg-buildpackage: not found
[Error] Generate Package - error generating package : Ubuntu/precise


Нужно доустановить пакеты:
sudo apt-get install build-essential cdbs dh-make dkms execstack dh-modaliases linux-headers-generic fakeroot


Linux установка менеджера пакетов Synaptic

После установки Ubuntu 12.04 по-умолчанию нет менеджера пакетов Synaptic. Я им привык пользоваться для того чтобы заморозить версию программы, или оттуда удобно чистить старые ядра и доустанавливать headers.
sudo apt-get install synaptic
После этого в установленных программах ищем "менеджера пакетов Synaptic"

Linux дисковод /tmp не готов или отсутствует

Установлена Ubuntu 12.04 LTS. Почищена от ненужных пакетов (LibreCalc и т.д., Games, Ubuntu One, Gwibber, Thunderbird). Произведено обновление пакетов. После перезагрузки при включении появилось сообщение "дисковод /tmp не готов или отсутствует". По совету с ЛОРа помогло:
sudo rm -rf /tmp
sudo mkdir -v /tmp
sudo chmod 1777 -v /tmp

воскресенье, 26 января 2014 г.

Linux просмотр открытых портов

Например:
sudo netstat -lantp | grep <IP>

Параметры:
l - LISTEN
a - все открытые порты
t or u - TCP or UDP
p - подробная инфа с PID и имя процесса
n - DNS-имена заменить на цифровой вид
s - просмотр статистики

или подобная утилита ss для просмотра информации по сокетам, ключи подобны netstat
Потом для настройки iptables смотрим откуда куда и по каким портам идут пакеты:
tcpdump host <IP>  -n

вторник, 21 января 2014 г.

Шифрование одноразовые блокноты OTP (One-time pad)

OTP считается теоретически не взламываемой системой шифрования. Одноразовый блокнот представляет собой список чисел в случайном порядке, используемый для кодирования сообщения. Как видно из названия системы, OTP может использоваться только один раз. Если числа в OTP являются действительно случайными, OTP имеет большую длину, чем сообщение, и используется только один раз, то шифрованный текст не предоставляет какого-либо механизма для восстановления исходного ключа (т. е. самого OTP) и, следовательно, сообщений. Одноразовые блокноты используются в информационных средах с очень высоким уровнем безопасности (но только для коротких сообщений). Например, в Советском Союзе OTP использовался для связи разведчиков с Москвой. Двумя основными недостатками OTP являются генерация действительно случайных блокнотов и проблема распространения блокнотов. Очевидно, что если блокнот выявляется, то раскрывается и та информация, которую он защищает. Если блокноты не являются действительно случайными, могут быть выявлены схемы, которые можно использовать для проведения анализа частоты встречаемых символов.
Сообщение
 S  E  N  D  H  E  L  P 
Соответствующие номера букв в алфавите
19 5 14 4  8  5 1216
Одноразовый блокнот
 7  9  5  2 12 1  0  6 
Сумма номеров букв сообщения + номера букв OPT
261419 6 20 6 1222
Зашифрованное сообщение
 Z  N  S  F  T  F  L  V 

Взято отсюда

среда, 15 января 2014 г.

Linux установка антивируса clamav с GUI (clamtk)

Для проверки виндовых флешек нужен антивирус. В Ubuntu буду использовать clamav c GUI надстройкой clamtk.
sudo apt-get install clamav
sudo freshclam                                  (обновляем антивирусные базы)
sudo apt-get install clamtk       (устанавливаем GUI)

вторник, 14 января 2014 г.

Python однострочник нахождения списка простых чисел от 2 до n (решето Эратосфена)

sorted(set(range(2,n+1)).difference(set((p * f) for p in range(2,int(n**0.5) + 2) for f in range(2,(n/p)+1))))
Взято отсюда

Python нахождение числового палиндрома

"А роза упала на лапу Азора" - палиндром, 131 - числовой палиндром.
Решение: число представляю в виде строки, прохожу по циклу от 0 до половины размера строки и сравниваю последовательно симметрично i и -(i +1). Все одинаковые значения добавляются в список и в конце сравниваю размер списка с половиной размера строки. Если равны - то палиндром.
Дебаг:
x = 1234321
for i in xrange(len(str(x)) // 2):    
    if str(x)[i] == str(x)[-(i + 1)]:
        print str(x)[i] 
Привожу в однострочник:
if len([i for i in xrange(len(str(x)) // 2) if str(x)[i] == str(x)[-(i + 1)]]) == len(xrange(len(str(x)) // 2)):
    print 'Палиндром'

Или красивое решение :)
def isPalindrom(n):
    """
    Check integer for palindrom
    >>> isPalindrom(131)
    True
    >>> isPalindrom(130)
    False
    """
    return str(n) == str(n)[::-1]

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

Windows 7 перевод из динамического с зеркалом в базовый без форматирования одного

Задача: есть комп, используемый как сервер, с такой конфигурацией дискового массива - 2 SATA диска по 500Гб, ОС Windows 7 SP1rus, софтовый рейд. Диски динамические, разбиение на тома C - система, D - базы 1С, E - бекап баз + образ делается стандартным архивированием семерки. Диски полностью в зеркале, т.е. на всех томах зеркало (в том числе и на скрытом томе с конфигурацией хранилища загрузки BCD). Нужно изъять один диск из массива и перевести динамический в базовый. Один диск с рабочей копией системы с базами и архивом будет хранится до востребования, а комп будет использоваться как пользовательский без функции сервера. Стандартное решение Windows - это один диск будет очищен,  а второй будет переведен в базовый. Хочется два базовых идентичных.

воскресенье, 12 января 2014 г.

Шифр Viginer (16 век, Рим)

Выбирается ключ, например слово CRYPTO . Записывается фраза, которую надо зашифровать WHAT A NICE DAY TODAY только без пробелов, и настолько же букв, сколько в фразе, записывается повторяясь ключ. Потом формируется зашифрованная фраза суммой по модулю 26. Сумма по модулю 26 это значит остаток от деления нацело на 26 суммы (a + b) % 26, где a, b - порядковые номера букв в алфавите. Например: (23(W) + 3(C)) % 26 = 26(Z), или (20(T) + 16(P) % 26 = 36 % 26 = 10(J).

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

W H A T A N IC E D A Y T O D A Y
C R Y P T O C R I P T O C R I P T
Z Z Z J U C L U D T U N W G C Q S