ITDim
    Все будет итышно, когда вы с нами :)

Обнуление счетчика id

alter table device  alter column id counter(1,1)


device - название таблицы
id - ключевое поле id
(1,1) - 1 цифра с какой цифры начинаем считать, 2 цифра сколько к первой цифре прибавлять

squid.conf

cache_mem - сколько памяти под кэш потратит (реально в 2.5 раза больше зажрёт. Любит он оперативку. У меня в точно такой конфигурации занимает 297 мегов памяти, примерно через день - когда наберёт объектов в память)
maximum_object_size - максимальный размер объекта сохраняемый на диск (частенько неслушается и сохраняет обекты раза в 2-3 большие)
maximum_object_size_in_memory - максимальный размер объекта хранимого в оперативке
cache_dir - директория для кэша. Должна существовать и юзер от которого работает сквид должен иметь право писать в неё. Там же - ufs - тип файловой системы на которой расположена папка кэша, 2048 - максимальный размер кэша, 64 - число директорий первого уровня
256 - число директорий второго уровня (на директориях экономить не советую, сам столкнулся - кончились папки, но лимит по размеру кэша ещё не был достигнут, инет в итоге работает, но жутко тормозит. Как на модеме хреновеньком.... На 10-ти мегабитной-то линии....)
cache_access_log - местоположение файла логов доступа пользователей к инету - кто, куда, сколько.
cache_log - лог собственно сквида - результаты запусков-остановок, результаты работы с кэшем.
cache_store_log - лог что сохранено в кэше на диске
cache_mgr - е-майл администратора, выводится при ошибках или если доступ к странице запрещён.
visible_hostname - видимое снаружи имя хоста
tcp_outgoing_address - внешний адрес сервера
redirect_program - программа редиректор (занимается анализом запрашиваемых URL и может производить с ними какие-то действия, у меня раньше, таким макаром был прикручен антивирус на проверку входящего http-траффика, а щас висит скрипт срезающий порнуху, от антивиря пришлось отказаться - примерно 30-40% лишнего траффика было, т.к. сайты нынче в основном динамические...)
redirect_children - число процессов программы-редиректора
Затем идут ACL-ы, разрешающие или запрещающие пользование http и поддержка прозрачного проксирования. ACL denied_sites закомментирован, можно пользоваться им самим, но я предпочитаю натравить на него внешнюю программу-редиректор, тогда можно будет вносить в него не сайты целиком, а ключевые слова по которым будет резаться URL - типа sex, deffki, porewo.... Если в запросе будет такое слово (неважно, в середине пути, в имени сервера, или названии файла) то не такой адрес пользователя не пустят. Можно таким макаром зарезать всю графику, например, написать jpg, jpeg, png, gif и всё - графики больше нет :) Можно резать флэши, файлы с нежелательными расширениями, да что угодно....
Учтите, строки типа acl allowed_sites dstdomain "/usr/local/my_doc_smb/squid/allowed_sites.conf" - это одна строка, просто у меня в листинге конфига не влезло и я её так перенёс.
coredump_dir - директория куда будет писаться дамп программы в случае критической ошибки и последующего "выпадания в корку"
pid_filename - имя файла где хранится идентификатор запущенного squid`a

Возвращает пользователя под которым выполнен заход в систему Delphi


Возвращает пользователя под которым выполнен заход в систему

function GetCurrentUserName : string;constcnMaxUserNameLen = 254;varsUserName : string;dwUserNameLen : DWord;begindwUserNameLen := cnMaxUserNameLen-1;SetLength( sUserName, cnMaxUserNameLen );GetUserName(PChar( sUserName ),dwUserNameLen );SetLength( sUserName, dwUserNameLen );Result := sUserName;end;

Nagios; Gammu: уведомление через SMS

Всвязи с увеличением количества серверов возникла необходимость в их мониторинге с возможностью оповещения при возникновении проблем. Выбор пал на Nagios, так как пару лет назад, работая в компании телеком-оператора работал с ним.
Одним из условий была возможность оповещения посредством SMS сообщений.
Итак, что имеем и как все это заставить работать вместе:
— Linux (Debian 5) сервер с установленным Nagios (процесс первоначальной установки и настройки самого Nagios не буду описывать в данной статье)
— Мобильный телефон (в данном случае Nokia 3110), подключаемый посредством USB кабеля
— Желание все это дело заставить работать вместе :)

Для начала устанавливаем Nagios и настраиваем для мониторинга необходимых хостов.

Далее настраиваем систему для работы с мобильным телефоном. Этот шаг опишу так, как реализовал я, так как есть много способов как это сделать :)
Для начала установил программу gammu
apt-get install gammu
Следующий шаг — настройка gammu для работы с мобильным телефоном. Для этого можно воспользоваться утилитой
gammu-config.
После настройки gammu в домашней директории должен появиться файл .gammurc примерно следующего содержания:
~# cat ~/.gammurc
[gammu]
port=/dev/ttyACM0
connection=at115200
name=Nokia 3110c
model=nauto

Для того чтобы проверить работоспособность воспользуемся следующими командами:
~# echo «test msg» | gammu sendsms TEXT +номер_вашего_телефона
таким образом мы отсылаем SMS с текстом «test msg» на телефон "+номер_вашего_телефона" — номер телефона лучше указать в международном формате.

если SMS пришла — тогда читаем дальше, в противном случае возвращаемся к настройке gammu (думаю погуглив на эту тему, можно найти кучу документации).

Следующий шаг — это настройка Nagios для посылки SMS.

Смотрим файл /etc/passwd для того, чтобы узнать где находится домашняя директория для пользователя nagios (в моем случае: /var/run/nagios3). Копируем туда файл .gammurc и меняем права доступа для пользователя nagios:
~# chown nagios: ./.gammurc
Далее мне пришлось изменить права доступа на файл /usr/bin/gammu — присвоить UID при выполнении, таким образом они стали:
/usr/bin# ls -la ./gammu
-rwsr-xr-x 1 root root 360088 Май 11 2008 ./gammu

Далее настраиваем Nagios. Для начала добавляем новые команды. Это делается в файле настроек commands.cfg в конфигурационной директории Nagios (для меня /etc/nagios3). Добавляем следующие строки:
# 'notify-host-by-sms' command definition
define command{
command_name notify-host-by-sms
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAdd
ress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/bin/gammu sendsms TEXT $CONTACTADDRESS1$
}

# 'notify-service-by-sms' command definition
define command{
command_name notify-service-by-sms
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIA
S$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" | /usr/bin/gammu sendsms TEXT
$CONTACTADDRESS1$
}

Потом переходим к настройке файла с контактами (в моем случае contacts_nagios2.cfg в директории /etc/nagios3/conf.d).
Нам необходимо добавить параметр address1, в котором указываем номер мобильного в международном формате, а также добавить команды для оповещения при смене статуса сервисов или хостов.
Вот как было у меня до:
define contact{
contact_name vano
alias Vano
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,r
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
email vano@gde-to.tam
}

И как стало после:
define contact{
contact_name vano
alias Vano
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,r
service_notification_commands notify-service-by-email,notify-service-by-sms
host_notification_commands notify-host-by-email,notify-host-by-sms
email vano@gde-to.tam
address1 +700000000000
}

Далее перезапускаем Nagios и начинаем наслаждаться приходящими сообщениями :)
Хотя лучше, когда их меньше :)

PS: просьба ногами сильно не пинать, так как это мой первый пост :) если есть вопросы — задавайте, постараюсь ответить :)

UPD: заметил еще один нюанс, по крайней мере у меня. Так как для пользователя nagios домашняя директория указана в /var/run/nagio3, то после перезагрузки оттуда исчезает файл .gammurc. Решил просто, в /etc/rc.local прописал, чтобы копировал этот файл в директорию /var/run/nagios3 и менял владельца на nagios, после чего — перезапуск сервиса:

/bin/cp /root/.gammurc /var/run/nagios3
/bin/chown -R nagios: /var/run/nagios3
/etc/init.d/nagios3 restart


взято с http://habrahabr.ru/post/66551/

Добавлю от себя: когда я настраивал, у меня проблемы пропадания файла не было, но была проблем прав с этим файлом, и после рестарта сервера приходится перезагружать nagios, что можно решить исполняемым файлом. 

Сохранение записи DBGrid Delphi


Сохранение записи DBGrid

Сохранение записи

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

if DBGrid1.EditorMode or DBGrid1.DataSource.DataSet.Modified then
DBGrid1.DataSource.DataSet.Post;

Активация PVR (запись теле-программ на USB) - видео SAMSUNG


Активация PVR (запись теле-программ на USB) - видео

Будьте очень осторожны при нажатии кнопок на пульте дистанционного управления во время навигации в сервисном меню.
Перемещение по меню списка - нажимаем только стрелку вниз.Чтобы изменить вариант - стрелка вправо.
ПРИМЕЧАНИЕ: Все пользовательские настройки будут сброшены после этого, так что запишите все настройки на бумаге.

Вставьте в гнездо USB HDD / Flash отформатированный в FAT32. Этот шаг не является необходимым и может быть создан без Flashdisk USB.
Включите телевизор, нажать на пульте дистанционного управления последовательно кнопки MUTE-1-1-9-ENTER, на пункте HOTEL MODE стрелкой вправо меняем в положение ON , а затем выключить телевизор.
При выключенном ТВ нажать на пульте дистанционного управления последовательно кнопки INFO-MENU-MUTE-POWER (Если это не работает, попробуйте MUTE-1-8-2-POWER). Это позволит включить телевизор и показать сервис-меню.
В сервисном меню опускаемся вниз до пункта CONTROL, затем стрелка вправо, опускаемся до пункта HOTEL OPTION, снова стрелка вправо, появляется новое меню, двигаться вниз до пункта Clone TV to USB, снова стрелка вправо - ТВ запишет настройки на USB (если флешка не вставлена, напишет Failed - это не важно). Нажимаем OK. Затем RETURN для возврата. Поднимаемся вверх до пункта Sub Option и стрелка вправо. Появится новое большое меню.
В этом меню двигаться стрелкой вниз (НЕ стрелкой вправо) до пункта PVR Support и стрелкой вправо включаем - ON. Нажимаем кнопку RETURN для выхода и еще раз RETURN для возврата в предыдущее меню.
Опускаемся вниз до пункта HOTEL OPTION, затем стрелка вправо, на пункте HOTEL MODE стрелкой вправо выключаем - OFF. Выключаем ТВ.
Включаем телевизор - PVR уже включен. Нажимаем во время просмотра ТВ кнопку ЗАПИСЬ, телевизор попросит отформатировать диск USB (один раз). Если это будет сделано успешно функция PVR теперь будет работать и начнется запись на USB.

Пробовал на своем телике самсунг 32 5000, все получается по инструкции, даже флешка форматируется, но запись не идет(

Мои примеры триггеров

DELIMITER $$CREATE TRIGGER insert_date before INSERT ON vizits FOR EACH ROW begin set new.weeks = weekofyear(new.date); end; DELIMITER ;
----------------------------------------------
DELIMITER $$CREATE TRIGGER lastviz_doctor AFTER INSERT ON vizits FOR EACH ROWBEGINUpdate doctor set lastviz_date = New.date where id=NEW.doctor_id;END;DELIMITER ;
----------------------------------------------

DELIMITER $$CREATE TRIGGER users_autintif AFTER UPDATE ON users FOR EACH ROWBEGININSERT INTO MONITORINGSELECT b.id, a.user, a.HOST, a.DB, a.TIME, a.STATE, a.INFO, b.login, b.pass, b.empl_id, b.cur_id, NOW()FROM information_schema.PROCESSLIST a, users bWHERE b.cur_id=a.ID;END;DELIMITER ; 

Отличная штука эти триггеры, полезная