Скрипт создает архив заданной директории, и тут же пишет его на 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);
?>