aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config/backup/backup.inc47
-rw-r--r--config/backup/backup.tmp257
-rwxr-xr-xconfig/backup/backup_edit.tmp200
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'];?>&nbsp;
- </td>
- <td class="listr" ondblclick="document.location='backup_edit.php?id=<?=$i;?>';">
- <?=$ent['enabled'];?>&nbsp;
- </td>
- <td class="listbg" ondblclick="document.location='backup_edit.php?id=<?=$i;?>';">
- <font color="#FFFFFF"><?=htmlspecialchars($ent['description']);?>&nbsp;
- </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'];?>&nbsp;
+ </td>
+ <td class="listr" ondblclick="document.location='backup_edit.php?id=<?=$i;?>';">
+ <?=$ent['enabled'];?>&nbsp;
+ </td>
+ <td class="listbg" ondblclick="document.location='backup_edit.php?id=<?=$i;?>';">
+ <font color="#FFFFFF"><?=htmlspecialchars($ent['description']);?>&nbsp;
+ </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">&nbsp;</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">&nbsp;</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>