⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hostinfo.pm

📁 老外写的linux下的文件备份软件
💻 PM
📖 第 1 页 / 共 2 页
字号:
    <td align="center" class="border"> $ltype </td>    <td align="center" class="border"> $is_compress </td>    <td align="right" class="border">  $MBExist </td>    <td align="right" class="border">  $MBExistComp </td>    <td align="right" class="border">  $ExistComp </td>    <td align="right" class="border">  $MBNew </td>    <td align="right" class="border">  $MBNewComp </td>    <td align="right" class="border">  $NewComp </td></tr>EOF        $errStr .= <<EOF;<tr><td align="center" class="border"> <a href="$browseURL">$Backups[$i]{num}</a> </td>    <td align="center" class="border"> $ltype </td>    <td align="center" class="border"> <a href="$MyURL?action=view&type=XferLOG&num=$Backups[$i]{num}&host=${EscURI($host)}">$Lang->{XferLOG}</a>,                      <a href="$MyURL?action=view&type=XferErr&num=$Backups[$i]{num}&host=${EscURI($host)}">$Lang->{Errors}</a> </td>    <td align="right" class="border">  $Backups[$i]{xferErrs} </td>    <td align="right" class="border">  $Backups[$i]{xferBadFile} </td>    <td align="right" class="border">  $Backups[$i]{xferBadShare} </td>    <td align="right" class="border">  $Backups[$i]{tarErrs} </td></tr>EOF    }    my @Restores = $bpc->RestoreInfoRead($host);    my $restoreStr;    for ( my $i = 0 ; $i < @Restores ; $i++ ) {        my $startTime = timeStamp2($Restores[$i]{startTime});        my $dur       = $Restores[$i]{endTime} - $Restores[$i]{startTime};        $dur          = 1 if ( $dur <= 0 );        my $duration  = sprintf("%.1f", $dur / 60);        my $MB        = sprintf("%.1f", $Restores[$i]{size} / (1024*1024));        my $MBperSec  = sprintf("%.2f", $Restores[$i]{size} / (1024*1024*$dur));        my $Restores_Result = $Lang->{failed};        if ($Restores[$i]{result} ne "failed") { $Restores_Result = $Lang->{success}; }        $restoreStr  .= <<EOF;<tr><td align="center" class="border"><a href="$MyURL?action=restoreInfo&num=$Restores[$i]{num}&host=${EscURI($host)}">$Restores[$i]{num}</a> </td>    <td align="center" class="border"> $Restores_Result </td>    <td align="right" class="border"> $startTime </td>    <td align="right" class="border"> $duration </td>    <td align="right" class="border"> $Restores[$i]{nFiles} </td>    <td align="right" class="border"> $MB </td>    <td align="right" class="border"> $Restores[$i]{tarCreateErrs} </td>    <td align="right" class="border"> $Restores[$i]{xferErrs} </td></tr>EOF    }    if ( $restoreStr ne "" ) {        $restoreStr = eval("qq{$Lang->{Restore_Summary}}");    }    if ( @Backups == 0 ) {        $warnStr = $Lang->{This_PC_has_never_been_backed_up};    }    if ( defined($Hosts->{$host}) ) {        my $user = $Hosts->{$host}{user};        my @moreUsers = sort(keys(%{$Hosts->{$host}{moreUsers}}));        my $moreUserStr;        foreach my $u ( sort(keys(%{$Hosts->{$host}{moreUsers}})) ) {            $moreUserStr .= ", " if ( $moreUserStr ne "" );            $moreUserStr .= "${UserLink($u)}";        }        if ( $moreUserStr ne "" ) {            $moreUserStr = " ($Lang->{and} $moreUserStr).\n";        } else {            $moreUserStr = ".\n";        }        if ( $user ne "" ) {            $statusStr .= eval("qq{$Lang->{This_PC_is_used_by}$moreUserStr}");        }        if ( defined($UserEmailInfo{$user})                && $UserEmailInfo{$user}{lastHost} eq $host ) {            my $mailTime = timeStamp2($UserEmailInfo{$user}{lastTime});            my $subj     = $UserEmailInfo{$user}{lastSubj};            $statusStr  .= eval("qq{$Lang->{Last_email_sent_to__was_at___subject}}");        }    }    if ( defined($Jobs{$host}) ) {        my $startTime = timeStamp2($Jobs{$host}{startTime});        (my $cmd = $Jobs{$host}{cmd}) =~ s/$BinDir\///g;        $statusStr .= eval("qq{$Lang->{The_command_cmd_is_currently_running_for_started}}");    }    if ( $StatusHost{BgQueueOn} ) {        $statusStr .= eval("qq{$Lang->{Host_host_is_queued_on_the_background_queue_will_be_backed_up_soon}}");    }    if ( $StatusHost{UserQueueOn} ) {        $statusStr .= eval("qq{$Lang->{Host_host_is_queued_on_the_user_queue__will_be_backed_up_soon}}");    }    if ( $StatusHost{CmdQueueOn} ) {        $statusStr .= eval("qq{$Lang->{A_command_for_host_is_on_the_command_queue_will_run_soon}}");    }    my $startTime = timeStamp2($StatusHost{endTime} == 0 ?                $StatusHost{startTime} : $StatusHost{endTime});    my $reason = "";    if ( $StatusHost{reason} ne "" ) {        $reason = " ($Lang->{$StatusHost{reason}})";    }    $statusStr .= eval("qq{$Lang->{Last_status_is_state_StatusHost_state_reason_as_of_startTime}}");    if ( $StatusHost{state} ne "Status_backup_in_progress"            && $StatusHost{state} ne "Status_restore_in_progress"            && $StatusHost{error} ne "" ) {        $statusStr .= eval("qq{$Lang->{Last_error_is____EscHTML_StatusHost_error}}");    }    my $priorStr = "Pings";    if ( $StatusHost{deadCnt} > 0 ) {        $statusStr .= eval("qq{$Lang->{Pings_to_host_have_failed_StatusHost_deadCnt__consecutive_times}}");        $priorStr = $Lang->{Prior_to_that__pings};    }    if ( $StatusHost{aliveCnt} > 0 ) {        $statusStr .= eval("qq{$Lang->{priorStr_to_host_have_succeeded_StatusHostaliveCnt_consecutive_times}}");        if ( (@{$Conf{BlackoutPeriods}} || defined($Conf{BlackoutHourBegin}))		&& $StatusHost{aliveCnt} >= $Conf{BlackoutGoodCnt}                && $Conf{BlackoutGoodCnt} >= 0 ) {            #            # Handle backward compatibility with original separate scalar            # blackout parameters.            #            if ( defined($Conf{BlackoutHourBegin}) ) {                push(@{$Conf{BlackoutPeriods}},                     {                         hourBegin => $Conf{BlackoutHourBegin},                         hourEnd   => $Conf{BlackoutHourEnd},                         weekDays  => $Conf{BlackoutWeekDays},                     }                );            }            #            # TODO: this string needs i18n.  Also, comma-separated            # list with "and" for the last element might not translate            # correctly.            #            my(@days) = qw(Sun Mon Tue Wed Thu Fri Sat);            my $blackoutStr;            my $periodCnt = 0;            foreach my $p ( @{$Conf{BlackoutPeriods}} ) {                next if ( ref($p->{weekDays}) ne "ARRAY"                            || !defined($p->{hourBegin})                            || !defined($p->{hourEnd})                        );                my $days = join(", ", @days[@{$p->{weekDays}}]);                my $t0   = sprintf("%d:%02d", $p->{hourBegin},                              60 * ($p->{hourBegin} - int($p->{hourBegin})));                my $t1   = sprintf("%d:%02d", $p->{hourEnd},                              60 * ($p->{hourEnd} - int($p->{hourEnd})));                if ( $periodCnt ) {                    $blackoutStr .= ", ";                    if ( $periodCnt == @{$Conf{BlackoutPeriods}} - 1 ) {                        $blackoutStr .= eval("qq{$Lang->{and}}");                        $blackoutStr .= " ";                    }                }                $blackoutStr                        .= eval("qq{$Lang->{__time0_to__time1_on__days}}");                $periodCnt++;            }            $statusStr .= eval("qq{$Lang->{Because__host_has_been_on_the_network_at_least__Conf_BlackoutGoodCnt_consecutive_times___}}");        }    }    if ( $StatusHost{backoffTime} > time ) {        my $hours = sprintf("%.1f", ($StatusHost{backoffTime} - time) / 3600);        $statusStr .= eval("qq{$Lang->{Backups_are_deferred_for_hours_hours_change_this_number}}");    }    if ( @Backups ) {        # only allow incremental if there are already some backups        $startIncrStr = <<EOF;<input type="button" value="$Lang->{Start_Incr_Backup}" onClick="document.StartStopForm.action.value='Start_Incr_Backup';          document.StartStopForm.submit();">EOF    }    $startIncrStr = eval("qq{$startIncrStr}");    my $content = eval("qq{$Lang->{Host__host_Backup_Summary2}}");    Header(eval("qq{$Lang->{Host__host_Backup_Summary}}"), $content);    Trailer();}1;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -