Запускаем голосовой сервер Teamspeak3

Скачиваем дистрибутив сервера Teamspeak3 с официального сайта http://www.teamspeak.com/downloads
Возле кнопки Download есть также кнопка копирования ссылки, после чего можно выполнить загрузку прямо на сервер командой:

wget ССЫЛКА

Посмотреть имя архива и содержимое текущей директории можно командой ls.

Распакуем скачанный архив:

tar jxf teamspeak3-server_linux-amd64-3.0.0.tar.gz

Перейдем в директорию с распакованными файлами:

cd teamspeak3-server_linux_amd64

Если нужно, файл лицензии и фийл конфигурации помещаем в директорию (без файла лицензии доступно только 32 слота).

Запускаем:

./ts3server_minimal_runscript.sh

При запуске выполнятся первоначальные настройки и будет сгенерирован пароль и token, их копируем и сохраняем у себя.
Клавишами CTRL+C можно завершить процесс.

Помещаем другой скрипт запуска в автозагрузку:

/home/ПОЛЬЗОВАТЕЛЬ/teamspeak3-server_linux_amd64/ts3server_startscript.sh start

Пример cfg файлов:
ts3server.ini

machine_id=
default_voice_port=9987
voice_ip=0.0.0.0
licensepath=
filetransfer_port=30033
filetransfer_ip=0.0.0.0
query_port=10011
query_ip=0.0.0.0
dbplugin=ts3db_mysql
dbpluginparameter=ts3db_mysql.ini
dbsqlpath=sql/
dbsqlcreatepath=create_mysql/
logpath=logs
logquerycommands=1

ts3db_mysql.ini

[config]
host=localhost
port=3306
username=teamspeak
password=****
database=ts3db
socket=

Установка и использование Screen

GNU Screen — консольная утилита-мультиплексор, предоставляющая пользователю доступ к нескольким сессиям в рамках одной сессии.

Проверяем установлен ли в системе Screen:

which screen

Если установлен в строке появится путь установки, например /usr/bin/screenю. Если не установлен, устанавливаем:

sudo apt-get install screen

Чистый запуск Screen:

screen

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

screen команда

Подключение к screen-сессии:

screen –x

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

screen –x имясессии

Список запущенных сессий:

screen -ls

Подключение к указанной сессии:

screen -r ИМЯ

Создает сессию с указанным именем:

screen -S ИМЯ

Принудительное завершение сессии:

screen -S ИМЯ -X quit

Опишу возможные комбинации клавиш:
Ctrl + a c — Создать новое окно
Ctrl + a w — Выводит список номеров и заголовков всех окон в нижней строчке экрана
Ctrl + a » — Выводит список всех окон
Ctrl + a Номер окна — Выбор окна по номеру. Например, команда Ctrl + a и 0 делает текущим окно с номером 0
Ctlr + a n — Переключиться на следующее по порядку окно, или на первое окно если мы находились в последнем окне
Ctrl + a p — Переключиться на предыдущее по порядку окно, или на последнее окно если мы находились в первом окне
Ctrl + a ‘ — Вывести приглашение ввода номера окна для переключения
Ctrl + a Ctrl + a — Переключиться на последнее использованное окно
Ctrl + a N — Показать номер и заголовок текущего окна
Ctrl + a A — Установить заголовок текущего окна
Ctrl + a k — Принудительное закрытие окна, например, в случае если приложение не удается закрыть обычным способом
Ctrl + a d (detach) — Отсоединить консольную сессию
Ctrl + a z (suspend) — Отсоединить консольную сессию и оставить ее запущенной как фоновый процесс родительской командной оболочки. В этом случае для восстановления сессии кроме команд описанных ниже могут быть использованы стандартные команды управления фоновыми процессами командной оболочки
Ctrl + a ? — Справка обо всех комбинациях клавиш
Ctrl + a S — Разделить экран на два региона по горизонтали
Ctrl + a | — Разделить экран на два региона по вертикали
Ctrl + a Tab — Переход между регионами

Очистка 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;