diff options
-rw-r--r-- | config/backup/backup.inc | 47 | ||||
-rw-r--r-- | config/backup/backup.tmp | 257 | ||||
-rwxr-xr-x | config/backup/backup_edit.tmp | 200 |
3 files changed, 249 insertions, 255 deletions
diff --git a/config/backup/backup.inc b/config/backup/backup.inc index b6adfbc9..13c62f26 100644 --- a/config/backup/backup.inc +++ b/config/backup/backup.inc @@ -33,51 +33,42 @@ function byte_convert( $bytes ) { + if ($bytes<=0) + return '0 Byte'; - if ($bytes<=0) - return '0 Byte'; - - $convention=1000; //[1000->10^x|1024->2^x] - $s=array('B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB'); - $e=floor(log($bytes,$convention)); - return round($bytes/pow($convention,$e),2).' '.$s[$e]; + $convention=1000; //[1000->10^x|1024->2^x] + $s=array('B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB'); + $e=floor(log($bytes,$convention)); + return round($bytes/pow($convention,$e),2).' '.$s[$e]; } function backup_sync_package_php() { - global $config; - if($config['installedpackages']['backup']['config'] != "") { - - conf_mount_rw(); - config_unlock(); - + global $config; + if($config['installedpackages']['backup']['config'] != "") { + conf_mount_rw(); foreach($config['installedpackages']['backup']['config'] as $rowhelper) { if ($rowhelper['enabled'] != "false") { //$tmp_php = base64_decode($rowhelper['php']); if (strlen($tmp_php) > 0) { $tmp .= "// name: ".$rowhelper['name']." \n"; - $tmp .= "// description: ".$rowhelper['description']." \n\n"; + $tmp .= "// description: ".$rowhelper['description']." \n\n"; $tmp .= base64_decode($rowhelper['php']); $tmp .= "\n"; } } - } - conf_mount_ro(); - - } + } } function php_sync_package() { - global $config; backup_sync_package_php(); - } @@ -86,47 +77,41 @@ function php_install_command() global $config; conf_mount_rw(); - config_lock(); if (!is_dir('/usr/local/www/packages/')) { exec("mkdir /usr/local/www/packages/"); } - + if (!is_dir('/usr/local/www/packages/backup/')) { exec("mkdir /usr/local/www/packages/backup/"); } - + //create the backup directory - if (!is_dir('/root/backup/')) { + if (!is_dir('/root/backup/')) { exec("mkdir /root/backup/"); } //rename PHP files from .tmp to .php exec("cp /tmp/backup.tmp /usr/local/www/packages/backup/backup.php"); unlink_if_exists("/tmp/backup.tmp"); - + exec("cp /tmp/backup_edit.tmp /usr/local/www/packages/backup/backup_edit.php"); unlink_if_exists("/tmp/backup_edit.tmp"); - + php_sync_package(); conf_mount_ro(); - config_unlock(); } function deinstall_command() { - conf_mount_rw(); - config_lock(); unlink_if_exists("/usr/local/pkg/backup.xml"); unlink_if_exists("/usr/local/pkg/backup.inc"); exec("rm /usr/local/www/packages/backup/"); conf_mount_ro(); - config_unlock(); - } ?>
\ No newline at end of file diff --git a/config/backup/backup.tmp b/config/backup/backup.tmp index 10e03db3..3cada9b3 100644 --- a/config/backup/backup.tmp +++ b/config/backup/backup.tmp @@ -30,26 +30,30 @@ require("guiconfig.inc"); require("/usr/local/pkg/backup.inc"); -$a_backup = &$config['installedpackages']['backup']['config']; +$a_backup = &$config['installedpackages']['backup']['config']; if ($_GET['act'] == "del") { - if ($_GET['type'] == 'backup') { - if ($a_backup[$_GET['id']]) { - unset($a_backup[$_GET['id']]); - write_config(); - header("Location: backup.php"); - exit; - } - } + if ($_GET['type'] == 'backup') { + if ($a_backup[$_GET['id']]) { + conf_mount_rw(); + unset($a_backup[$_GET['id']]); + write_config(); + header("Location: backup.php"); + conf_mount_ro(); + exit; + } + } } if ($_GET['a'] == "download") { if ($_GET['t'] == "backup") { + conf_mount_rw(); + $tmp = '/root/backup/'; $filename = 'pfsense.bak.tgz'; //system('cd /usr/local/;tar cvzf /root/backup/pfsense.bak.tgz freeswitch'); - + $i = 0; if (count($a_backup) > 0) { $backup_cmd = 'tar --create --verbose --gzip --file '.$tmp.$filename.' --directory / '; @@ -59,48 +63,52 @@ if ($_GET['a'] == "download") { //htmlspecialchars($ent['path']); //htmlspecialchars($ent['description']); $backup_cmd .= htmlspecialchars($ent['path']).' '; - - } + } $i++; - } - //echo $backup_cmd; //exit; - system($backup_cmd); - } - + } + //echo $backup_cmd; //exit; + system($backup_cmd); + } + session_cache_limiter('public'); $fd = fopen($tmp.$filename, "rb"); header("Content-Type: binary/octet-stream"); header("Content-Length: " . filesize($tmp.$filename)); header('Content-Disposition: attachment; filename="'.$filename.'"'); fpassthru($fd); + + conf_mount_ro(); exit; } } if ($_GET['a'] == "other") { - if ($_GET['t'] == "restore") { - $tmp = '/root/backup/'; - $filename = 'pfsense.bak.tgz'; - - //extract the tgz file - if (file_exists('/root/backup/'.$filename)) { - //echo "The file $filename exists"; - system('cd /; tar xvpfz /root/backup/'.$filename.' '); - header( 'Location: backup.php?savemsg=Backup+has+been+restored.' ) ; - } - else { - header( 'Location: backup.php?savemsg=Restore+failed.+Backup+file+not+found.' ) ; - } - - exit; - } + if ($_GET['t'] == "restore") { + conf_mount_rw(); + $tmp = '/root/backup/'; + $filename = 'pfsense.bak.tgz'; + + //extract the tgz file + if (file_exists('/root/backup/'.$filename)) { + //echo "The file $filename exists"; + system('cd /; tar xvpfz /root/backup/'.$filename.' '); + header( 'Location: backup.php?savemsg=Backup+has+been+restored.' ) ; + } + else { + header( 'Location: backup.php?savemsg=Restore+failed.+Backup+file+not+found.' ) ; + } + conf_mount_ro(); + exit; + } } if (($_POST['submit'] == "Upload") && is_uploaded_file($_FILES['ulfile']['tmp_name'])) { - $filename = 'pfsense.bak.tgz'; + conf_mount_rw(); + $filename = 'pfsense.bak.tgz'; move_uploaded_file($_FILES['ulfile']['tmp_name'], "/root/backup/" . $filename); $savemsg = "Uploaded file to /root/backup/" . htmlentities($_FILES['ulfile']['name']); system('cd /; tar xvpfz /root/backup/'.$filename.' '); + conf_mount_ro(); } @@ -115,7 +123,7 @@ include("head.inc"); <?php if ($_GET["savemsg"]) { - print_info_box($_GET["savemsg"]); + print_info_box($_GET["savemsg"]); } ?> @@ -123,60 +131,59 @@ if ($_GET["savemsg"]) { <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr><td class="tabnavtbl"> <?php - + $tab_array = array(); $tab_array[] = array(gettext("Settings"), true, "/packages/backup/backup.php"); display_top_tabs($tab_array); - + ?> </td></tr> </table> <table width="100%" border="0" cellpadding="0" cellspacing="0"> - <tr> - <td class="tabcont" > + <tr> + <td class="tabcont" > <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td> - <p> + <p> Use this to tool to backup files and directories. The following directories are recommended for backup. - + <table> <tr><td><strong>pfSense Config</strong></td><td>/cf/conf</td></tr> <tr><td><strong>RRD Graph Data Files</strong></td><td>/var/db/rrd</td></tr> </table> - </p> + </p> </td> </tr> </table> <br/> <br/> - + <div id="niftyOutter"> - + <form action="backup.php" method="POST" enctype="multipart/form-data" name="frmUpload" onSubmit=""> - <table width='100%' width='690' cellpadding='0' cellspacing='0' border='0'> - <tr><td align='left' colspan='4'><strong>Upload and Restore</strong></td></tr> - <tr> - <td colspan='2'>Use this to upload and restore your backup file.</td> - <td align="right">File to upload:</td> - <td width='50%' valign="top" align='right' class="label"> - <input name="ulfile" type="file" class="button" id="ulfile"> - </td> - <td valign="top" class="label"> - <input name="submit" type="submit" class="button" id="upload" value="Upload"> - </td> - </tr> - - </table> - <br /> - <br /> + <table width='100%' width='690' cellpadding='0' cellspacing='0' border='0'> + <tr><td align='left' colspan='4'><strong>Upload and Restore</strong></td></tr> + <tr> + <td colspan='2'>Use this to upload and restore your backup file.</td> + <td align="right">File to upload:</td> + <td width='50%' valign="top" align='right' class="label"> + <input name="ulfile" type="file" class="button" id="ulfile"> + </td> + <td valign="top" class="label"> + <input name="submit" type="submit" class="button" id="upload" value="Upload"> + </td> + </tr> + </table> + <br /> + <br /> </div> </form> - + <?php echo "<table width='690' cellpadding='0' cellspacing='0' border='0'>\n"; @@ -197,7 +204,7 @@ if ($_GET["savemsg"]) { echo "</table>\n"; echo "<br /><br />\n\n"; - + echo " <form action='backup.php' method='post' name='iform' id='iform'>\n"; @@ -213,22 +220,22 @@ if ($config_change == 1) { //endif; ?> - - <table width="100%" border="0" cellpadding="0" cellspacing="0"> - <tr> - <td width="30%" class="listhdrr">Name</td> - <td width="20%" class="listhdrr">Enabled</td> - <td width="40%" class="listhdr">Description</td> - <td width="10%" class="list"> - - <table border="0" cellspacing="0" cellpadding="1"> - <tr> - <td width="17"></td> - <td valign="middle"><a href="backup_edit.php"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td> - </tr> - </table> - - </td> + + <table width="100%" border="0" cellpadding="0" cellspacing="0"> + <tr> + <td width="30%" class="listhdrr">Name</td> + <td width="20%" class="listhdrr">Enabled</td> + <td width="40%" class="listhdr">Description</td> + <td width="10%" class="list"> + + <table border="0" cellspacing="0" cellpadding="1"> + <tr> + <td width="17"></td> + <td valign="middle"><a href="backup_edit.php"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td> + </tr> + </table> + + </td> </tr> @@ -236,55 +243,55 @@ if ($config_change == 1) { $i = 0; if (count($a_backup) > 0) { - - foreach ($a_backup as $ent) { - + + foreach ($a_backup as $ent) { + ?> - <tr> - <td class="listr" ondblclick="document.location='backup_edit.php?id=<?=$i;?>';"> - <?=$ent['name'];?> - </td> - <td class="listr" ondblclick="document.location='backup_edit.php?id=<?=$i;?>';"> - <?=$ent['enabled'];?> - </td> - <td class="listbg" ondblclick="document.location='backup_edit.php?id=<?=$i;?>';"> - <font color="#FFFFFF"><?=htmlspecialchars($ent['description']);?> - </td> - <td valign="middle" nowrap class="list"> - <table border="0" cellspacing="0" cellpadding="1"> - <tr> - <td valign="middle"><a href="backup_edit.php?id=<?=$i;?>"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" width="17" height="17" border="0"></a></td> - <td><a href="backup_edit.php?type=backup&act=del&id=<?=$i;?>" onclick="return confirm('Do you really want to delete this?')"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0"></a></td> - </tr> - </table> - </td> - </tr> - <?php - - $i++; - } + <tr> + <td class="listr" ondblclick="document.location='backup_edit.php?id=<?=$i;?>';"> + <?=$ent['name'];?> + </td> + <td class="listr" ondblclick="document.location='backup_edit.php?id=<?=$i;?>';"> + <?=$ent['enabled'];?> + </td> + <td class="listbg" ondblclick="document.location='backup_edit.php?id=<?=$i;?>';"> + <font color="#FFFFFF"><?=htmlspecialchars($ent['description']);?> + </td> + <td valign="middle" nowrap class="list"> + <table border="0" cellspacing="0" cellpadding="1"> + <tr> + <td valign="middle"><a href="backup_edit.php?id=<?=$i;?>"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" width="17" height="17" border="0"></a></td> + <td><a href="backup_edit.php?type=backup&act=del&id=<?=$i;?>" onclick="return confirm('Do you really want to delete this?')"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0"></a></td> + </tr> + </table> + </td> + </tr> + <?php + + $i++; + } } - ?> - - <tr> - <td class="list" colspan="3"></td> - <td class="list"> - <table border="0" cellspacing="0" cellpadding="1"> - <tr> - <td width="17"></td> - <td valign="middle"><a href="backup_edit.php"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td> - </tr> - </table> - </td> - </tr> - - - <tr> - <td class="list" colspan="3"></td> - <td class="list"></td> - </tr> - </table> - + ?> + + <tr> + <td class="list" colspan="3"></td> + <td class="list"> + <table border="0" cellspacing="0" cellpadding="1"> + <tr> + <td width="17"></td> + <td valign="middle"><a href="backup_edit.php"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td> + </tr> + </table> + </td> + </tr> + + + <tr> + <td class="list" colspan="3"></td> + <td class="list"></td> + </tr> + </table> + </form> diff --git a/config/backup/backup_edit.tmp b/config/backup/backup_edit.tmp index 69d63866..12020556 100755 --- a/config/backup/backup_edit.tmp +++ b/config/backup/backup_edit.tmp @@ -5,17 +5,17 @@ backup_edit.php Copyright (C) 2008 Mark J Crane All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE @@ -32,7 +32,7 @@ require("guiconfig.inc"); require("/usr/local/pkg/backup.inc"); -$a_backup = &$config['installedpackages']['backup']['config']; +$a_backup = &$config['installedpackages']['backup']['config']; $id = $_GET['id']; if (isset($_POST['id'])) { @@ -40,15 +40,17 @@ if (isset($_POST['id'])) { } if ($_GET['act'] == "del") { - if ($_GET['type'] == 'backup') { - if ($a_backup[$_GET['id']]) { - unset($a_backup[$_GET['id']]); - write_config(); - php_sync_package(); - header("Location: backup.php"); - exit; - } - } + if ($_GET['type'] == 'backup') { + if ($a_backup[$_GET['id']]) { + conf_mount_rw(); + unset($a_backup[$_GET['id']]); + write_config(); + php_sync_package(); + header("Location: backup.php"); + conf_mount_ro(); + exit; + } + } } if (isset($id) && $a_backup[$id]) { @@ -57,7 +59,7 @@ if (isset($id) && $a_backup[$id]) { $pconfig['path'] = $a_backup[$id]['path']; $pconfig['enabled'] = $a_backup[$id]['enabled']; $pconfig['description'] = $a_backup[$id]['description']; - + } if ($_POST) { @@ -66,11 +68,11 @@ if ($_POST) { $pconfig = $_POST; if (!$input_errors) { - + $ent = array(); $ent['name'] = $_POST['name']; - $ent['path'] = $_POST['path']; - $ent['enabled'] = $_POST['enabled']; + $ent['path'] = $_POST['path']; + $ent['enabled'] = $_POST['enabled']; $ent['description'] = $_POST['description']; if (isset($id) && $a_backup[$id]) { @@ -78,13 +80,13 @@ if ($_POST) { $a_backup[$id] = $ent; } else { - //add + //add $a_backup[] = $ent; } - + write_config(); php_sync_package(); - + header("Location: backup.php"); exit; } @@ -112,98 +114,98 @@ function show_advanced_config() { <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr><td class="tabnavtbl"> <?php - + $tab_array = array(); $tab_array[] = array(gettext("Settings"), false, "/packages/backup/backup.php"); display_top_tabs($tab_array); - + ?> </td></tr> </table> <table width="100%" border="0" cellpadding="0" cellspacing="0"> - <tr> - <td class="tabcont" > + <tr> + <td class="tabcont" > <!-- - <table width="100%" border="0" cellpadding="6" cellspacing="0"> - <tr> - <td><p><span class="vexpl"><span class="red"><strong>PHP<br> - </strong></span> - </p></td> - </tr> - </table> - --> - <br /> - - <form action="backup_edit.php" method="post" name="iform" id="iform"> - <table width="100%" border="0" cellpadding="6" cellspacing="0"> - - <tr> - <td width="25%" valign="top" class="vncellreq">Name</td> - <td width="75%" class="vtable"> + <table width="100%" border="0" cellpadding="6" cellspacing="0"> + <tr> + <td><p><span class="vexpl"><span class="red"><strong>PHP<br> + </strong></span> + </p></td> + </tr> + </table> + --> + <br /> + + <form action="backup_edit.php" method="post" name="iform" id="iform"> + <table width="100%" border="0" cellpadding="6" cellspacing="0"> + + <tr> + <td width="25%" valign="top" class="vncellreq">Name</td> + <td width="75%" class="vtable"> <input name="name" type="text" class="formfld" id="name" size="40" value="<?=htmlspecialchars($pconfig['name']);?>"> - </td> - </tr> + </td> + </tr> - <tr> + <tr> <td width="22%" valign="top" class="vncellreq">Path</td> <td width="78%" class="vtable"> - <input name="path" type="text" class="formfld" id="path" size="40" value="<?=htmlspecialchars($pconfig['path']);?>"> + <input name="path" type="text" class="formfld" id="path" size="40" value="<?=htmlspecialchars($pconfig['path']);?>"> </td> - </tr> - <tr> - <td width="22%" valign="top" class="vncellreq">Enabled</td> - <td width="78%" class="vtable"> - <?php - echo " <select name='enabled' class='formfld'>\n"; - echo " <option></option>\n"; - switch (htmlspecialchars($pconfig['enabled'])) { - case "true": - echo " <option value='true' selected='yes'>true</option>\n"; - echo " <option value='false'>false</option>\n"; - break; - case "false": - echo " <option value='true'>true</option>\n"; - echo " <option value='false' selected='yes'>false</option>\n"; - - break; - default: - echo " <option value='true' selected='yes'>true</option>\n"; - echo " <option value='false'>false</option>\n"; - } - echo " </select>\n"; - ?> - </td> - </tr> - <tr> - <td width="25%" valign="top" class="vncellreq">Description</td> - <td width="75%" class="vtable"> - <input name="description" type="text" class="formfld" id="description" size="40" value="<?=htmlspecialchars($pconfig['description']);?>"> - <br><span class="vexpl">Enter the description here.<br></span> - </td> - </tr> - - <tr> - <td valign="top"> </td> - <td> - <input name="Submit" type="submit" class="formbtn" value="Save"> <input class="formbtn" type="button" value="Cancel" onclick="history.back()"> - <?php if (isset($id) && $a_backup[$id]): ?> - <input name="id" type="hidden" value="<?=$id;?>"> - <?php endif; ?> - </td> - </tr> - </table> - </form> - - <br> - <br> - <br> - <br> - <br> - <br> - - </td> - </tr> + </tr> + <tr> + <td width="22%" valign="top" class="vncellreq">Enabled</td> + <td width="78%" class="vtable"> + <?php + echo " <select name='enabled' class='formfld'>\n"; + echo " <option></option>\n"; + switch (htmlspecialchars($pconfig['enabled'])) { + case "true": + echo " <option value='true' selected='yes'>true</option>\n"; + echo " <option value='false'>false</option>\n"; + break; + case "false": + echo " <option value='true'>true</option>\n"; + echo " <option value='false' selected='yes'>false</option>\n"; + + break; + default: + echo " <option value='true' selected='yes'>true</option>\n"; + echo " <option value='false'>false</option>\n"; + } + echo " </select>\n"; + ?> + </td> + </tr> + <tr> + <td width="25%" valign="top" class="vncellreq">Description</td> + <td width="75%" class="vtable"> + <input name="description" type="text" class="formfld" id="description" size="40" value="<?=htmlspecialchars($pconfig['description']);?>"> + <br><span class="vexpl">Enter the description here.<br></span> + </td> + </tr> + + <tr> + <td valign="top"> </td> + <td> + <input name="Submit" type="submit" class="formbtn" value="Save"> <input class="formbtn" type="button" value="Cancel" onclick="history.back()"> + <?php if (isset($id) && $a_backup[$id]): ?> + <input name="id" type="hidden" value="<?=$id;?>"> + <?php endif; ?> + </td> + </tr> + </table> + </form> + + <br> + <br> + <br> + <br> + <br> + <br> + + </td> + </tr> </table> </div> |