Archive for the ‘Linux’ Category

Watchdog для своих скриптов или проверка состояния процесса

По просьбе одного камрада. Хотя мне самому такая штука давно нужна, т.к. апач на одном серваке любит отвалиться 🙂
Постарался написать как можно короче, пхп тут постольку поскольку, основная работа на баше.
Вкратце, чего делает. Запрашивает пид у процесса с именем $processName, если возвращается пустая строка, то запускается скрипт по указанному пути $pathToScript

<?php
$processName = 'script.php';
$pathToScript = '/home/alex/script.php';
$check = exec("ps a | grep " .$processName. " | grep -v grep | awk '{print $1}'");
if(strlen($check) < 1){
	    exec("php ". $pathToScript ." ");
	} else {
	    echo 'all done\r\n';
	}

?>

По задумке ставится на минутный крон.

Изменить размер картинки пакетно

Без всяких сторонних библиотек и классов. Крайне просто и быстро. Нужна только imagemagick, стоит на большинстве дистрибутивов по дефолту.
Предварительно копируем:

cd /home/user/images
mkdir resized_images
cp /home/user/images/* /home/user/images/resized_images

Ресайзим с сохранением аспекта

mogrify -resize 800 *.jpg

Можно и с жестким размером

mogrify -resize 800×600! *.jpg

Линукс все-таки удобная штука!
Свалилось в ридер вот отсюда

P.S. У Уральского Жулика нашел интересный способ, как увеличить продажы в сапе и заодно оформить ссылки в блок аля директ:

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

Если не импортируется сертификат webmoney в firefox 3

Импортировал сертификат вебмани, постоянно выходила ошибка «Не удалось создать резервную копию файла PKCS#12 по неизвестным причинам.», и сохранить не удавалось. Решилось отключением всех плагинов к лисе.

Делаем squid непрозрачным

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

X-Forwarded-For
Via
Cache-Control

Первый говорит откуда перенаправлен запрос, второй рассказывает о самом прокси, третий косвенный, показывает настройки кеширования.
Отключается просто, в squid.conf добавляется запрет заголовков

header_access X-Forwarded-For deny all
header_access Via deny all
header_access Cache-Control deny all

И сквид становится анонимным элитным прокси, как любит говорить Пуховой

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

Вся инфа о процессе лежит тут:

cat /proc/PID/status

Покажет что-то типа этого:

Name:	gedit
State:	S (sleeping)
Tgid:	787
Pid:	787
PPid:	1
TracerPid:	0
Uid:	500	500	500	500
Gid:	100	100	100	100
FDSize:	64
Groups:	33 100 113
VmPeak:	  306596 kB
VmSize:	  306592 kB
VmLck:	       0 kB
VmHWM:	   37748 kB
VmRSS:	   37744 kB
VmData:	   36448 kB
VmStk:	     116 kB
VmExe:	     652 kB
VmLib:	   22848 kB
VmPTE:	     560 kB
Threads:	1
SigQ:	0/15992
SigPnd:	0000000000000000
ShdPnd:	0000000000000000
SigBlk:	0000000000000000
SigIgn:	0000000001001000
SigCgt:	00000001800004f0
CapInh:	0000000000000000
CapPrm:	0000000000000000
CapEff:	0000000000000000
CapBnd:	ffffffffffffffff
voluntary_ctxt_switches:	217142
nonvoluntary_ctxt_switches:	222001

Например, надо выдернуть текущее состояние скрипта:

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

$status будет (sleeping)

Вышла Mandriva Linux 2012 alpha 2

Клепают мандриву прям по часам, что в том году 7 февраля уже ставил, что в этом году. Молодцы, что тут еще сказать. Глянул чейнджлог, допиливают вовсю третий гном, который походу в spring версии уже будет. Еще усиленно пихают везде Zeitgeist, как по мне так тулза не очень, зачем надо смотреть, что я вчера слушал или какие документы открывал. Десктопный менеджер теперь наутилус, метасити убрали.

Все подробности тут

Vhosts и ext4

Установил LAMP, не могу зайти ни на один из прописанных к локалхосту доменов. Везде валится:

(13)Permission denied: /home/alex/work/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable

.htaccess там нет, одни индекс хтмлы.
Папка от простого юзера, 777 даже на нее проставил, ноль эффекта. А это походу какая фича(баг?) ext4. Отпустило после того, как я своей домашней папке (!) выставил chown своего же (!!) пользователя и до кучи права 755, которые там также стояли по дефолту(!!!)

Многопоточность в php

Оффициальной нет, сразу скажу. Есть только многочисленные костылики. Примеры, в основном, будут полезны в сео софте.

Встала вобщем задача передо мной — накатать многопоточный нескажу что, причем не просто многопоточный, а чтобы еще и потоками можно было управлять, как в том же делфи. То есть, чтобы можно было поток остановить, запустить, запауазить, возобновить и потоки еще должны оповещать о своем состоянии, мол в данный момент выполняю то-то. Read On…

css.php