Linux очистка кэша из памяти

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

free

результат будет приблизительно такой:

             total       used       free     shared    buffers     cached
Mem:       8165704    7415508     750196          0     865540    4513180
-/+ buffers/cache:    2036788    6128916
Swap:     10223608        196   10223412

В моем случаи кэш занимает 4.5 Гб. Если вы по каким-то причинам хотите очистить кеш, выполните:

sync; echo 3 > /proc/sys/vm/drop_caches

Количество просмотров :14586

Bash Убираем коментарии в файле

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

#!/bin/bash
#
#
sed '1p; /^[[:blank:]]*#/d; s/[[:blank:]][[:blank:]]*#.*//' $1 > new

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

#!/bin/bash
#
#
sed '1p; /^[[:blank:]]*#/d; s/[[:blank:]][[:blank:]]*#.*//' $1 | sed -e 's/[\t ]//g;/^$/d' > new

 

Количество просмотров :2658

Установка CentALT репозитария

CentALT это небольшой репозитарий, автор которого сосредоточил свое внимание всего на несколько пакетов, за-то обновления этих пакетов появляются в кратчайшие сроки. Вот список пакетов:

Clamav
Clamsmtpd
Conntrack-tools
Dnstop
Dovecot
Postfix
Httpd
Mc
Memcached
Mod_rpaf
Mod_realip2
Mysql
Nagios
Nagios-plugins
Nginx
Php
Spawn-fcgi
Unbound
Vsftpd
flow-tools
fprobe
ipt_netflow
softflowd
ipcad
quagga
А также модули ядра connlimit, ipmark, ipset, ipp2p.

Установка репозитария для i386:

rpm -ihv http://centos.alt.ru/repository/centos/5/i386/centalt-release-5-3.noarch.rpm

для x86_64:

rpm -ihv http://centos.alt.ru/repository/centos/5/x86_64/centalt-release-5-3.noarch.rpm

Количество просмотров :5593

Codeigniter аутентификация через Ldap

Так, как последнее время я работаю используя Codeigniter, то соответственно начал искать модуль для LDAP аутентификации, в итоге, поиски привели меня на Хабр. Статья оказалась полезной, и помогла начать работу с библиотекой adldap.php

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

Найти самостоятельно информацию в принципе не трудно. Поисковые системы еще ни кто не отменял. Я просто решил собрать найденные кусочки и объединить их в один, на русском языке.

Допустим, что CI уже установлен и настроен. Добавим библиотеку и конфигурационный файл.Конечно, существуют некоторые функции в самом PHP, но использовать их не всегда рационально. За основу возьмем библиотеку adLDAP. В ней есть все необходимое и даже больше.

Первым делом создадим конфигурационный файл, например adldap.php и положим его в \system\application\config\

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

$config['account_suffix'] = '@dom.ru';
$config['base_dn'] = 'DC=dom,DC=ru';
$config['domain_controllers'] = array ("DC01.dom.ru");
$config['ad_username'] = 'web_user';
$config['ad_password'] = 'web_passS8';
$config['real_primarygroup'] = true;
$config['use_ssl'] = false;
$config['use_tls'] = false;
$config['recursive_groups'] = true;
?>

Далее необходимо добавить библиотеку. Но как сделать так, что бы ей можно было пользоваться в CI, как остальными? За нас это уже сделал один программист, и предоставил для общественного пользования (онутверждает, что лицензия не нарушена). Ее мы и добавим в \system\libraries\ и назовем, например Adldap.php.

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

<?php
$this->load->library('Adldap');
$this->adldap->authenticate($username, $password);
?>

Напишем небольшой код авторизации

Сделать это проще простого.
Во-первых, создадим форму для ввода логина и пароля:

<?php
<form_ action=«info.dom.ru/login/gateway» method=«post»>
<input_ name=«username» type=«text» value=«Логин»>
<input_ name=«password» type=«password» value=«Пароль»>
<input_ type=«submit» name=«submit» value=«Войти» />
</form_>
?>

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

Для более тонкой настройки нужен еще один параметр для проверки — группа (Active Directory). Назовем ее, например Web_Group, и добавим нужных нам пользователей:

<?php
//Создаем контроллер
class login extends Controller {

//Функция для проверки логина, пароля и группы
function gateway() {

//Подключаем библиотеку
$this->load->library('Adldap');

//Проверяем логин и пароль
$authUser = $this->adldap->authenticate($this->input->post('username'), $this->input->post('password'));

//проверяем наличие пользователя в группе
$groupinfo = $this->adldap->user_ingroup($this->input->post('username'), 'Web_Group', 'NULL');

//В случае если $authUser и $groupinfo истина
if ($authUser === true and $groupinfo === true) {

//Осталось только добавить информацию в массив сессии о том, что проверка успешна и доступ к определенным ресурсам открыт
$data = array('username' => $this->input->post('username'), 'usergroup_access' => 'Web_Group', 'is_logged_in' => true);
$this->session->set_userdata($data);
redirect();
} else {
echo "Ошибка авторизации";
}
}
}
?>

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

<?php
function view_data() {

//Вытаскиваем и проверяем прошел или нет пользователь авторизацию
if ($this->session->userdata('is_logged_in') == true) {

echo "Доступ к данным открыт";

} else {

echo "Доступ закрыт";
}
}
?>

Теперь осталось только дописать функцию уничтожения сессии (Logout):

<?php
function logout() {
$this->session->sess_destroy();
redirect();
}
?>

Количество просмотров :2942

Устанавливаем DenyHost на CentOS/RH

DenyHost это антибрутофорс, или другими словами програма выявляющая и присекающаю угрозы подбора пароля по SSH. Я уже писал ранее о нескольких решениях, но DenyHost интересно в первую очередь тем, что может обмениваться данными с центральным сервером, и получать свежие списки брутофорсеров. Система весьма эффективна, и что не мало важно, легко устанавливаеться и настраиватся.

И так, для начала, нам понадобится установить EPEL, как это сделать читаем ТУТ . Далее:

yum install denyhosts

Основные настройки находяться в /etc/denyhosts.conf, но сама программа работает из коробки без каких либо донастроек. Добавим ее в автозагрузку:

chkconfig denyhosts on

и запускаем

service start denyhosts

Количество просмотров :3718

Соединяем два шлюза CentOS IpSec тунелем

И так, пусть у нас есть два сервера Linux CentOS 5.6(2.6.18-238.9.1.el5):

Gateway 1: реальный IP x.x.x.x внутренняя сеть 192.168.0.0/24(192.168.0.1 на шлюзе)
Gateway 2: реальный IP y.y.y.y внутренняя сеть 10.10.0.0/24(10.10.0.1 на шлюзе)

Устанавливаем ipsec-tools:

yum install ipsec-tools

Читать продолжении статьи: Соединяем два шлюза CentOS IpSec тунелем »


Количество просмотров :12990

Php Разрезать строку и отбросить лишнее

Зачем вообще мне вздумалось разрезать строки, как пример у нас есть небольшой блок в котором мы хотим хранить темы последних новостей или последние сообщения с форума. Обычно такие блоки не больших размеров, а вот строки которые должны в них помещаться могут быть какие угодно. Вот для этого и может понадобиться разрезать строку на части, прикрепить в конце «…» и вывести в блоке.

И так, все можно сделать банально при помощи str_split

<?php
function StringSplit($str,$n){

$new = '';
if (strlen($str) > $n){
	$array = str_split($str);
	for($i=0 ; $i <= $n; $i++){
		$new .= $array[$i];
	}
	$new .= '...';
	}
return $new;
}

echo StringSplit('Hellow World. I hope u will be there!','17');
?>

результат будет

Hellow World. I ho…

Все работает, но вот, то, что слово hope было так зверски разрезано не очень хорошо, поэтому попробуем немного по другому:

<?php
function Transform($string,$n)
{
$new = '';
if(strlen($string) > $n){
	$array = explode(' ',$string);
	for($i=0; $i < count($array)-1; $i++){
		if($i == 0){
			$new .= $array[$i];
		}else{
			$new .= ' '.$array[$i];
		}
	}
	if (strlen($new) > $n){
		$new = Transform($new,$n);
	}else{
		$new .= '...';
	}
}else{
	$new .= $string;
}
//echo $new.'<br>';
return $new;
}
echo Transform('Hellow World. I hope u will be there!','17');
?>

Результат будет:

Hellow World. I…

Количество просмотров :2617

Узнаем, какие способы ввода данных поддерживает postfix

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

postconf -m

в ответ вы получите:

btree
cidr
environ
hash
ldap
mysql
nis
pcre
proxy
regexp
static
unix
 

Количество просмотров :1764

System Integrity Monitor

SIM это мониторинговая система для систем ‘SysVinit’. Для справки — пакет Sysvinit содержит программы для контроля запуска работы и завершения всех остальных программ. Я данный пакет применяю на каждом своем сервере, для организации безперебойной работы сервисов и служб. Система остлеживает не только статусы програм, но и загрузку системы, и в зависимости от настроек может применять действия согласно сценарию. Основные возможности:

Мониторинг сервисов HTTP,FTP,DNS,SSH,MySQL и других
Отслеживание событий и система предуприждения
Автоматический перезапуск служб
Для проверки состаянии службы система может обратиться листу процессов или проверить сетевой порт.
Мониторинг загрузки сервера и настраиваемые сценарии действий
Распределение приоритетов сервисов при разных степенях нагрузки

Это основные возможности данного продукта. Скачать SIM вы можете ТУТ . Особых сложностей в установке нету, а для конфигурации используеться авто конфигуратор, который на основе ваших ответов создат конфиг файл.


Количество просмотров :2303

Php авторизация используя MySQL

Простой PhP скрипт для аутентификации с использованием MySQL. Для начала нам понадобиться MySQL таблица:

CREATE TABLE `logon` (
`userid` int(11) NOT NULL auto_increment,
`useremail` varchar(50) NOT NULL default '',
`password` varchar(50) NOT NULL default '',
`userlevel` int(1) NOT NULL default '0',
PRIMARY KEY (`userid`)
) TYPE=MyISAM

Читать продолжении статьи: Php авторизация используя MySQL »


Количество просмотров :7829