forked from extern/egroupware
Added in new experimental toy to create ram disk and copy a phpgroupware install to it.
This commit is contained in:
parent
e3256b2f1a
commit
6b3a39b639
87
phpgwapi/doc/create_ramdisk.php.txt
Normal file
87
phpgwapi/doc/create_ramdisk.php.txt
Normal file
@ -0,0 +1,87 @@
|
||||
<?php
|
||||
/**************************************************************************\
|
||||
* phpGroupWare - Experimental tools *
|
||||
* http://www.phpgroupware.org *
|
||||
* Written by Joseph Engo <jengo@phpgroupware.org> *
|
||||
* -------------------------------------------- *
|
||||
* This program is free software; you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU General Public License as published by the *
|
||||
* Free Software Foundation; either version 2 of the License, or (at your *
|
||||
* option) any later version. *
|
||||
\**************************************************************************/
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* !!! WARNING !!!
|
||||
** This is highley experimental! Do NOT run it unless you know what you are doing!
|
||||
** You can serious screaw things up!
|
||||
**
|
||||
** Requirements:
|
||||
** - Must be run as root
|
||||
** - You need to have RAM disk support complied into the kernel
|
||||
** - You have to have the CGI binary for PHP
|
||||
** - This ONLY works with Linux
|
||||
** - The 2.2 kernel is limited to 20 RAM disks, so you will have to cut down on what you copy over
|
||||
** - I wouldn't run this on a server with less then 196 MB of RAM. If it has less, preformance
|
||||
** will only decrease. Since proccess will need to swap out to disk.
|
||||
**
|
||||
** The phpGroupWare development team does not support this program in anyway. If it breaks
|
||||
** or messes up your system, don't email us. Don't submit bug reports. If you do find ways to make
|
||||
** it better, please submit patches directly to me. jengo@phpgroupware.org
|
||||
*/
|
||||
|
||||
$debug = True;
|
||||
|
||||
// Locations of your perminate copy, you will need it to be setup already
|
||||
define('HARD_COPY','/home/jengo/public_html');
|
||||
// Where you want your install to be
|
||||
define('RAM_COPY','/var/www/html');
|
||||
|
||||
function command($command)
|
||||
{
|
||||
global $debug;
|
||||
|
||||
if ($debug)
|
||||
{
|
||||
echo $command . "\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
system($command);
|
||||
}
|
||||
}
|
||||
|
||||
command('mke2fs /dev/ram0 200');
|
||||
command('mkdir ' . RAM_COPY . '/phpgroupware');
|
||||
command('mount -t ext2 /dev/ram0 ' . RAM_COPY . '/phpgroupware');
|
||||
command('cp ' . HARD_COPY . '/phpgroupware/* ' . RAM_COPY . '/phpgroupware');
|
||||
|
||||
$ram_drive_num = 1;
|
||||
$dh = opendir(HARD_COPY . '/phpgroupware/');
|
||||
while ($file = readdir($dh))
|
||||
{
|
||||
// The 2.2 kernel can only have 20 ram disks
|
||||
if ($ram_drive_num == 21)
|
||||
{
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($file != '.' && $file != '..' && $file != 'CVS' && $file != 'phpgroupware' && is_dir($file))
|
||||
{
|
||||
$_du_string = 'du -s ' . HARD_COPY . '/phpgroupware/' . $file;
|
||||
$_du = `$_du_string`;;
|
||||
preg_match('/(\w+)\s/',$_du,$du);
|
||||
$du_size = ereg_replace(' ','',$du[0]);
|
||||
|
||||
// Make it slighty larger, so the files copy correctly
|
||||
$du_size = $du_size + 400;
|
||||
|
||||
command('mke2fs /dev/ram' . $ram_drive_num . ' ' . $du_size);
|
||||
command('mkdir ' . RAM_COPY . '/phpgroupware/' . $file);
|
||||
command('mount -t ext2 /dev/ram' . $ram_drive_num . ' ' . RAM_COPY . '/phpgroupware/' . $file);
|
||||
command('cp -R ' . HARD_COPY . '/phpgroupware/' . $file . ' ' . RAM_COPY . '/phpgroupware/' . $file);
|
||||
|
||||
$ram_drive_num++;
|
||||
echo "\n";
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user