какой демон на каком порту

Запись создана 12 марта, 2008

Как определить какой демон на каком порту слушает?

В Linux так:

[cc lang=»bash»]# netstat -tnlp[/cc]

Во FreeBSD так:

[cc lang=»bash»]% sockstat [/cc]

» Запись из раздела networking, Unix | 1 комметарий

установка VerliHub (Linux)

Запись создана 12 марта, 2008

Нам понадобится:
1. Сам Verlihub, взять его можно здесь
2. GeoIP, взять можно здесь
3. MySQL server (в том числе и devel) и удобства ради phpMyAdmin

Ставим GeoIP:
[cc lang=»bash»]
# cd /usr/local/src/
# wget http://www.maxmind.com/download/geoip/api/c/GeoIP-1.4.0.tar.gz
# tar zxf GeoIP-1.4.0.tar.gz && cd Geo*
# ./configure
# make && make install
[/cc]

Ставим Verlihub:
[cc lang=»bash»]
# cd /usr/local/src/
# wget http://kent.dl.sourceforge.net/sourceforge/verlihub/verlihub-0.9.8c-RC2.tar.gz
# tar zxf verlihub-0.9.8c-RC2.tar.gz && cd verl*
# ./configure
# make && make install
[/cc]

Заходим в phpMyAdmin и создаём базу данных verlihub, пользователя verlihub и даём ему все права на базу verlihub. теперь запускаем скрипт инсталляционный:
[cc lang=»bash»]# /usr/local/bin/vh_install[/cc]
и отвечаем на все вопросы.

Готово! verlihub установлен, теперь создадим скрипт для запуска демона. Для этого создадим файл /etc/rc.d/init.d/rc.verlihub с содержимым:
[cc lang=»bash»]
#!/bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

# program name
PROG=verlihub

#program path
#DAEMON=/usr/local/bin/verlihub
DAEMON=/usr/local/bin/vh_runhub

# Do we pass options on the command line if yes put them here
DOPTION=»»

#Test if it is there if not lets bail
test -f $DAEMON || exit 0

case «$1» in
start) echo -n «Starting $PROG »
$DAEMON $DOPTION &
echo «Done.»
;;
stop) echo -n «Stopping $PROG »
killall $PROG
echo «Done.»
;;
restart) echo -n «Restarting $PROG »
killall $PROG
sleep 2
$DAEMON $DOPTION &
echo «Done.»
;;
*) echo «Usage: /etc/rc.d/rc.$PROG start|stop|restart»
exit 1
;;
esac
[/cc]

делаем его исполняемым и кладём в автозагрузку:
[cc lang=»bash»]
chmod +x rc.verlihub
ln -s /etc/rc.d/init.d/rc.verlihub /etc/rc.d/rc3.d/S90rc.verlihub
[/cc]
рекомендую к прочтению

» Запись из раздела Unix | 1 комметарий

скрипт показывающий имена пользоватлей не логинившихся в AD N-ное количество дней.

Запись создана 12 марта, 2008

[cc lang=»javascript»]
//~~Author~~. Paul stuart
//~~Email_Address~~. Paul.Stuart@schroders.com
//~~Script_Type~~. Jscript
//~~Sub_Type~~. DomainAdministration
//~~Keywords~~. ADSI, last login date, domain, login

//~~Comment~~.
//Create a report showing users who haven’t logged in to the Domain for X days or more.
//Requires ADSI 2.5 and Jscript version 5. The results are sent to LOGFILE.TXT

//~~Script~~.

var sDomain = «»; // enter your domain here.
var iCutOffDays = 0; // last login cut-off in days.

var TRUE = 1;
var ForReading = 1;
var ForWriting = 2;
var DAYMSECS = 86400000; // number of milliseconds in a day
var DomObj, CollObj, sSubDir;
var iNumUsers = 0;
var CutOff;

var WSHShell = new ActiveXObject(«WScript.Shell»);
var fs = new ActiveXObject(«Scripting.FileSystemObject»);

WSHShell.Popup(«Starting Last Log Report » );

CutOff = new Date();
CutOff.setTime( CutOff.valueOf() — iCutOffDays*DAYMSECS );

DomObj = GetObject(«WinNT://» + sDomain );
CollObj = new Enumerator(DomObj);

for ( ; !CollObj.atEnd(); CollObj.moveNext())
{
var Obj = CollObj.item();
if ( Obj.Class == «User» )
{
iNumUsers++;
try
{
if ( Obj.LastLogin < CutOff.valueOf() ) WriteLOG( Obj.name + " " + Obj.LastLogin ); } catch( ErrorObj ) { WriteLOG( Obj.name + " has never logged in" ); } } } WriteLOG("Total number of users is " + iNumUsers ); WSHShell.Popup("Finished"); WScript.Quit(); ////////////////////////////////////////////////////////////////////////////////// // WriteLOG // var LogFile = new Object(); function WriteLOG( sLogLine ) { var d = new Date(); if ( LogFile == null ) { LogFile = fs.OpenTextFile( ".\\Logfile.txt" , ForWriting, TRUE ); LogFile.WriteLine( sLogLine ); } else { LogFile.WriteLine( sLogLine ); } } [/cc]

» Запись из раздела windows | Комментировать

скрипты для AD

Запись создана 12 марта, 2008

примеры скриптов из книги Inside Active Directory (авт. Sakari Kouti and Mika Seitsonen)

insideadsamples.zip

» Запись из раздела windows | Комментировать

VB скрипт который проводит сбор информации о доменных компьютерах.

Запись создана 12 марта, 2008

Весьма занятный скриптик, может пригодиться для инвентаризации.
[cc lang=»vb»]
dim strclass, objAD, obj
dim invdate
dim constmb, constgb, sizegb
dim compname, temp, compad
constmb=1048576
constgb=1073741824
strclass = array( «win32_ComputerSystem», «win32_bios», «win32_processor»,_
«win32_diskdrive», «win32_videocontroller», «win32_NetworkAdapter»,_
«win32_sounddevice», «win32_SCSIController», «win32_printer»)

set objAD=getobject(«LDAP://CN=Computers,DC=akos-nissan,DC=local»)
objAD.filter=array(«computer»)
on error resume next
for each obj in objAD
CompAD=right(obj.name, len(obj.name)-3)
invdate = date
temp=»«+chr(10)+»Дата сбора: » & invdate & «

«+chr(10)
compname=»»
‘ on error resume next
set objWMIService = GetObject(«winmgmts://»&CompAD&»/root\cimv2″)
i=0
s=0
d=0
q=0
‘ sizegb=»»
for a=0 to 8
Set colitems = objwmiservice.instancesof(strclass(a))
for each objitem in colitems
select case a
case 0
temp=temp+»

» + chr(10)
temp=temp+»

«+chr(10)
temp=temp+»

» + chr(10)
temp=temp+»

«+chr(10)
temp=temp+»

» + chr(10)
temp=temp+»

«+chr(10)
compname=objitem.name
case 1
temp=temp+»

«+chr(10)
temp=temp+»

«+chr(10)
temp=temp+»

«+chr(10)+»

»
temp=temp+»

«+chr(10)
case 2
s=s+1
temp=temp+»

«+chr(10)+»

«+chr(10)+»

»
temp=temp+»

«+chr(10)
case 3
i=i+1
temp=temp+»

«+chr(10)+»

«+chr(10)+»

» + chr(10)
temp=temp+»

«+chr(10)
case 4
temp=temp+»

«+chr(10)+»

«+chr(10)+»

»
temp=temp+»

«+chr(10)
case 5
if objitem.adaptertypeid=0 and objitem.netconnectionstatus=2 then
temp=temp+»

«+chr(10)+»

«+chr(10)
temp=temp+»

»
temp=temp+»

«+chr(10)
end if
case 6
temp=temp+»

«+chr(10)+»

«+chr(10)
temp=temp+»

«+chr(10)
case 7
temp=temp+»

«+chr(10)+»

«+chr(10)
temp=temp+»

«+chr(10)
case 8
d=d+1
temp=temp+»

«+chr(10)+»

«+chr(10)+»

»
temp=temp+»

«+chr(10)
end select
next
next
‘Заключительная часть
temp=temp+»

»
temp=temp+»Имя компьютера»+»
«+objitem.name+ «
»
temp=temp+»Оперативная память»+»
«+cstr(round(objitem.totalphysicalmemory/constmb))+ » MB
»
temp=temp+»Модель компьютера»+»
«+objitem.model+ «
»
temp=temp+»Материнская плата»+»
«+objitem.SMBIOSBIOSVersion+»
»
temp=temp+»BIOS»+»
» + objitem.caption+» «+chr(10)+»
»
temp=temp+»Процессор»+cstr(s)+»
«+objitem.name+» Частота «+cstr(objitem.CurrentClockSpeed)+chr(10)+»
»
if objitem.size > 0 then ‘ = nill then
sizegb=cstr(round(objitem.size/constgb,2))
else
sizegb=cstr(0)
end if
temp=temp+»Жесткий диск «+cstr(i)+»
«+objitem.model + » » + sizegb + » GB
»
temp=temp+»Видеоконтролер»+»
«+objitem.caption+chr(10)+»
»
temp=temp+»Сетевой адаптер»+»
«+objitem.name+chr(10)+»
»
temp=temp+»Звуковая карта»+»
«+objitem.caption+chr(10)+»
»
temp=temp+»SCSI Адаптер»+»
«+objitem.manufacturer+» «+objitem.caption+chr(10)+»
»
temp=temp+»Принтер «+cstr(d)+»
«+objitem.name+chr(10)+»

»
‘Запись файла
Dim fso, tf
Set fso = CreateObject(«Scripting.FileSystemObject»)
Set tf = fso.CreateTextFile(«»&compname&».htm», True)
tf.Write (temp)
tf.Close
next
[/cc]

» Запись из раздела windows | Комментировать

скрипт ротации log-ов и backup-ов для windows

Запись создана 12 марта, 2008

[cc lang=»vb»]
‘==========================================================================

‘ VBScript Source File — Created with SAPIEN Technologies PrimalScript 3.1

‘ NAME: remlogs.vbs

‘ AUTHOR: Подлячок
‘ DATE : 19.06.2005

‘ COMMENT: Скриптик для автоматического удаления log-ов и backup-ов, срок актуальности которых истек.
‘ Срок после которго данный лог или бэкап вам уже точно не понадобиться определяется только вашим
‘ гражданским самосознанием, исходя из принципов разумности и политики вашей организации.
‘==========================================================================

‘Объявляем пременные
Dim Fso,File,BackupFolder,backupFiles,PathName,Result,Name,Output
Dim Counter,CurrentDate,FileDate,WshShell,a,str
‘Инициализируем переменные
Counter=0
PathName=»нужная вам папочка»
‘Получаем значение текущей даты
CurrentDate=Date

‘Создаем объекты: WScript.Shell и Scripting.FileSysemObject
Set WshShell=WScript.CreateObject(«WScript.Shell»)
Set Fso=WScript.CreateObject(«Scripting.FileSystemObject»)
‘Получаем объект — нужная нам папка
Set BackupFolder=Fso.GetFolder(PathName)
‘Получаем коллкцию объектов типа «File» из нужной папки
Set backupFiles=BackupFolder.Files
‘ Цикл. Для каждого обекта-File из коллекции обектов — Files
For Each File In backupFiles
‘Получаем дату зоздания файла
FileDate=File.DateCreated
‘Получаем период между датой создания файла и текущей датой
Result=CurrentDate-FileDate
‘Если период между датой создания файла и текушей датой больше заданного значения, то
‘удаляем файл и формируем строку, которую будем писать в лог-файл и строку которую мы будем выводить в наше сообщение
‘(можно не формировать строку здесь и далее это сделанно для наглядности).
If Result>Количество дней после которого файлы будут удаляться Then
Counter=Counter+1
str=Str + «Был удален файл» & File.Name & » » & CurrentDate & VbCrLf
Name=Name & File.Name & VbCrLf
File.Delete
end If
Next
‘Открываем файл log.txt на запись (опционально)
Set a=Fso.OpenTextFile(«c:\log.txt»,2,False)
‘Записываем туда сформированную в цикле строку (опционально)
a.WriteLine(Str)
‘Закрываем файл (опционально)
a.Close
‘Выводим окно сообщения о том какие файлы мы удалили (опционально)
Output=MsgBox(«Было удаленно » & Counter & » файл(а/ов)» & vbCrLf & Name,64, «Output Box»)
[/cc]

» Запись из раздела windows | Комментировать

User must change password on next logon

Запись создана 12 марта, 2008

[cc lang=»bash»]
‘скрипт рекурсивно устанавливает всем пользователям домена атрибут «User must change password on next logon»
‘для корректной работы необходимо в переменной strMyDomain определить имя домена с точки зрения LDAP —
‘т.е. все точки заменить на «DC=». Таким образом, домен argo.com превращается в DC=argo,DC=com
‘в переменную strMyOU необходимо поместить наименование Organization Unit`а, юзеров которого необходимо подвергнуть
‘процедуре изменения пароля.

Dim strMyOU
Dim strMyDomain

Dim objOU, objUser
Dim strContainer, strLastUser

strMyOU = «argo»
strMyDomain = «DC=argo,DC=com»

sub recurs(ou)
strContainer = «OU=»+ou+»,» + strMyDomain
set objOU = GetObject(«LDAP://» & strContainer )
For each objUser in objOU
strLastUser = objUser.Get («name»)
If objUser.Class=»organizationalUnit» Then
recurs(strLastUser+», OU=»+ou)
Elseif objUser.Class=»user» Then
objUser.Put «pwdLastSet», 0
objUser.SetInfo
end if
next
end Sub

recurs strMyOU

WScript.Quit
[/cc]

» Запись из раздела Несортированное | Комментировать

массовое добавление пользователей из екселевской таблички

Запись создана 12 марта, 2008

[cc lang=»vb»]// массовое добавление пользователей из екселевской таблички
// структора таблички:
// Фамилия Имя Отчество Логин Должность Отдел Предприятие Телефон

Set objExcel = CreateObject(«Excel.Application»)
Set objWorkbook = objExcel.Workbooks.Open _

// из какой таблички
(«D:\excel.xls»)

intRow = 1

Do Until objExcel.Cells(intRow,1).Value = «»

// куда добавляем, домен и юнит
Set objOU = GetObject(«LDAP://OU=management,dc=domain,dc=name»)

Set objUser = objOU.Create _
(«User», «cn=» & objExcel.Cells(intRow, 1).Value & » » & objExcel.Cells(intRow, 2).Value & » » & objExcel.Cells(intRow, 3).Value)
objUser.sAMAccountName = objExcel.Cells(intRow, 4).Value
objUser.GivenName = objExcel.Cells(intRow, 2).Value
objUser.SN = objExcel.Cells(intRow, 1).Value
objUser.displayName = objExcel.Cells(intRow, 1).Value & » » & objExcel.Cells(intRow, 2).Value & » » & objExcel.Cells(intRow, 3).Value

// какой домен им ставить
objUser.Put «userPrincipalName», (objExcel.Cells(intRow, 4).Value & «@domain.name»)
objUser.Put «title», objExcel.Cells(intRow, 5).Value
objUser.Put «department», objExcel.Cells(intRow, 6).Value
objUser.Put «Company», objExcel.Cells(intRow, 7).Value
‘ objUser.Put «TelephoneNumber», objExcel.Cells(intRow, 8).Value

objUser.SetInfo
intRow = intRow + 1
Loop

objExcel.Quit
[/cc]

» Запись из раздела windows | 1 комметарий

Как в Linux перебросить соединение через NAT во внутреннюю сеть

Запись создана 12 марта, 2008

Первый путь – пробрасывание только порта:
[cc lang=»bash»]iptables -t nat -A PREROUTING -p tcp -d EXT_R_IP —dport 10000 -j DNAT —to-destination LOCAL_IP:80
iptables -A FORWARD -i eth0 -d LOCAL_IP -p tcp —dport 22 -j ACCEPT[/cc]

Второй вариант – выброс всей машины наружу (если есть свободные адреса):
[cc lang=»bash»]ifconfig eth0:0 NEW_IP netmask NETMASK broadcast BROADCAST
route add NEW_IP gw GW netmask 0.0.0.0 metric 1 dev eth0:0
iptables -t nat -A PREROUTING -p tcp -d NEW_IP -j DNAT —to-destination LOCAL_IP
iptables -A FORWARD -i eth0 -d LOCAL_IP -j ACCEPT
[/cc]
Обозначения: EXT_R_IP – внешний IP роутера, LOCAL_IP – внутренний IP машины, которую хочешь выбросить
NEW_IP – новый IP на который хочешь посадить машину, которая имеет локальный LOCAL_IP NETMASK, BROADCAST, GW – внешние netmask, broadcast и gateway

» Запись из раздела networking, Unix | 2 комментария

крякозябры в диалогах виндовых программ в wine

Запись создана 12 марта, 2008

Если в диалогах программ, запущенных под wine, крякозябры следует сделать следующее:

1. создать в домашнем каталоге пользователя подкаталог .fonts и скопировать в него TTF-шрифты из windows.

2. в консоли выполнить команду fc-cache /.fonts

Шрифты станут доступны всем вновь запущенным приложениям.

» Запись из раздела Unix | 4 комментария

« предыдущая страницаследующая страница »