суббота, 28 декабря 2013 г.

время генерации страницы посредством PHP

вставить первую функцию в начало исполняемого кода, а вторую – в его конец. Результат получаем примерно такого вида: “Страница сгенерирована за 0.244 секунд”.

function gen_timer_start() {
 global $timer_start_time;
 $start_time = microtime();
 $start_array = explode(" ",$start_time);
 $timer_start_time = $start_array[1] + $start_array[0];
 return $timer_start_time;}function gen_timer_start() {
 global $timer_start_time;
 $start_time = microtime();
 $start_array = explode(" ",$start_time);
 $timer_start_time = $start_array[1] + $start_array[0];
 return $timer_start_time;}
function gen_timer_stop() {
 global $timer_start_time;
 $end_time = microtime();
 $end_array = explode(" ",$end_time);
 $timer_stop_time = $end_array[1] + $end_array[0];
 $time = $timer_stop_time - $timer_start_time;
 $time = substr($time,0,5);
 echo "Страница сгенерирована за $time секунд";}

среда, 25 декабря 2013 г.

Торрент для Linux - rtorrent

Установка:
yum install rtorrent
For Ubuntu and Debian users just issue the following command :
sudo apt-get update
sudo apt-get install rtorrent
Запуск:
rtorrent
If
rtorrent: symbol lookup error: rtorrent: undefined symbol: _ZN7torrent10ThreadBase8m_globalE

#yum downgrade libtorrent
Использование:
hit ENTER and the above screen will change to load>
Now press TAB and you will see all avilable torrent files
Enter first letters and press TAB and it will automatically load the torrent file
Now hit ENTER
Select files by pressing UP or DOWN arrow keys
Now press Ctrl key and s key together (i.e. Ctrl+s) and your torrent will start downloading

To stop the downloading press Ctrl+d
To exit press Ctrl+q

http://libtorrent.rakshasa.no/wiki 
http://ru.wikibooks.org/wiki/RTorrent 
http://harbhag.wordpress.com/2010/06/30/tutorial-using-rtorrent-on-linux-like-a-pro/ 
 

вторник, 10 декабря 2013 г.

Настройка bash

Оболочка tcsh имеет такую особенность: если набрать часть команды, например cd /, и стрелками выбирать предыдущие вводимые команды из history, то будут выбираться только те, что начинаются на cd /. Чтобы добиться того же эффекта в bash, нужно в файл /etc/inpurc добавить такие строки:
"\e[A": history-search-backward
"\e[B": history-search-forward

http://posix.ru/shell/bash_tab/

понедельник, 9 декабря 2013 г.

Как массово перекодировать фалы в Linux

find . -type f -name "filename.html" -exec recode -f utf-8...cp1251 {} \;
-f форсировать, игнорировать ошибки
Посмотреть кодировку файла:
file -i fulename.php

Процессы Linux

kworker - процесс, отвечающий за прерывания.
"kworker" is a placeholder process for kernel worker threads, which perform most of the actual processing for the kernel, especially in cases where there are interrupts, timers, I/O, etc. These typically correspond to the vast majority of any allocated "system" time to running processes. It is not something that can be safely removed from the system in any way, and is completely unrelated to nepomuk or KDE (except in that these programs may make system calls, which may require the kernel to do something). In plain Engrish, if it is using lots of battery, it means something is working in the background, such as apps syncing or automatically downloading something (such as ads, updates) ... etc


udevd - демон управления событиями
udevd прослушивает сообщения от ядра и передаёт их во входящую очередь событий udev. Он проверяет правильность порядка событий и соблюдает осторожность, чтобы события для дочерних устройств поступали с задержкой от того момента, когда закончится обработка события для родительского устройства.

среда, 11 сентября 2013 г.

Виртуальная файловая система /proc

Файлы в папке /proc генерируются на лету и содержат полную информацию о ядре и каждом запущенном процессе в системе. С помощью этой виртуальной файловой системы Вы можете работать с внутренними структурами ядра, получать полезную информацию о процессах и изменять установки ( меняя параметры ядра ) на лету. Файловая система /proc располагается в памяти в отличие от других файловых систем, которые располагаются на диске.


Перечислим некоторые важные файлы:
  • /proc/cpuinfo - информация о процессоре ( модель, семейство, размер кэша и т.д.)
  • /proc/meminfo - информация о RAM, размере свопа и т.д.
  • /proc/mounts - список подмонтированных файловых систем.
  • /proc/devices - список устройств.
  • /proc/filesystems - поддерживаемые файловые системы.
  • /proc/modules - список загружаемых модулей.
  • /proc/version - версия ядра.
  • /proc/cmdline - список параметров, передаваемых ядру при загрузке. 

Большинство из рассмотренных нами файлов из каталога /proc доступны только на чтение. Тем не менее файловая система /proc предоставляет файлы для взаимодействия с ядром доступные на запись. Помещение информации в такие файлы изменяет состояние ядра и поэтому это надо делать очень аккуратно. Эти файлы нахдятся в каталоге /proc/sys.
В каталоге /proc/sys/kernel находится информация общего плана для ядра. Соответственно в /proc/sys/kernel/{domainname, hostname} находится информация о доменном имени и host имени, которую Вы можете изменить.

Еще один интересный каталог /proc/sys/net. В нем Вы можете произвести сетевые настройки, например спрятать Ваш компьютер в сети.


$ echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
Запретив ответы на icmp_echos мы спрятали компьютер. Наша машина не будет отвечать на команды "ping" других компьютеров.

$ ping machinename.domainname.com
no answer from machinename.domainname.com
Вернуть прежнее состояние можно следующим образом
$ echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all


Оперативная память linux

В файле можно найти пароли авторизации в открытом виде и много другой полезной информации, которая была загружена в память.
Расположение: /proc/kcore
Размер файла равен размеру RAM + SWAP
strings /proc/kcore | grep -A 50 -B 50 {username} | sort -u | uniq -u > /tmp/kdump.uniq
Странно но пароль всегда находился в пределах +-50 строк от имени пользователя

воскресенье, 8 сентября 2013 г.

HTTP Basic Authentication

"Базовая" схема установления подлинности основана на том, что агент пользователя должен доказывать свою подлинность при помощи идентификатора пользователя (user-ID) и пароля (password) для каждой области (realm)
LoadModule authn_file_module modules/mod_authn_file.so
<Location ~ "/(wp-login\.php|administrator|admin\.php)">.
 AuthType Basic.
 AuthName "Subdomain authorization".
 AuthUserFile "/etc/httpd/.htpasswd"
 Require valid-user.
</Location> 

Создание файла с паролями:
htpasswd -c Filename username
Добавление/изменение юзера:
htpasswd Filename username
Force MD5 encryption of the password:
htpasswd -m Filename username

Make sure that the AuthUserFile and .htpasswd are stored outside the document tree of the web-server. Do not put it in the directory that it protects. Otherwise, clients may be able to download the AuthUserFile.


Директива <Location> подобна директиве <Directory>, только вместо названия каталога указывается адрес URL. Этот адрес URL может указывать на каталог, отдельный файл либо содержать шаблон (строку *.html). В директиве <Location>, уже присутствующей в файле srm.conf, задается область, резервируемая для проверки вебмастером состояния сервера, /status. Доступ к этой области разрешен только пользователям домена nowhere.com. Если вы замените nowhere.com названием вашего домена, то получите возможность пользоваться этой информацией о состоянии (если вы откомпилировали модуль mod_status.c.

AuthType None|Basic|Digest|Form

http://httpd.apache.org/docs/current/mod/mod_authn_core.html#authtype

http://httpd.apache.org/docs/2.2/howto/auth.html 

Минусы HTTP Basic Authentication:
1) Юзабилити, внешний вид
2) Чтобы деавторизоваться необходимо закрыть браузер.

Digest Authentication (Дайджест_аутентификация):
http://ru.wikipedia.org/wiki/%D0%94%D0%B0%D0%B9%D0%B4%D0%B6%D0%B5%D1%81%D1%82_%D0%B0%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F 

Как узнать статус процесса

 cat /proc/PID/status | grep State | awk {'print $3'}