[! use strict; use Proxmox::Form; use Proxmox::Utils; use Proxmox::Config::System; use Proxmox::ConfigServer; use Proxmox::License; use Proxmox::RStorage; !] [- my $system_cfg = $fdat{__system_config}; my $lic = $system_cfg->{license}; if ($lic->no_backup()) { my $msg = $lic->no_backup(); my $out = "

" . __("Unsupported feature!") . "


"; $out .= "

$msg

"; print OUT $out; return; } my $frm = Proxmox::Form->new (\%fdat); my $system_cfg = $fdat{__system_config}; my $conn = Proxmox::ConfigClient::connect (); $fdat{storagetype} = $system_cfg->get ('backup', 'storagetype') if !defined ($fdat{storagetype}); my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime (time); my $bkdir = "/var/www/proxmox/tmp"; unlink <$bkdir/proxmox_backup_*.tgz>; # fixme: remove this in V 1.7 unlink <$bkdir/proxmox-backup_*.tgz>; my $bkfile = sprintf ("proxmox-backup_%04d_%02d_%02d.tgz", $year + 1900, $mon + 1, $mday); mkdir $bkdir; $conn->proxmox_backup ("$bkdir/$bkfile"); my $lnk = "/tmp/$bkfile"; $lnk = "?action=nowr" if ($udat{AM} ne 'w'); $frm->add_element(__("Download Backup"), "link", $lnk, ""); $frm->add_element("section_schedule", "section", undef, __("Scheduled Backup")); $frm->add_element('storagetype', "dynamicdropdown", '', __("Storage type"), [['', __('Disable scheduled backups')], ['ftp', 'FTP'], ['smb', 'Windows share']]); if ($fdat{storagetype}) { $frm->add_cfg_element('backup', 'backuptime', "time", undef, __("Backup time")); $frm->add_cfg_element('backup', 'purgeage', "number", 0, __("Delete files older than X days")); if ($fdat{storagetype} eq 'ftp') { $frm->add_cfg_element('backup', 'ftphost', "text", "", __("Host")); $frm->add_cfg_element('backup', 'ftpdir', "text", "", __("Directory")); $frm->add_cfg_element('backup', 'ftpusername', "text", "", __("Username")); $frm->add_cfg_element('backup', 'ftppassword', "password", "", __("Password")); } else { $frm->add_cfg_element('backup', 'smbhost', "text", "", __("Host")); $frm->add_cfg_element('backup', 'smbshare', "text", "", __("Share")); $frm->add_cfg_element('backup', 'smbworkgroup', "text", "", __("Workgroup")); $frm->add_cfg_element('backup', 'smbusername', "text", "", __("Username")); $frm->add_cfg_element('backup', 'smbpassword', "password", "", __("Password")); } } if ($udat{action}) { if ($udat{AM} eq 'w') { } else { $udat{popup_error} = Proxmox::Utils::msg ('nowr'); } } if ($frm->submit==0) { $frm->load_cfg ($system_cfg); } else { if ($udat{AM} eq 'w') { $system_cfg->set ('backup', 'storagetype', $fdat{storagetype}); $frm->save_cfg ($system_cfg); my $conn = Proxmox::ConfigClient::connect (); $conn->rewrite_config_cron (); if ($fdat{storagetype}) { # do a simple test eval { my $storage = Proxmox::RStorage->new_from_config ($system_cfg); $storage->close (); }; $udat{popup_error} = $@ if $@; } } else { $udat{popup_error} = Proxmox::Utils::msg ('nowr'); } } print OUT $frm->out_form; -]