Наложение watermark на изображение в консоли

В системе должен стоять пакет ImageMagick
В консоли делается так
$convert image.jpg -gravity SouthEast watermark.png -composite image.jpg

Из php соответственно так
exec('/usr/bin/convert '.$image_path.' -gravity SouthEast '.$watermark_path.' -composite '.$image_path)

Путь к бинарнику может отличатся в разных системах. В данном примере путь корректен для Linux. Для FreeBSD это будет /usr/local/bin/convert.

Работа с сервисами в Debian

Оказывается в debian и ubuntu можно поставить такую же утилиту service как и в RH/CentOS/Fedora.
Для этого нужно просто поставить пакет:
#aptitude install sysvconfig

Еще одно решение для пуcтых папок в Mercurial

Продолжение темы поднятой в статьях Часть1 и часть2

Написал небольшой скрипт который сканирует рабочий проект и рядом в файлик складывает названия пустых папок, который при необходимости можно подправить руками. Если запустить скрипт с флагом create, то он создаст все эти папки.

( Читать дальше )

Бекап на лету

Скрипт создает архив заданной директории, и тут же пишет его на FTP, при этом не создавая файла архива локально.
#! /usr/env/php
<?php
define('DIR', '/home/www');
define('FTP_HOST','');
define('FTP_PORT',21);
define('FTP_USER','');
define('FTP_PASSWD','');
define('FTP_USE_PASSIV_MODE',true);


$ftp_stream = ftp_connect(FTP_HOST,FTP_PORT);
ftp_login($ftp_stream,FTP_USER, FTP_PASSWD);
ftp_pasv($ftp_stream,FTP_USE_PASSIV_MODE);

$h = popen('tar cjf - '.DIR, 'rb');

ftp_fput($ftp_stream, 'test.tar.bz2', $h, FTP_BINARY);
ftp_close($ftp_stream);
pclose($h);
?>

Автоматический бекап

Знаю что для этого есть уже достаточно инструментов. Но мне захотелось написать свой. Скрипт собирает папку home в нее докидывает дамп отдельно каждой базы и отсылает на ftp, при этом предварительно зашифровав файл
<?php
define('USER_DB','');
define('PASS_DB', '');
define('HOST_DB', '');

define('FTP_HOST', '');
define('FTP_USER', '');
define('FTP_PASS', '');

define('ENCODE_PASS', '');//пароль для кодирования файла
define('U_NAME', date('Y_m_d')); //используется для именования папок и файлов


exec('mkdir /backup/'.U_NAME);

exec('cp -r /home /backup/'.U_NAME);

exec('mkdir /backup/'.U_NAME.'/db');
$link = mysql_connect(HOST_DB, USER_DB, PASS_DB);
$db_list = mysql_list_dbs($link);

while ($row = mysql_fetch_object($db_list)) {
     exec('mysqldump -u'.USER_DB.' -p'.PASS_DB.' '.$row->Database.' > /backup/'.U_NAME.'/db/'.$row->Database.'.sql');
}

//exec('tar czf /backup/'.date('Y_m_d').'.tar.gz'.' /backup/'.date('Y_m_d'));
exec('tar czf - /backup/'.U_NAME.' | openssl enc -e -aes-256-cbc -k '.ENCODE_PASS.' > /backup/'.U_NAME.'.tar.gz.encoded');


exec('rm -R /backup/'.U_NAME);

$r = ftp_connect(FTP_HOST);
ftp_login($r, FTP_USER, FTP_PASS);
ftp_put($r, '/backup/'. U_NAME.'.tar.gz.encoded','/backup/'.U_NAME.'.tar.gz.encoded', FTP_BINARY);
ftp_close($r);

exec('rm /backup/'.U_NAME.'.tar.gz.encoded');


//openssl enc -d -aes-256-cbc -in ./archive.tar.gz.encoded | tar -xz    - обратная расшифровка
  • 0
  • 19 октября 2009, 13:02
  • admin
  • 1+1

Мультизагрузка файлов на обменники

image
Хотел бы представить свой стартап unextupload.com. Вы можете загрузить на него один раз файл и разбросать его на самые популярные файловые обменники, на данный момент их семь:

— Rapidshare.com
— Depositfiles.com
— Uploadbox.com
— Uploading.com
— Turbobit.net
— Upload.com.ua
— Letitbit.net


( Читать дальше )
  • 0
  • 29 сентября 2009, 18:49
  • admin
  • 1+1

Репозитории для Qutim (Ubuntu 9.04)

deb http://qutim.org/debian/jaunty jaunty main
deb-src http://qutim.org/debian/jaunty jaunty main

Настройка ProFTPd с MySQL


Задача: настроить ftp сервер который берет юзеров из базы. При этом все операции с файлами юзеров логирует.
Таких мануалов в сети море, но ни одного свежего и работающего я чеcтно говоря не нашел. Данный мануал по большому счету скопирован из мануала под FreeBSD от лисяры. Но адаптирован под Debian Lenny.
Устанавливаем пакет proftpd-mod-mysql:
aptitude install proftpd-mod-mysql


( Читать дальше )

Локализация Debian Lenny

Это опять пост больше для себя — как напоминалка. Если вы закажете себе выделенный сервер, то первое с чего стоит начать, так это с установки локали. Делается это так
# dpkg-reconfigure locales
Но скорее всего вам сначала понадобится установить эти самые локали:
# apt-get install locales

Это все!

Kohana в командной строке

Недавно искал способ написания батчей для Kohana и вот нашел способ на форуме который незадокументирован.
php index.php class/method

Роуты действуют также как в вебе, поэтому можно писать как угодно.