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

Перенос группы томов LVM с одного диска на другой

[root@w1 ~]# fdisk -l

Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        1044     8281507+  8e  Linux LVM

Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1          13      104391   83  Linux
/dev/sdb2              14        1044     8281507+  8e  Linux LVM

[root@w1 ~]# pvscan

  PV /dev/sda2   VG VolGroup00   lvm2 [14.97 GB / 7.09 GB free]
  Total: 1 [14.97 GB] / in use: 1 [14.97 GB] / in no VG: 0 [0   ]

[root@w1 ~]#

диск sda "кривой" видимо сначала я его создал размером 15GB, а затем уменьшил до 8 GB

С помощью fdisk на втором диске создал аналогичные разделы как на первом.
Затем создаем физический том (physical volume) на втором диске

[root@w1 ~]# pvcreate /dev/sdb2

Добавляем в группу томов наш новый физический том

[root@w1 ~]# vgextend VolGroup00 /dev/sdb2
  Volume group "VolGroup00" successfully extended

Перенесем данные с раздела /dev/sda2 на /dev/sdb2
[root@w1 ~]# pvmove /dev/sda2

И удалим его из группы томов
[root@w1 ~]# vgreduce VolGroup00 /dev/sda2

  Removed "/dev/sda2" from volume group "VolGroup00"

А затем добавим заново

[root@w1 ~]# vgextend VolGroup00 /dev/sda2
[root@w1 ~]# pvmove /dev/sdb2

Перенесем данные с раздела /dev/sdb2 на /dev/sda2 (вернем обратно)

[root@w1 ~]# vgreduce VolGroup00 /dev/sdb2

  Removed "/dev/sdb2" from volume group "VolGroup00"

Второй винт можно убрать

четверг, 8 декабря 2011 г.

Kyocera Default Password


The default password for the Kyocera FS-2020D to access the Command Center is admin00.
  1. To access the Kyocera Command Centre type in the IP Address of the print into a browser
  2. Click the logon button
  3. Enter the password admin00
  4. Click the Ok button
You should now have access to all features on the web interface.

четверг, 1 декабря 2011 г.

Cisco Catalyst C3560G <-> D-link DES-3326SR

Пробросить VLAN-ы с Cisco на D-Link, а также VLAN default (vlan1)

port 19  <-> port 25

-- Catalyst C3560G

config t
inter Gi0/19
switchport trunk encapsulation dot1q
switchport trunk native vlan 999
switchport trunk allowed vlan 1,49,50,51,52
switchport mode trunk
exit
exit



-- DES-3326SR

эти настройки позволяют не настраивать tagged порты между коммутаторами D-Link,
надо добавлять только порты untagged

enable gvrp
config gvrp all state enable

config vlan default delete 25
create vlan VLAN0049 tag 49 advertisement
create vlan VLAN0050 tag 50 advertisement
create vlan VLAN0051 tag 51 advertisement
create vlan VLAN0052 tag 52 advertisement
config vlan default add tagged 25
config vlan VLAN0049 add tagged 25
config vlan VLAN0050 add tagged 25
config vlan VLAN0051 add tagged 25
config vlan VLAN0052 add tagged 25


Дальше по необходимости


config vlan default delete 5
config vlan VLAN0049 add untagged 5
save

среда, 16 ноября 2011 г.

BAT & CMD

first part – %date:~0,2%
second part – %date:~3,2%
third part – %date:~6,4%
This is similar if you use substring function:
first part – substr(date, 0, 2)
second part – substr(date, 3, 2)
third part – substr(date, 6, 4)
The file (backup_stuff.bat) will look like this:

@set today_date=%date:~6,4%_%date:~3,2%_%date:~0,2%

ntbackup backup c:\Games /f "\\server\d$\bkp\backup_%today_date%.bkf"
ntbackup backup C:\music /f "\\server\d$\bkp\backup_%today_date%.bkf" /a


In order to backup more directories or to backup same directories every time the file is executed ‘/a‘ must be used. ‘/a‘ is used to append a directory to an existing backup.
For every directory in the backup process, the backup window will open.


источник

четверг, 3 ноября 2011 г.

Linux - напоминалка

Анализ сетевой активности:
iptraf
iftop
nload

Сканирование сети, пинг нескольких хостов
nmap -sP 192.168.1.2-5

nmap -sS -p- -PS80,22 -n -T4 -vvv --reason google.com

-sS — посылать только syn и считать порт открытым если получен syn_ack
-p- — сканировать все 65 тысяч портов, потому как по дефолту сканируются только популярные до 1024
-PS80,22 — принимать решение о том что хост онлайн не на основании icmp echo, а на основании доступности tcp-порта
-n — не делать DNS-резолв, типа выяснения PTR записей и прочего
-T4 — большая скорость, маленькие тайминги (если канал у цели и себя быстрый)
-vvv — максимум verbosity, так найденные порты будут показаны по ходу сканирования а не после завершения
--reason — показывать почему было принято решение о таком состоянии порта  

USB

lsusb
cat /proc/bus/usb/devices 


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

lsusb
cat /proc/bus/usb/devices
посмотреть в папке  /dev/disk/by-id соответсвие
ls -l
total 0
lrwxrwxrwx 1 root root  9 Nov  6 19:51 ata-ST360014A_3JV37K2N -> ../../hda
lrwxrwxrwx 1 root root 10 Nov  6 19:51 ata-ST360014A_3JV37K2N-part1 -> ../../hda1
lrwxrwxrwx 1 root root 10 Nov  6 19:51 ata-ST360014A_3JV37K2N-part2 -> ../../hda2
lrwxrwxrwx 1 root root  9 Nov  6 19:51 ata-ST380011A_5JVS1FJW -> ../../hdd
lrwxrwxrwx 1 root root  9 Jan 29 08:20 usb-TOSHIBA_MK3263GSXN_20A02FFFFFFF -> ../../sda

dd if=/dev/zero of=/dev/sda
hdparm /dev/sda
fdisk /dev/sda


mkfs.vfat -F 32 /dev/sda1 
 

пятница, 14 октября 2011 г.

Advantage Database Server (ADS)

При установке на Windows 2008 не забыть открыть порты
Входящие
 ADS TCP port 6262
 ADS UDP port 6262
Исходящие (надо уточнить, пока сделал так)
для программы: тип протокола любой
%ProgramFiles%\Advantage 10.10\Server\ads.exe

среда, 12 октября 2011 г.

MySQL. Параметры запуска InnoDB.

Взято с сайта с документацией

InnoDB is not aware of the file system maximum file size, so be cautious on file systems where the maximum file size is a small value such as 2GB. To specify a maximum size for an auto-extending data file, use the max attribute following the autoextend attribute. The following configuration permits ibdata1 to grow up to a limit of 500MB:
 
[mysqld]
innodb_data_file_path=ibdata1:10M:autoextend:max:500M
 
InnoDB creates tablespace files in the MySQL data directory by default. To specify a location explicitly, use the innodb_data_home_dir option. For example, to use two files named ibdata1 and ibdata2 but create them in the /ibdata directory, configure InnoDB like this:
 
[mysqld]
innodb_data_home_dir = /ibdata
innodb_data_file_path=ibdata1:50M;ibdata2:50M:autoextend
 
 
 

ibdata1

Этот файл используется движком InnoDB для хранения таблиц, при этом все таблицы хранятся 
в одном файле, что очень неудобно. Для активации разделения баз данных по разным файлам 
используется следующая опция в my.cnf 
(добавлять в блок [mysqld]):
innodb_file_per_table

После этого необходим рестарт СУБД:
/etc/init.d/mysqld restart

Все, теперь все вновь создаваемые InnoDB таблицы будут создаваться в отдельных файлах внутри папок с именами баз данных (с расширением .ibd, причем и индексы и данные лежат вместе).
 
Уменьшить ibdata1 
 
Сделать дамп базы, удалить _все_ файлы InnoDB, запустить сервер и восстановить базу
из дампа. Не забудьте перед запуском сервера поставить innodb_file_per_table - это сэкономит
время в будущем (если, конечно, у Вас нету нескольких тысяч таблиц - тогда может замедлить
сервер). 

пятница, 7 октября 2011 г.

Настройка time zone для netware в 2011 году

ML350:time
  Time zone string: "EBG-5EBGD"
  DST status:  ON
  DST start:   Sunday, 25 March 2012   2:00:00  EBG
  DST end:     Sunday, 30 October 2011   2:00:00  EBGD
  Time synchronization is active.
  Time is synchronized to the network.
Friday,  7 October 2011   7:49:58  UTC
Friday,  7 October 2011  13:49:58  EBGD
ML350:
ML350:SET END OF DAYLIGHT SAVINGS TIME = (SEPTEMBER SUNDAY LAST  2:00:00 AM)
End Of Daylight Savings Time is set to: (SEPTEMBER SUNDAY LAST  2:00:00 AM)
ML350:SET TIME ZONE = EBG-6
Time zone set to: EBG-6
ML350:SET DAYLIGHT SAVINGS TIME OFFSET = 0:00:00
Daylight Savings Time Offset is set to +0:00:00
ML350:time
  Time zone string: "EBG-6"
  DST status:  OFF
  DST start:   Sunday, 25 March 2012   2:00:00  EBG
  DST end:     Sunday, 30 September 2012   2:00:00  <?>
  Time synchronization is active.
  Time is NOT synchronized to the network.
Friday,  7 October 2011   7:50:57  UTC
Friday,  7 October 2011  13:50:57  EBG
ML350:time
  Time zone string: "EBG-6"
  DST status:  OFF
  DST start:   Sunday, 25 March 2012   2:00:00  EBG
  DST end:     Sunday, 30 September 2012   2:00:00  <?>
  Time synchronization is active.
  Time is synchronized to the network.
Friday,  7 October 2011   7:51:32  UTC
Friday,  7 October 2011  13:51:32  EBG
ML350:
Запускаем monitor, удаляем даты перехода на летнее и зимнее время, выходим из монитора
ML350:monitor
Loading Module MONITOR.NLM                                      [     OK     ]
Проверим
ML350:time
  Time zone string: "EBG-6"
  DST status:  OFF
  DST start:   not set
  DST end:     not set
  Time synchronization is active.
  Time is synchronized to the network.
Friday,  7 October 2011   7:54:06  UTC
Friday,  7 October 2011  13:54:06  EBG
ML350:
Редактируем autoexec.ncf
(закомментировать строки)
#SET TIME ZONE = EBG-5EBGD
#SET DAYLIGHT SAVINGS TIME OFFSET = 1:00:00
#SET START OF DAYLIGHT SAVINGS TIME = (MARCH SUNDAY LAST  2:00:00 AM)
#SET END OF DAYLIGHT SAVINGS TIME = (OCTOBER SUNDAY LAST  2:00:00 AM)
добавить
SET TIME ZONE = EBG-6

Готово

среда, 5 октября 2011 г.

Разрешить подключения к удаленному рабочему столу

Чтобы разрешить и запретить подключения к удаленному рабочему столу

Использование групповых политик (советы и рекомендации)

  1. Откройте групповую политику.
  2. В разделе Конфигурация компьютера, Административные шаблоны, Компоненты Windows, Службы терминалов дважды щелкните параметр Разрешать удаленное подключение с помощью служб терминалов.
  3. Выберите одну из следующих возможностей:
    • Чтобы включить дистанционное управление рабочим столом, установите переключатель в положение Включен.
    • Чтобы отключить дистанционное управление рабочим столом, установите переключатель в положение Отключен.
      Если в момент отключения дистанционного управления рабочим столом к данным компьютерам подключены пользователи, текущие соединения будут сохранены, но новые входящие соединения приниматься не будут.


    взято с сайта M$

вторник, 27 сентября 2011 г.

Удаление вируса блокирующего экран

Из Инета:
Комбинация Win+R – вызывает окно “выполнить”, отсюда можно запустить командную строку -команда cmd или диспетчер задач -команда taskmgr, еще пригодится tasklist. Последовательность – запускаем cmd затем tasklist, находим подозрительный процесс с названием что то типа 2clauncher и т.д. иногда это rundll32.exe. Запускаем taskkill /f /im rundll32.exe (либо ваше название.) После удаления запускаем explorer.exe. И не забываем прогнать компьютер утилитами от доктора веба или касперского (ссылки выше). В принципе, можно после Win+R вызвать taskmgr и удалять процесс из общего списка, но данные вирусы частенько отключают диспетчер задач.

Обобщим:
Если компьютер доступен по сети, консоль можно получить так:
psexec \\192.168.0.1 cmd
Посмотреть процессы: 
tasklist
Удалить процесс:
taskkill /f /pid xxx /t 
Запустить эксплорер
c:\windows\explorer.exe
Теперь имеем доступ к консоли ПК через экплорер и можем удалить тело вируса, запустить regedit для удаления ссылок на запуск вирусов, запустить антивирус на полную проверку.

Проверить наличие файлов
C:\WINDOWS\system32\userinit.exe
и др.

правильные ветки реестра

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"Userinit"="C:\WINDOWS\system32\userinit.exe,"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"PersistBrowsers"=dword:00000000
диспетчер задач отключен
Open Registry Editor [Regedit.exe] and go to:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
Set "DisableTaskMgr" data to 0
или
REG DELETE HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableTaskMgr /f
В этом случае запрос на удаление параметра появляться не будет, сразу появится сообщение Операция успешно завершена.

среда, 10 августа 2011 г.

KMS

nslookup -type=srv _vlmcs._tcp.winitpro.ru
Server:  dc1.winitpro.ru
Address:  192.168.1.55

_vlmcs._tcp.winitpro.ru      SRV service location:
priority       = 0
weight         = 0
port           = 1688
svr hostname   = kms-server.winitpro.ru
kms-server.winitpro.ru       internet address = 192.168.67.34

При помощи данного запроса мы нашли KMS сервер  домене (это сервер  kms-server.winitpro.ru )
В том случае, если такой SRV записи в домене нет, DNS сервер вернет ошибку.


net stop sppsvc
net start sppsvc




Проверка успешности активации сервера KMS Office

Чтобы проверить успешность установки и активации ключа KMS-сервера Office 2010, используйте скрипт slmgr.vbs. Откройте командную строку с повышенными полномочиями на KMS-сервере введите следующую команду и нажмите клавишу ВВОД:
cscript slmgr.vbs /dlv all
Для просмотра сведений только для Office 2010 укажите идентификатор активации после параметра /dlv:
cscript slmgr.vbs /dlv bfe7a195-4f8f-4f0b-a622-cf13c7d16864



Disable KMS server DNS record publishing

If you need to disable KMS servicing (i.e. a server that tries to publish _VLMCS._tcp.domain.com records for a domain then do the following:
  1. Start an administrative cmd-prompt
  2. slmgr.vbs –cdsn
  3. net stop slsvc && net start slsvc
To verify that the server isn’t trying to publish the DNS record for KMS server run the following command “slmgr.vbs -dlv”.
  • DNS publishing is enabled
    image
  • DNS publishing is disabled
    image

Сборка пакетов в CentOS

Для сборки Zabbix
yum install zlib-devel mysql-devel glibc-devel curl-devel gcc automake libidn-devel openssl-devel net-snmp-devel rpm-devel OpenIPMI-devel 
 
и т.п. 
 
yum -y install gcc make curl-devel iksemel-devel net-snmp-devel 
 
 
yum install make 
 
 
yum groupinstall "Development Tools"
or
yum install gcc gcc-c++ kernel-devel 

понедельник, 8 августа 2011 г.

mgetty

Hi,

I have it in /etc/init/ttyS0.conf:

stop on runlevel [016]

start on stopped rc RUNLEVEL=[2345]


respawn

instance ttyS0
exec /sbin/mgetty ttyS0

среда, 22 июня 2011 г.

MYSQL

Примеры использования CREATE DATABASE

Следущий пример создает базу данных "my_db":
CREATE DATABASE `my_db`
или

CREATE DATABASE `my_db` CHARACTER SET utf8 COLLATE utf8_general_ci;
Для того, чтобы посмотреть настройки уже существующей базы данных необходимо выполнить оператор SHOW CREATE DATABASE
mysql> SHOW CREATE DATABASE `test`;
 
Просмотр параметров базы 
mysql> use monpo
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> SHOW VARIABLES LIKE "coll%";
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | utf8_general_ci   |
| collation_database   | cp1251_general_ci |
| collation_server     | utf8_general_ci   |
+----------------------+-------------------+
3 rows in set (0.00 sec)

mysql> SHOW VARIABLES LIKE "character%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | cp1251                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec) 

PHP и Unicode

Соображения по программированию
Как уже упоминалось, PHP-работу с Unicode можно выполнить несколькими способами, включая расширения PHP, различные кодировки, и т.д. Но пока вы не стали экспертом в данной области, я не рекомендую пробовать принимать решение выбирать из этих многочисленных возможностей. Вы почти определенно достигнете наилучших результатов, если сконцентрируетесь на следующем:
  • Явно используйте кодировку UTF-8, маркированную:
    • "mb_language('uni'); mb_internal_encoding('UTF-8');" в верхней части ваших сценариев.
    • Content-type: text/html; charset=utf-8 в HTTP-заголовке для .htaccess, header() или конфигурации Web-сервера.
    • <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> и <orm accept-charset = "utf-8"> в HTML-коде.
    • CREATE DATABASE ... DEFAULT CHARACTER SET utf8 COLLATE utf8 ... ENGINE ... CHARSET=utf8 COLLATE=utf8_unicode_ci - обычная последовательность для экземпляра MySQL, а для других баз данных имеются похожие выражения.
    • SET NAMES 'utf8' COLLATE 'utf8_unicode_ci' - это полезная директива для PHP, которая передается в MySQL сразу после подключения.
    • В php.ini назначьте default_charset = UTF-8.
  • Заменяйте строковые функции, такие как strlen и strtlower, на mb_strlen и mb_convert_case.
  • Заменяйте mail и colleagues на mb_send_mail и др.; хотя понимающие Unicode сообщения электронной почты являются продвинутой темой, выходящей за рамки данной статьи, использование mb_send_mail является хорошей отправной точкой.
  • Используйте функции многобайтных регулярных выражений (multibyte regular expressions) (см. раздел "Ресурсы").

вторник, 21 июня 2011 г.

Конвертация файлов из одной кодировки в другую.

Перекодировать файл

iconv -t CP1251 -f UTF8 -o index.php.2 index.php

Перекодировать все файлы в текущем каталоге

find . -type f -exec recode CP1251..UTF8 {} \;

команда не только меняет кодировку, но и убирает <CR><NL> ('\r\n' заменяет на '\n')




пятница, 17 июня 2011 г.

Теневое копирование в Windows 2

Для целей резервного копирования гораздо интереснее утилиты командной строки, входящие в пакет Volume Shadow Copy Service SDK, который можно скачать здесь.
Из всего пакета нас в первую очередь интересует утилита vshadow.exe. Она позволяет
- создавать и удалять снимок тома
- просматривать списки созданных снимков
- монтировать снимок
- экспортировать, импортировать снимки и восстанавливать состояние тома
Существует две версии vshadow с различным функционалом.
Для Windows 2003, Windows 2008 и Vista необходимо использовать эту версию:
«C:\Program Files\Microsoft\VSSSDK72\TestApps\vshadow\bin\release-server\vshadow.exe»
Для XP используется
«C:\Program Files\Microsoft\VSSSDK72\TestApps\vshadow\bin\release-xp\vshadow.exe»
Версия для XP, в первую очередь, отличается от «серверной» тем, что не может создавать «хранимые» (persistent) snapshot’ы, то есть по окончанию процесса резервирования snapshot удаляется. Это ограничение накладывает реализация VSS в XP.
Утилиту можно копировать на серверы, не устанавливая SDK.
В комплект SDK входит целый набор скриптов, выполняющих различные действия. Но они достаточно сложны для понимания, поэтому предлагаю рассмотреть максимально простой скрипт, который сделает резервную копию открытых файлов через VSS.
vshadow.exe –p –script=vars.cmd d:
call vars.cmd
xcopy x:\some_locked_file.pst c:\backup\
vshadow –ds=%SHADOW_ID_1%
По шагам:
1. Создаем хранимый snapshot тома
vshadow.exe –p –script=vars.cmd d:
-p хранимый snapshot
-script=vars.cmd командный файл, в который vshadow сохранит название снапшота
vshadow записывает в файл, указанный в параметре -script следующее:
@echo.
@echo [This script is generated by VSHADOW.EXE for the shadow set
@echo {6b228a73-f8bf-4254-90e7-0d58219bc554}]
@echo.
SET SHADOW_SET_ID={6b228a73-f8bf-4254-90e7-0d58219bc554}
SET SHADOW_ID_1={8d14c5fe-87c1-4dac-8459-9a46b2874ef1}
SET SHADOW_DEVICE_1=\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy16
D: том, для которого создается snapshot
2. Подключаем snapshot как диск
call vars.cmd
vshadow.exe -el=%SHADOW_ID_1%,X:
call vars.cmd – загружаем переменные окружения с именем снапшота
vshadow.exe -el=%SHADOW_ID_1%, X: – подключаем созданный snapshot как логический диск X:
3. Копируем файлы
xcopy x:\some_locked_file.pst c:\backup\
4. Удаляем snapshot
vshadow –ds=%SHADOW_ID_1%
Это все, господа. :-) Ранее блокированый файл успешно скопировался.
Что почитать:
1) Volume Shadow Copy Service SDK. 7.2 Download http://www.microsoft.com/downloads/details.aspx?familyid=0b4f56e4-0ccc-4626-826a-ed2c4c95c871
2) http://blogs.msdn.com/adioltean/archive/2004/12/30/344476.aspx
http://blogs.msdn.com/adioltean/archive/2005/01/05/346793.aspx
http://blogs.msdn.com/adioltean/archive/2005/01/20/357836.aspx
http://blogs.msdn.com/adioltean/archive/2006/09/18/761515.aspx

Теневое копирование в Windows

Теневое копирование в Windows,  (Volume Shadow Copy Service, VSS)
команды

vssadmin /?
vssadmin list shadowstorage
vssadmin resize shadowstorage /For=C: /On=C: /Maxsize=90GB  

Volume Shadow Copy Service SDK 7.2Volume Shadow Copy Service SDK 7.2 )
vshadow.exe (documentation) 

Basically, it is a neat little wrapper around these four vshadow commands:
vshadow.exe -q                - List all shadow copies in the system
vshadow.exe -p {volume list}  - Manages persistent shadow copies
vshadow.exe -el={SnapID},dir  - Expose the shadow copy as a mount point
vshadow.exe -ds={SnapID}      - Deletes this shadow copy
Here is its help screen:
VSS Snapshot Create/Mount Tool

Usage:
cscript /nologo VssSnapshot.vbs /target:path { /volume:X | /unmount } [/debug]

/volume  - drive letter of the volume to snapshot
/target  - the path (absolute or relative) to mount the snapshot to
/debug   - swich on debug output

Examples:
cscript /nologo VssSnapshot.vbs /target:C:\Backup\DriveD /volume:D
cscript /nologo VssSnapshot.vbs /target:C:\Backup\DriveD /unmount

Hint: No need to unmount before taking a new snapshot.
 
Here some sample output:
C:\VssSnapshot>cscript /nologo VssSnapshot.vbs /target:MountPoints\E /volume:E 
05/03/2010 17:13:04 preparing VSS mount point... 
05/03/2010 17:13:04 mount point prepared at: C:\VssSnapshot\MountPoints\E 
05/03/2010 17:13:04 creating VSS snapshot for volume: E 
05/03/2010 17:13:08 snapshot created with ID: {4ed3a907-c66f-4b20-bda0-9dcda3b667ec} 
05/03/2010 17:13:08 VSS snapshot mounted sucessfully 
05/03/2010 17:13:08 finished 
C:\VssSnapshot>cscript /nologo VssSnapshot.vbs /target:MountPoints\E /unmount 
05/03/2010 17:13:35 preparing VSS mount point... 
05/03/2010 17:13:36 nothing else to do 
05/03/2010 17:13:36 finished
 
 
 
''# VssSnapshot.vbs
''# http://serverfault.com/questions/119120/how-to-use-a-volume-shadow-copy-to-make-backups/119592#119592
Option Explicit

Dim fso: Set fso = CreateObject("Scripting.FileSystemObject")

''# -- MAIN SCRIPT -------------------------------------------
Dim args, snapshotId, targetPath, success
Set args = WScript.Arguments.Named
CheckEnvironment

Log "preparing VSS mount point..."
targetPath = PrepareVssMountPoint(args("target"))

If args.Exists("unmount") Then
  Log "nothing else to do"
ElseIf targetPath <> vbEmpty Then
  Log "mount point prepared at: " & targetPath
  Log "creating VSS snapshot for volume: " & args("volume")
  snapshotId = CreateVssSnapshot(args("volume"))

  If snapshotId <> vbEmpty Then
    Log "snapshot created with ID: " & snapshotId
    success = MountVssSnapshot(snapshotId, targetPath)
    If success Then
      Log "VSS snapshot mounted sucessfully"
    Else
      Die "failed to mount snapshot"
    End If
  Else
    Die "failed to create snapshot"
  End If
Else
  Die "failed to prepare mount point"
End If

Log "finished"

''# -- FUNCTIONS ---------------------------------------------
Function PrepareVssMountPoint(target) ''# As String
  Dim cmd, result, outArray
  Dim path, snapshot, snapshotId
  Dim re, matches, match

  PrepareVssMountPoint = VbEmpty
  target = fso.GetAbsolutePathName(target)

  If Not fso.FolderExists(fso.GetParentFolderName(target)) Then 
    Die "Invalid mount point: " & target
  End If

  ''# create or unmount (=delete existing snapshot) mountpoint
  If Not fso.FolderExists(target) Then
    If Not args.Exists("unmount") Then fso.CreateFolder target
  Else
    Set re = New RegExp
    re.MultiLine = False
    re.Pattern = "- Exposed locally as: ([^\r\n]*)"

    cmd = "vshadow -q"
    result = RunCommand(cmd, false)
    outarray = Split(result, "*")

    For Each snapshot In outArray
      snapshotId = ParseSnapshotId(snapshot)
      If snapshotId <> vbEmpty Then
        Set matches = re.Execute(snapshot)
        If matches.Count = 1 Then
          path = Trim(matches(0).SubMatches(0))
          If fso.GetAbsolutePathName(path) = target Then
            cmd = "vshadow -ds=" & snapshotId
            RunCommand cmd, true
            Exit For
          End If
        End If
      End If
    Next

    If args.Exists("unmount") Then fso.DeleteFolder target
  End If

  PrepareVssMountPoint = target
End Function

Function CreateVssSnapshot(volume) ''# As String
  Dim cmd, result

  If Not fso.DriveExists(volume) Then
    Die "Drive " & volume & " does not exist."
  End If

  cmd = "vshadow -p " & Replace(UCase(volume), ":", "") & ":"
  result = RunCommand(cmd, false)
  CreateVssSnapshot = ParseSnapshotId(result)
End Function

Function MountVssSnapshot(snapshotId, target) ''# As Boolean
  Dim cmd, result

  If fso.FolderExists(targetPath) Then
    cmd = "vshadow -el=" & snapshotId & "," & targetPath
    result = RunCommand(cmd, true)
  Else
    Die "Mountpoint does not exist: " & target
  End If

  MountVssSnapshot = (result = "0")
End Function

Function ParseSnapshotId(output) ''# As String
  Dim re, matches, match

  Set re = New RegExp
  re.Pattern = "SNAPSHOT ID = (\{[^}]{36}\})"
  Set matches = re.Execute(output)

  If matches.Count = 1 Then
    ParseSnapshotId = matches(0).SubMatches(0)
  Else
    ParseSnapshotId = vbEmpty
  End If
End Function

Function RunCommand(cmd, exitCodeOnly) ''# As String
  Dim shell, process, output

  Dbg "Running: " & cmd

  Set shell = CreateObject("WScript.Shell")

  On Error Resume Next
  Set process = Shell.Exec(cmd)
  If Err.Number <> 0 Then
    Die Hex(Err.Number) & " - " & Err.Description
  End If
  On Error GoTo 0

  Do While process.Status = 0
    WScript.Sleep 100
  Loop
  output = Process.StdOut.ReadAll

  If process.ExitCode = 0 Then 
    Dbg "OK"
    Dbg output
  Else
    Dbg "Failed with ERRORLEVEL " & process.ExitCode
    Dbg output
    If Not process.StdErr.AtEndOfStream Then 
      Dbg process.StdErr.ReadAll
    End If
  End If  

  If exitCodeOnly Then
    Runcommand = process.ExitCode
  Else
    RunCommand = output
  End If
End Function

Sub CheckEnvironment
  Dim argsOk

  If LCase(fso.GetFileName(WScript.FullName)) <> "cscript.exe" Then
    Say "Please execute me on the command line via cscript.exe!"
    Die ""
  End If

  argsOk = args.Exists("target")
  argsOk = argsOk And (args.Exists("volume") Or args.Exists("unmount"))

  If Not argsOk Then
    Say "VSS Snapshot Create/Mount Tool" & vbNewLine & _
        vbNewLine & _
        "Usage: " & vbNewLine & _
        "cscript /nologo " & fso.GetFileName(WScript.ScriptFullName) & _
          " /target:path { /volume:X | /unmount } [/debug]" & _
        vbNewLine & vbNewLine & _
        "/volume  - drive letter of the volume to snapshot" & _
        vbNewLine & _
        "/target  - the path (absolute or relative) to mount the snapshot to" & _
        vbNewLine & _
        "/debug   - swich on debug output" & _
        vbNewLine & vbNewLine & _
        "Examples: " & vbNewLine & _
        "cscript /nologo " & fso.GetFileName(WScript.ScriptFullName) & _
          " /target:C:\Backup\DriveD /volume:D" &  vbNewLine & _
        "cscript /nologo " & fso.GetFileName(WScript.ScriptFullName) & _
          " /target:C:\Backup\DriveD /unmount" & _
        vbNewLine & vbNewLine & _
        "Hint: No need to unmount before taking a new snapshot." & vbNewLine

    Die ""
  End If
End Sub

Sub Say(message)
  If message <> "" Then WScript.Echo message
End Sub

Sub Log(message)
  Say FormatDateTime(Now()) & " " & message
End Sub

Sub Dbg(message)
  If args.Exists("debug") Then 
    Say String(75, "-")
    Say "DEBUG: " & message
  End If
End Sub

Sub Die(message)
  If message <> "" Then Say "FATAL ERROR: " & message
  WScript.Quit 1
End Sub 
 
----------------------------------------------------------------------------------------
you can mount a shadowcopy fairly easily from the command shell using linkd from the resource kit tools for 2003, or using the built in mklink in Vista/2008/7
vssadmin list shadows to list the shadow copies
and then
linkd c:\backupimage \?\GLOBALROOT\Device\HarddiskVolumeShadowCopyn
or
mklink /D c:\backupimage \?\GLOBALROOT\Device\HarddiskVolumeShadowCopyn
where n is the shadow copy number.
This will mount the whole shadowcopy under the folder c:\backupimages which you can then backup
 
I like this answer but it didn't quite work for me when mounting the 
\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy_n_
Instead I used the referenced file and snapshot time from the root share (C$ for instance)  
mklink /D D:\TempMount \\localhost\C$\@GMT-2011.01.01-06.00.08 
- unfortunately this is likely to be a manual process but for emergencies, it works.
----------------------------------------------------------------------------------------
Hope this is what you want:
diskshadow -s vssbackup.cfg
vssbackup.cfg:
set context persistent
set metadata E:\backup\result.cab
set verbose on
begin backup
     add volume C: alias ConfigVolume
     create
     EXPOSE %ConfigVolume% Y:
     # Y is your VSS drive
     # run your backup script here
     delete shadows exposed Y:
end backup

пятница, 10 июня 2011 г.

Инвентаризация ПО предприятия с помощью антивируса Касперского

Инвентаризация ПО предприятия с помощью антивируса Касперского

 

Смотри здесь.

Запросы к базе сервера администрирования касперского. (В моем случае mySQL, в качестве оболочки удобно использовать heidisql.exe)
"Имя программы, число установок"

select b.wstrdisplayname as name, count(*) as num
from hst_inventory_hstprds a, hst_inventory_products b
where a.nproduct=b.nid
group by wstrdisplayname
order by num desc;
---------------------------------------------------------------------------------

"Имя ПК с программой"

select c.strwinhostname as host, b.wstrdisplayname as name
from hst_inventory_hstprds a, hst_inventory_products b, Hosts c
where a.nproduct=b.nid
and b.wstrdisplayname like '%Windows XP Service Pack 3%'
and c.nid=a.nhostid;


select c.strwinhostname as host, b.wstrdisplayname as name, a.tmInstallDate as idate
from hst_inventory_hstprds a, hst_inventory_products b, Hosts c
where a.nproduct=b.nid
and b.wstrdisplayname like '%Microsoft Office%'
and b.wstrdisplayname not like '%iewer%'
and c.nid=a.nhostid;

---------------------------------------------------------------------------------

"Имя ПК с программой с датой установки"

select c.strwinhostname as host, b.wstrdisplayname as name, a.tmInstallDate as idate
from hst_inventory_hstprds a, hst_inventory_products b, Hosts c
where a.nproduct=b.nid
and b.wstrdisplayname like '%Windows XP Service Pack 3%'
and c.nid=a.nhostid;
---------------------------------------------------------------------------------

"Имя ПК с программой с датой установки"  поиск по имени ПК

select c.strwinhostname as host, b.wstrdisplayname as name, a.tmInstallDate as idate
from hst_inventory_hstprds a, hst_inventory_products b, Hosts c
where a.nproduct=b.nid
and c.strwinhostname like '%n3088%'
and c.nid=a.nhostid;

"обновления"
select c.strwinhostname as host, b.wstrdisplayname as name, a.tmInstallDate as idate
from hst_inventory_hstprds a, hst_inventory_patches b, Hosts c
where a.nproduct=b.nid
and c.strwinhostname like '%n3088%'
and c.nid=a.nhostid;

---------------------------------------------------------------------------------

"Имя патча, число установок"

select b.wstrdisplayname as name, count(*) as num
from hst_inventory_hstprds a, hst_inventory_patches b
where a.nproduct=b.nid
group by wstrdisplayname
order by num desc;
---------------------------------------------------------------------------------

"Имя ПК имя патча"

select c.strwinhostname as host, b.wstrdisplayname as name
from hst_inventory_hstprds a, hst_inventory_patches b, Hosts c
where a.nproduct=b.nid
and b.wstrdisplayname like '%KB2570791%'
and c.nid=a.nhostid;

KB2570791
Обновление безопасности для Windows XP (KB2124261)
---------------------------------------------------------------------------------

"Имя ПК имя патча и дата"  - дата установки патча не хранится

select c.strwinhostname as host, b.wstrdisplayname as name, a.tmInstallDate as date
from hst_inventory_hstprds a, hst_inventory_patches b, Hosts c
where a.nproduct=b.nid
and b.wstrdisplayname like '%KB963707%'
and c.nid=a.nhostid;

KB2570791
Обновление безопасности для Windows XP (KB2124261)
---------------------------------------------------------------------------------
найти nProduct
select * from hst_inventory_patches a where a.wstrDisplayName like '%2570791%';


-------------------------

select c.strwinhostname as host
from Hosts c
where c.strwinhostname like 'N3088'
and c.nid=a.nhostid;





-------------------------

Microsoft Office Visio 


Microsoft Office



---------------------------------
Hosts
 nId
 strWinHostName
 strDisplayName
 strDnsName
 nIpAddress


host_ext_attr
 nId
 wstrComment

----------------------------------
Запрос компьютер имя коммент адрес-агента

select a.strDisplayName as DisplayName, a.strWinHostName as WinHostName, b.wstrComment as Comment, 
a.strDnsName as DnsName, a.strAddress as AgentIP
from Hosts a, host_ext_attr b
where a.nId=b.nId;

Смотрим где стоит MSO

select c.strwinhostname as host, b.wstrdisplayname as name, a.tmInstallDate as idate
from hst_inventory_hstprds a, hst_inventory_products b, Hosts c
where a.nproduct=b.nid
and b.wstrdisplayname like '%Microsoft Office%'
and b.wstrdisplayname not like '%iewer%'
and c.nid=a.nhostid;
----------------------------------------------------------------------------------------------------
select c.strwinhostname as host, b.wstrdisplayname as name
from hst_inventory_hstprds a, hst_inventory_products b, Hosts c
where a.nproduct=b.nid
and b.wstrdisplayname like '%${n}%'
and c.nid=a.nhostid;

select c.strwinhostname as host, b.wstrdisplayname as name
from hst_inventory_hstprds a, hst_inventory_products b, Hosts c
where a.nproduct=b.nid
and b.wstrdisplayname like '%Adobe Photoshop%'
and c.nid=a.nhostid;


Kaspersky Administration Kit 8.0 & mySQL


Посмотреть параметры mysqld
 net use mysql;
 show variables like '%size%';
mysql> show variables like '%size%';
+---------------------------------+------------+
| Variable_name                   | Value      |
+---------------------------------+------------+
| bdb_cache_size                  | 8384512    |
| bdb_log_buffer_size             | 262144     |
| binlog_cache_size               | 32768      |
 .  .  .
| transaction_alloc_block_size    | 8192       |
| transaction_prealloc_size       | 4096       |
+---------------------------------+------------+
34 rows in set (0.00 sec)


Информация из статьи применима к программе Kaspersky Administration Kit 8.0 

Если в качестве сервера базы данных для Kaspersky Administration Kit используется MySQL-сервер, то необходимо включить поддержку хранилищ InnoDB и MEMORY.
Настройки запуска MySQL храняться в конфигурационном файле my.ini (путь по умолчанию %Program Files%\MySQL\MySQL Server 5.0\my.ini). Данный файл следует создать на основе шаблона из файла: %Program Files%\MySQL\MySQL Server 5.0\my-innodb-heavy-4G.ini, а затем внести изменения описанные ниже.
Пути для Linux-систем:
    • /usr/share/mysql/my-innodb-heavy-4G.cnf
    • /etc/my.cnf
ВниманиеСоздавать файл my.ini необходимо перед установкой Kaspersky Administration Kit.  После создания файла необходимо перезапустить службу MySQL.
Рекомендуемые настройки параметров файла my.ini:
    • binlog_cache_size = 10M
    • sort_buffer_size = 10M
    • join_buffer_size = 20M
    • thread_concurrency = 20
    • tmp_table_size = 100M
    • max_heap_table_size = 100M
    • key_buffer_size = 200M
    • innodb_buffer_pool_size - Фактическое значение параметра должно быть не менее 80% от ожидаемого размера базы данных KAV
    • innodb_thread_concurrency = 0
    • innodb_flush_log_at_trx_commit = 0 (В большинстве случаев сервер использует мелкие транзакции)
    • innodb_log_buffer_size = 50M (Этот параметр должен быть указан до того, как создастся база данных KAV)
    • innodb_log_file_size = 500M (Этот параметр должен быть указан до того, как создастся база данных KAV)
    • innodb_lock_wait_timeout = 300
Общий объем оперативной памяти, используемый MySQL-сервером, может быть рассчитан по формуле:
innodb_buffer_pool_size + key_buffer_size + max_connections*(sort_buffer_size+read_buffer_size+binlog_cache_size) + max_connections*2MB
Одновременно Kaspersky Administration Kit может устанавливать до 22-х соединений с MySQL-сервером, то есть значение параметра max_connections может достигать 22, но, обычно, одновременно создаётся не более 13-ти соединений.