Очистка FDB таблицы на DGS-3100 из CRON

Создать файл с содержанием:

snmpset -v2c -c комьюнити айпи .1.3.6.1.4.1.171.10.94.89.89.1.2.0 i 7

Прописать в cron строку с путем к нему:

*/30 * * * *    /home/пользователь/fdb.sh > /dev/null 2>&1

Перезаустить планировщик: sudo /etc/init.d/cron restart

В итоге cron запускает файл каждые 30 минут из которого по SNMP отсылается OID выполняющий очистку таблицы мак адресов. Это может быть примитивным вариантом решения проблемы с моделью DGS-3100 которая при средней нагрузке часто может просто переставать пропускать через себя трафик. Эта проблема массово обсуждалась на форуме D-Link, решение которой можно сказать так и не было найдено. У кого еще остались модели DGS-3100 их лучше заменить на DGS-3120.

Простое кеширование страниц

Приведу пример простого кеширования PHP страниц с интервалом 600 секунд (10 минут).

Вставляем в начале кода:

<?php
$url=$GLOBALS['REQUEST_URI'];
$crc=md5($url);
$modif=time()-@filemtime ("cache/$crc");
if ($modif<600)
{
include ("cache/$crc");
exit();
}
ob_start ();
?>

Код самой страницы:

<html>
Код страницы
</html>

Вставляем в конце кода:

<?php
$cache = ob_get_contents();
ob_end_clean ();
echo $cache;
$fp = @fopen ("cache/$crc", "w");
@fwrite ($fp, $cache);
@fclose ($fp);
?>

Создадим также папку cache, после открытия страницы в неё будет записываться кеш.

Использование .htaccess

.htaccess — (hypertext access) файл дополнительной конфигурации веб-сервера Apache и подобных ему серверов.
Чтобы файл обрабатывался сервером Apache, в конфигурационном файле для указанной директории должна стоять опция AllowOverride All.

Приведу ниже пример некоторых параметров.
Запрет на все файлы:
deny from all

Разрешить доступ с определенного ip:
order allow deny
deny from all
allow from 0.0.0.0
*можно указывать несколько через пробел.

Запретить доступ с определенного ip:
order allow deny
deny from all
deny from 0.0.0.0

Запрет на конкретный файл:
<Files file.php>
order allow,deny
deny from all
</Files>

Пароль на директорию:
AuthName «Hello»
AuthType Basic
AuthUserFile /home/user/.htpasswd
require valid-user

Пароль на 1 файл:
<Files file.php>
AuthName «Hello»
AuthType Basic
AuthUserFile /home/user/.htpasswd
</Files>

Пароль на группу файлов:
<Files «\.(cfg)$»>
AuthName «Hello»
AuthType Basic
AuthUserFile /home/user/.htpasswd
</Files>

Редирект на другой url:
Redirect / http://www.site.ru

Генератор .htpasswd: www.htaccesstools.com/htpasswd-generator
Можно сгенерироать файл из командной строки системы используя утилиту htpasswd (в Ubuntu она устанавливается с apache2-utils командой sudo apt-get install apache2-utils)

Смотрите также:
Контроль доступа Apache2

Настройка VLAN в Ubuntu Server

Устанавливаем пакет Vlan:

sudo apt-get install vlan

Загружаем модуль Vlan (802.1q):

sudo modprobe 8021q

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

sudo  sh -c 'grep -q 8021q /etc/modules || echo 8021q >> /etc/modules'

Редактируем конфигурационный файл сетевых интерфейсов /etc/network/interfaces например редактором nano:

sudo nano /etc/network/interfaces

Добавим в него VLAN интерфейс:

auto eth0.5
iface eth0.5 inet static
address 192.168.5.1
netmask 255.255.255.0

Запускаем прописанный сетевой интерфейс:

sudo ifup eth0.5

Смотрите также:
Добавление vlan в Ubuntu для ABillS

Скрытие email на сайте от спамеров

Первый способ через JavaScript:

<script type="text/javascript" language="JavaScript">
var login  = 'user';
var server = 'domain.com';
var email  = login+'@'+server;
var url = 'mailto:'+email;
document.write('<a href="'+url+'">'+email+'</a>');
</script>

<noscript><img src="URL_картинки"></noscript>

В случае если у пользователя отлючены JavaScript, то выведется картинка указанная в тегах noscript.

Второй способ через PHP:

<?php
$email = 'user@domain.com';
$url = 'mailto:user@domain.com';
$safe_email=$safe_url='';
for($i=0; $i $safe_email .= '&amp;#'.ord($email{$i}).';';
}
for($i=0; $i $safe_url .= '&amp;#'.ord($url{$i}).';';
}
print "<a href="$safe_url">$safe_email</a>";
?>

Исправление ошибки MySQL: Can’t create table ‘tablename’ (errno: 150)

Ошибка MySQL: Can’t create table ‘tablename’ (errno: 150) может возникать когда вы например заливаете бекап и MySQL питается создать таблицу 1 которая ссылается на таблицу 2, которой по сути еще нету. Решить можно вставив в бекап строки:
в начале
SET FOREIGN_KEY_CHECKS = 0;
и в самом конце
SET FOREIGN_KEY_CHECKS = 1;