0) { $backup_cmd = 'tar --create --verbose --gzip --file '.$tmp.$filename.' --directory / '; foreach ($a_backup as $ent) { if ($ent['enabled'] == "true") { //htmlspecialchars($ent['name']); //htmlspecialchars($ent['path']); //htmlspecialchars($ent['description']); $backup_cmd .= htmlspecialchars($ent['path']).' '; } $i++; } //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") { 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'])) { 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(); } include("head.inc"); ?>

Backup: Files & Directories

\n"; echo "\n"; echo "\n"; echo "\n"; echo "

Use this to tool to backup files and directories. The following directories are recommended for backup.
pfSense Config/cf/conf
RRD Graph Data Files/var/db/rrd



Upload and Restore
Use this to upload and restore your backup file. File to upload:


\n"; echo "
\n"; echo "Backup / Restore
\n"; echo "The 'backup' button will tar gzip the directories that are listed below to /root/backup/pfsense.bak.tgz it then presents a file to download. \n"; echo "If the backup file does not exist in /root/backup/pfsense.bak.tgz then the 'restore' button will be hidden. \n"; echo "

\n"; echo "
\n"; echo " \n"; if (file_exists('/root/backup/pfsense.bak.tgz')) { echo " \n"; } echo "
\n"; echo "

\n\n"; echo "
\n"; if ($config_change == 1) { write_config(); $config_change = 0; } //if ($savemsg) print_info_box($savemsg); //if (file_exists($d_hostsdirty_path)): echo"

"; //print_info_box_np("This is an info box."); //echo"
"; //endif; ?> 0) { foreach ($a_backup as $ent) { ?>
Name Enabled Description