Установка кодировки UTF8 для ssh шелл FreeBSD

  1.  Выполняем в консоли chpass. Приводим секцию Class к виду: Class: russian. Должно получиться чтото вроде:
#Changing user information for root.
Login: root
Password: ущш мщаукоац ущк
Uid [#]: 0
Gid [# or name]: 0
Change [month day year]:
Expire [month day year]:
Class: russian
Home directory: /root
Shell: /bin/csh
Full Name: щцшу
Office Location:
Office Phone:
Home Phone:
Other information:

2. В файле /etc/login.conf прописываем:

russian|Russian Users Accounts:\
	:charset=UTF-8:\
	:lang=ru_RU.UTF-8:\
	:tc=default:

3. Выполняем в консоли

cap_mkdb /etc/login.conf

Сий мануал справедлив для FreeBSD 8.4

PHP трем все кукисы

6110241b76d9ab964db628bff90fff88Иногда необходимо потереть вообще все кукисы, не зная какие именно установлены. Один из вариантов решения ниже:

function UnsetAllCookies(){
    global $_COOKIE;
    foreach ($_COOKIE as $key=>$value) {
	SetCookie("$key","",time()+3600000,'/'); // трем  кукисы..
    };
};

Confirm на jquery без плагинов «одной строкой»

Вот одно из решений:

$('<div></div>').appendTo('body')
    .html('<div><h6>Вы убеждены?</h6></div>')
    .dialog({
        modal: true,
        title: 'Удалить всё?',
        zIndex: 10000,
        autoOpen: true,
        width: 'auto',
        resizable: false,
        buttons: {
            Yes: function () {
$(obj).removeAttr('onclick');                              
                $(this).dialog("close");
            },
            No: function () {
                $(this).dialog("close");
            }
        },
        close: function (event, ui) {
            $(this).remove();
        }
    });

Еще один полезный SQL запрос для Zabbix

Получение триггеров с учетом зависимостей. Т.е. Если некий тригер А зависит от триггера Б, то его в списке не будет.

SELECT (UNIX_TIMESTAMP()-triggers.lastchange)/60 as minut,hosts.host,        triggers.description,        triggers.comments,        triggers.triggerid FROM triggers INNER JOIN functions ON triggers.triggerid=functions.triggerid INNER JOIN items ON items.itemid=functions.itemid INNER JOIN hosts ON hosts.hostid=items.hostid INNER JOIN hosts_groups ON hosts_groups.hostid=hosts.hostid INNER JOIN groups ON groups.groupid=hosts_groups.groupid WHERE hosts.status = 0   AND items.status = 0   AND triggers.status = 0   AND triggers.priority=5   AND triggers.value=1 and ((UNIX_TIMESTAMP()-triggers.lastchange)/60)>15 and triggers.triggerid in (select triggerid_up from trigger_depends where triggerid_down in (SELECT triggers.triggerid FROM triggers INNER JOIN functions ON triggers.triggerid=functions.triggerid INNER JOIN items ON items.itemid=functions.itemid INNER JOIN hosts ON hosts.hostid=items.hostid INNER JOIN hosts_groups ON hosts_groups.hostid=hosts.hostid INNER JOIN groups ON groups.groupid=hosts_groups.groupid WHERE hosts.status = 0   AND items.status = 0   AND triggers.status = 0   AND triggers.priority=5   AND triggers.value=1 and ((UNIX_TIMESTAMP()-triggers.lastchange)/60)>15 group by triggerid))  group by triggers.triggerid

Отправляем сообщения пользователям Telegram из коммандной строки. FreeBSD

1) Ставим из портов trelegram-cli

cd /usr/ports/net-im/telegram
make install

2) Заходим в telegram-cli, регистрируемся. По help — список комманд.

Нюансы: сначала нужно добавить контакты. Отправлять сообщения тоже можно не сразу, а только после выполнения комманды contact_list. Или запускать telegram-cli с ключем -W

Пробелы в именах при операциях с коммандами необходимо заменять на _

Например отправка сообщения:

msg Gribov_Pavel "Привет"

3) Для получения списка контактов и их состояния, можно использовать что-то типа на PHP (требует доработки):

#!/usr/local/bin/php
<?php

/* 
 * (с) 2016 Грибов Павел
 * http://грибовы.рф * 
 * Если исходный код найден в сети - значит лицензия GPL v.3 * 
 * В противном случае - код собственность ГК Яртелесервис, Мультистрим, Телесервис, Телесервис плюс * 
 */
$path="/usr/local/bin/telegram-cli";  //где находится консольный телеграм whereis telegram-cli

function GetContacts(){    
    global $path;
    $result=array();
    $rez=`( echo "contact_list" ; echo "safe_quit" ) | $path -RCW -U root | grep -v halt | grep -v "All" | grep "under" -A 100000 | grep -v "licen" `;
    $res_arr=  explode("\n", $rez);    
    foreach ($res_arr as $value) {	
	$value=trim($value);
	$value=preg_replace("/[^a-zA-ZА-Яа-я0-9\s]/","", $value);
	if ($value!=""){
	 $value=  str_replace(" ", "_", $value);
	 $result[$value]["name"]=$value;
	};
    };
    return $result;
};
function StatusInfo($contact_list){
    return $contact_list;
};
 $contact_list=GetContacts();
 $contact_list=StatusInfo($contact_list);
 var_dump($contact_list);
?>

Из огромных минусов такого способа информирования — нельзя знать наверняка, получил контакт сообщение или нет. Во первых нет в API получения статуса отправленого сообщения, а во вторых  — при свернутом в трей телеграмме, статус контакта будет offline. Т.е. нет уверенности, на самом деле контакт в оффлайне, или у него приложение просто свернуто. Этот огромный жирный минус перечеркивает все достоинства Telegram, и соответственно использовать его для информирования например событий  в Zabbix не представляется возможным