#!/usr/bin/perl # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # -------------------------------- $Lang{Start_Archive} = "Start Archive"; $Lang{Stop_Dequeue_Archive} = "Stop/Dequeue Archive"; $Lang{Start_Full_Backup} = "Start Full Backup"; $Lang{Start_Incr_Backup} = "Start Incr Backup"; $Lang{Stop_Dequeue_Backup} = "Stop/Dequeue Backup"; $Lang{Restore} = "Restore"; $Lang{Type_full} = "full"; $Lang{Type_incr} = "incremental"; # ----- $Lang{Only_privileged_users_can_view_admin_options} = "Only privileged users can view admin options."; $Lang{H_Admin_Options} = "BackupPC Server: Admin Options"; $Lang{Admin_Options} = "Admin Options"; $Lang{Admin_Options_Page} = < \${h2("Server Control")}
Reload the server configuration:
EOF $Lang{Unable_to_connect_to_BackupPC_server} = "Unable to connect to BackupPC server"; $Lang{Unable_to_connect_to_BackupPC_server_error_message} = < The error was: \$err.
Perhaps the BackupPC server is not running or there is a configuration error. Please report this to your Sys Admin. EOF $Lang{Admin_Start_Server} = < The BackupPC server at \$Conf{ServerHost} port \$Conf{ServerPort} is not currently running (maybe you just stopped it, or haven't yet started it).
Do you want to start it? EOF # ----- $Lang{H_BackupPC_Server_Status} = "BackupPC Server Status"; $Lang{BackupPC_Server_Status_General_Info}= <
  • The servers PID is \$Info{pid}, on host \$Conf{ServerHost}, version \$Info{Version}, started at \$serverStartTime.
  • This status was generated at \$now.
  • The configuration was last loaded at \$configLoadTime.
  • PCs will be next queued at \$nextWakeupTime.
  • Other info:
    • \$numBgQueue pending backup requests from last scheduled wakeup,
    • \$numUserQueue pending user backup requests,
    • \$numCmdQueue pending command requests, \$poolInfo
    • Pool file system was recently at \$Info{DUlastValue}% (\$DUlastTime), today\'s max is \$Info{DUDailyMax}% (\$DUmaxTime) and yesterday\'s max was \$Info{DUDailyMaxPrev}%.
    • Pool file system inode usage was recently at \$Info{DUInodelastValue}% (\$DUlastTime), today\'s max is \$Info{DUInodeDailyMax}% (\$DUInodemaxTime) and yesterday\'s max was \$Info{DUInodeDailyMaxPrev}%.
    EOF $Lang{BackupPC_Server_Status} = < \${h2("Currently Running Jobs")}

    \$jobStr
    Host Type User Start Time Command PID Xfer PID Status Count

    \$generalInfo \${h2("Failures that need attention")}

    \$statusStr
    Host Type User Last Try Details Error Time Last error (other than no ping)
    EOF # -------------------------------- $Lang{BackupPC__Server_Summary} = "BackupPC: Host Summary"; $Lang{BackupPC__Archive} = "BackupPC: Archive"; $Lang{BackupPC_Summary} = <

    • This status was generated at \$now.
    • Pool file system was recently at \$Info{DUlastValue}% (\$DUlastTime), today\'s max is \$Info{DUDailyMax}% (\$DUmaxTime) and yesterday\'s max was \$Info{DUDailyMaxPrev}%.
    • Pool file system inode usage was recently at \$Info{DUInodelastValue}% (\$DUlastTime), today\'s max is \$Info{DUInodeDailyMax}% (\$DUInodemaxTime) and yesterday\'s max was \$Info{DUInodeDailyMaxPrev}%.

    \${h2("Hosts with good Backups")}

    There are \$hostCntGood hosts that have been backed up, for a total of:

    • \$fullTot full backups of total size \${fullSizeTot}GiB (prior to pooling and compression),
    • \$incrTot incr backups of total size \${incrSizeTot}GiB (prior to pooling and compression).

    \$strGood
    Host User Comment #Full Full Age (days) Full Size (GiB) Speed (MiB/s) #Incr Incr Age (days) Last Backup (days) State #Xfer errs Last attempt
    \${h2("Hosts with no Backups")}

    There are \$hostCntNone hosts with no backups.

    \$strNone
    Host User Comment #Full Full Age (days) Full Size (GiB) Speed (MiB/s) #Incr Incr Age/days Last Backup (days) State #Xfer errs Last attempt
    EOF $Lang{BackupPC_Archive} = < There are \$hostCntGood hosts that have been backed up for a total size of \${fullSizeTot}GiB

    \$strGood \$checkAllHosts
    Host User Backup Size

    EOF $Lang{BackupPC_Archive2} = < \$HostListStr

    \$hiddenStr \$paramStr
    EOF $Lang{BackupPC_Archive2_location} = < Archive Location/Device EOF $Lang{BackupPC_Archive2_compression} = < Compression None
    gzip
    bzip2 EOF $Lang{BackupPC_Archive2_parity} = < Percentage of Parity Data (0 = disable, 5 = typical) EOF $Lang{BackupPC_Archive2_split} = < Split output into Megabytes EOF # ----------------------------------- $Lang{Pool_Stat} = <Pool is \${poolSize}GiB comprising \$info->{"\${name}FileCnt"} files and \$info->{"\${name}DirCnt"} directories (as of \$poolTime),
  • Pool hashing gives \$info->{"\${name}FileCntRep"} repeated files with longest chain \$info->{"\${name}FileRepMax"},
  • Nightly cleanup removed \$info->{"\${name}FileCntRm"} files of size \${poolRmSize}GiB (around \$poolTime), EOF # -------------------------------- $Lang{BackupPC__Backup_Requested_on__host} = "BackupPC: Backup Requested on \$host"; $Lang{BackupPC__Delete_Requested_for_a_backup_of__host} = "BackupPC: Delete Requested for a backup of \$host"; # -------------------------------- $Lang{REPLY_FROM_SERVER} = < Reply from server was: \$reply

    Go back to \$host home page. EOF # -------------------------------- $Lang{BackupPC__Start_Backup_Confirm_on__host} = "BackupPC: Start Backup Confirm on \$host"; # -------------------------------- $Lang{Are_you_sure_start} = < You are about to start a \$type backup on \$host.

    Do you really want to do this?
    EOF # -------------------------------- $Lang{BackupPC__Stop_Backup_Confirm_on__host} = "BackupPC: Stop Backup Confirm on \$host"; # -------------------------------- $Lang{Are_you_sure_stop} = < You are about to stop/dequeue backups on \$host;
    Also, please don\'t start another backup for hours.

    Do you really want to do this?

    EOF # -------------------------------- $Lang{Only_privileged_users_can_view_queues_} = "Only privileged users can view queues."; # -------------------------------- $Lang{Only_privileged_users_can_archive} = "Only privileged users can Archive."; # -------------------------------- $Lang{BackupPC__Queue_Summary} = "BackupPC: Queue Summary"; # -------------------------------- $Lang{Backup_Queue_Summary} = < The following user requests are currently queued:

    \$strUser
    Host Action Req Time User
    \${h2("Background Queue Summary")}

    The following background requests are currently queued:

    \$strBg
    Host Action Req Time User
    \${h2("Command Queue Summary")}

    The following command requests are currently queued:

    \$strCmd
    Host Action Req Time User Command
    EOF # -------------------------------- $Lang{Backup_PC__Log_File__file} = "BackupPC: File \$file"; $Lang{Log_File__file__comment} = < EOF # -------------------------------- $Lang{Contents_of_log_file} = <\$file, modified \$mtimeStr \$comment EOF # -------------------------------- $Lang{skipped__skipped_lines} = "[ skipped \$skipped lines ]\n"; # -------------------------------- $Lang{_pre___Can_t_open_log_file__file} = "
    \nCan\'t open log file \$file\n";
    
    # --------------------------------
    $Lang{BackupPC__Log_File_History} = "BackupPC: Log File History";
    $Lang{Log_File_History__hdr} = <
    
    \$str
    
    File Size Modification time
    EOF # ------------------------------- $Lang{Recent_Email_Summary} = < \$str
    Recipient Host Time Subject
    EOF # ------------------------------ $Lang{Browse_backup__num_for__host} = "BackupPC: Browse backup \$num for \$host"; # ------------------------------ $Lang{Restore_Options_for__host} = "BackupPC: Restore Options for \$host"; $Lang{Restore_Options_for__host2} = < You have selected the following files/directories from share \$share, backup number #\$num:
      \$fileListStr

    You have three choices for restoring these files/directories. Please select one of the following options.

    \${h2("Option 1: Direct Restore")}

    EOF $Lang{Restore_Options_for__host_Option1} = <\$directHost.

    Warning: any existing files that match the ones you have selected will be overwritten!

    \$hiddenStr
    Restore the files to host
    Restore the files to share
    Restore the files below dir
    (relative to share)
    EOF $Lang{Restore_Options_for__host_Option1_disabled} = < \${h2("Option 2: Download Zip archive")}

    You can download a Zip archive containing all the files/directories you have selected. You can then use a local application, such as WinZip, to view or extract any of the files.

    Warning: depending upon which files/directories you have selected, this archive might be very very large. It might take many minutes to create and transfer the archive, and you will need enough local disk space to store it.

    \$hiddenStr Make archive relative to \${EscHTML(\$pathHdr eq "" ? "/" : \$pathHdr)} (otherwise archive will contain full paths).
    Compression (0=off, 1=fast,...,9=best)
    Code page (e.g. cp866)

    EOF # ------------------------------ $Lang{Option_2__Download_Zip_archive2} = < \${h2("Option 2: Download Zip archive")}

    Archive::Zip is not installed so you will not be able to download a zip archive. Please ask your system adminstrator to install Archive::Zip from www.cpan.org.

    EOF # ------------------------------ $Lang{Option_3__Download_Zip_archive} = < You can download a Tar archive containing all the files/directories you have selected. You can then use a local application, such as tar or WinZip to view or extract any of the files.

    Warning: depending upon which files/directories you have selected, this archive might be very very large. It might take many minutes to create and transfer the archive, and you will need enough local disk space to store it.

    \$hiddenStr Make archive relative to \${EscHTML(\$pathHdr eq "" ? "/" : \$pathHdr)} (otherwise archive will contain full paths).
    EOF # ------------------------------ $Lang{Restore_Confirm_on__host} = "BackupPC: Restore Confirm on \$host"; $Lang{Are_you_sure} = < You are about to start a restore directly to the machine \$In{hostDest}. The following files will be restored to share \$In{shareDest}, from backup number \$num:

    \$fileListStr
    Original file/dirWill be restored to

    \$hiddenStr Do you really want to do this?
    EOF # -------------------------- $Lang{Restore_Requested_on__hostDest} = "BackupPC: Restore Requested on \$hostDest"; $Lang{Reply_from_server_was___reply} = < Reply from server was: \$reply

    Go back to \$hostDest home page. EOF $Lang{BackupPC_Archive_Reply_from_server} = < Reply from server was: \$reply EOF # -------------------------------- $Lang{BackupPC__Delete_Backup_Confirm__num_of__host} = "BackupPC: Delete Backup Confirm #\$num of \$host"; # -------------------------------- $Lang{A_filled} = "a filled"; $Lang{An_unfilled} = "an unfilled"; $Lang{Are_you_sure_delete} = < You are about to delete \$filled \$type backup #\$num of \$host.

    Do you really want to do this?
    EOF # ------------------------- $Lang{Host__host_Backup_Summary} = "BackupPC: Host \$host Backup Summary"; $Lang{Host__host_Backup_Summary2} = < \$warnStr
      \$statusStr

    \${h2("User Actions")}

    \$startIncrStr

    \${h2("Backup Summary")}

    Click on the backup number to browse and restore backup files.

    \$deleteHdrStr \$str
    Backup# Type Filled Level Start Date Duration/mins Age/days Server Backup Path

    \$restoreStr

    \${h2("Xfer Error Summary")} \$errStr
    Backup# Type View #Xfer errs #bad files #bad share #tar errs
    \${h2("File Size/Count Reuse Summary")}

    Existing files are those already in the pool; new files are those added to the pool. Empty files and SMB errors aren\'t counted in the reuse and new counts.

    \$sizeStr
    Totals Existing Files New Files
    Backup# Type #Files Size/MiB MiB/sec #Files Size/MiB #Files Size/MiB
    \${h2("Compression Summary")}

    Compression performance for files already in the pool and newly compressed files.

    \$compStr
    Existing Files New Files
    Backup# Type Comp Level Size/MiB Comp/MiB Comp Size/MiB Comp/MiB Comp
    EOF $Lang{Host__host_Archive_Summary} = "BackupPC: Host \$host Archive Summary"; $Lang{Host__host_Archive_Summary2} = < \$warnStr
      \$statusStr
    \${h2("User Actions")}

    \$ArchiveStr EOF # ------------------------- $Lang{Error} = "BackupPC: Error"; $Lang{Error____head} = <\$mesg

    EOF # ------------------------- $Lang{NavSectionTitle_} = "Server"; # ------------------------- $Lang{Backup_browse_for__host} = <
    • You are browsing backup #\$num, which started around \$backupTime (\$backupAge days ago), \$filledBackup
    • Enter directory:
    • Click on a directory below to navigate into that directory,
    • Click on a file below to restore that file,
    • You can view the backup history of the current directory.
    \${h2("Contents of \$dirDisplay")}

    \$dirStr

    \$fileHeader \$topCheckAll \$fileStr \$checkAll

    EOF # ------------------------------ $Lang{DirHistory_backup_for__host} = "BackupPC: Directory backup history for \$host"; # # These two strings are used to build the links for directories and # file versions. Files are appended with a version number. # $Lang{DirHistory_dirLink} = "dir"; $Lang{DirHistory_fileLink} = "v"; $Lang{DirHistory_for__host} = < This display shows each unique version of files across all the backups:
    • Click on a backup number to return to the backup browser,
    • Click on a directory link (\$Lang->{DirHistory_dirLink}) to navigate into that directory,
    • Click on a file version link (\$Lang->{DirHistory_fileLink}0, \$Lang->{DirHistory_fileLink}1, ...) to download that file,
    • Files with the same contents between different backups have the same version number (except between v3 and v4 backups),
    • Files or directories not present in a particular backup have an empty box.
    • Files shown with the same version might have different attributes. Select the backup number to see the file attributes.
    \${h2("History of \$dirDisplay")}
    \$backupNumStr\$backupTimeStr \$fileStr
    Backup number
    Backup time
    EOF # ------------------------------ $Lang{Restore___num_details_for__host} = "BackupPC: Restore #\$num details for \$host"; $Lang{Restore___num_details_for__host2} = <
    Number \$Restores[\$i]{num}
    Requested by \$RestoreReq{user}
    Request time \$reqTime
    Result \$Restores[\$i]{result}
    Error Message \$Restores[\$i]{errorMsg}
    Source host \$RestoreReq{hostSrc}
    Source backup num \$RestoreReq{num}
    Source share \$RestoreReq{shareSrc}
    Destination host \$RestoreReq{hostDest}
    Destination share \$RestoreReq{shareDest}
    Start time \$startTime
    Duration \$duration min
    Number of files \$Restores[\$i]{nFiles}
    Total size \${MB} MiB
    Transfer rate \$MBperSec MiB/sec
    TarCreate errors \$Restores[\$i]{tarCreateErrs}
    Xfer errors \$Restores[\$i]{xferErrs}
    Xfer log file View, Errors

    \${h1("File/Directory list")}

    \$fileListStr
    Original file/dirRestored to
    EOF # ------------------------------ $Lang{Archive___num_details_for__host} = "BackupPC: Archive #\$num details for \$host"; $Lang{Archive___num_details_for__host2 } = <
    Number \$Archives[\$i]{num}
    Requested by \$ArchiveReq{user}
    Request time \$reqTime
    Result \$Archives[\$i]{result}
    Error Message \$Archives[\$i]{errorMsg}
    Start time \$startTime
    Duration \$duration min
    Xfer log file View, Errors

    \${h1("Host list")}

    \$HostListStr
    HostBackup Number
    EOF # ----------------------------------- $Lang{Email_Summary} = "BackupPC: Email Summary"; # ----------------------------------- # !! ERROR messages !! # ----------------------------------- $Lang{BackupPC__Lib__new_failed__check_apache_error_log} = "BackupPC::Lib->new failed: check apache error_log\n"; $Lang{Wrong_user__my_userid_is___} = "Wrong user: my userid is \$>, instead of \$uid" . "(\$Conf{BackupPCUser})\n"; # $Lang{Only_privileged_users_can_view_PC_summaries} = "Only privileged users can view PC summaries."; $Lang{Only_privileged_users_can_stop_or_start_backups} = "Only privileged users can stop or start backups on" . " \${EscHTML(\$host)}."; $Lang{Invalid_number__num} = "Invalid number \${EscHTML(\$In{num})}"; $Lang{Unable_to_open__file__configuration_problem} = "Unable to open \$file: configuration problem?"; $Lang{Only_privileged_users_can_view_log_or_config_files} = "Only privileged users can view log or config files."; $Lang{Only_privileged_users_can_view_log_files} = "Only privileged users can view log files."; $Lang{Only_privileged_users_can_view_email_summaries} = "Only privileged users can view email summaries."; $Lang{Only_privileged_users_can_browse_backup_files} = "Only privileged users can browse backup files" . " for host \${EscHTML(\$In{host})}."; $Lang{Only_privileged_users_can_delete_backups} = "Only privileged users can delete backups" . " of host \${EscHTML(\$host)}."; $Lang{Empty_host_name} = "Empty host name."; $Lang{Directory___EscHTML} = "Directory \${EscHTML(\"\$TopDir/pc/\$host/\$num\")}" . " is empty"; $Lang{Can_t_browse_bad_directory_name2} = "Can\'t browse bad directory name" . " \${EscHTML(\$relDir)}"; $Lang{Only_privileged_users_can_restore_backup_files} = "Only privileged users can restore backup files" . " for host \${EscHTML(\$In{host})}."; $Lang{Bad_host_name} = "Bad host name \${EscHTML(\$host)}"; $Lang{You_haven_t_selected_any_files__please_go_Back_to} = "You haven\'t selected any files; please go Back to" . " select some files."; $Lang{You_haven_t_selected_any_hosts} = "You haven\'t selected any hosts; please go Back to" . " select some hosts."; $Lang{Nice_try__but_you_can_t_put} = "Nice try, but you can\'t put \'..\' in any of the file names"; $Lang{Host__doesn_t_exist} = "Host \${EscHTML(\$In{hostDest})} doesn\'t exist"; $Lang{You_don_t_have_permission_to_restore_onto_host} = "You don\'t have permission to restore onto host" . " \${EscHTML(\$In{hostDest})}"; $Lang{Can_t_open_create__openPath} = "Can\'t open/create " . "\${EscHTML(\"\$openPath\")}"; $Lang{Only_privileged_users_can_restore_backup_files2} = "Only privileged users can restore backup files" . " for host \${EscHTML(\$host)}."; $Lang{Empty_host_name} = "Empty host name"; $Lang{Unknown_host_or_user} = "Unknown host or user \${EscHTML(\$host)}"; $Lang{Only_privileged_users_can_view_information_about} = "Only privileged users can view information about" . " host \${EscHTML(\$host)}." ; $Lang{Only_privileged_users_can_view_archive_information} = "Only privileged users can view archive information."; $Lang{Only_privileged_users_can_view_restore_information} = "Only privileged users can view restore information."; $Lang{Restore_number__num_for_host__does_not_exist} = "Restore number \$num for host \${EscHTML(\$host)} does" . " not exist."; $Lang{Archive_number__num_for_host__does_not_exist} = "Archive number \$num for host \${EscHTML(\$host)} does" . " not exist."; $Lang{Can_t_find_IP_address_for} = "Can\'t find IP address for \${EscHTML(\$host)}"; $Lang{host_is_a_DHCP_host} = < Until I see \$host at a particular DHCP address, you can only start this request from the client machine itself. EOF # ------------------------------------ # !! Server Mesg !! # ------------------------------------ $Lang{Backup_requested_on_DHCP__host} = "Backup requested on DHCP \$host (\$In{hostIP}) by" . " \$User from \$ENV{REMOTE_ADDR}"; $Lang{Backup_requested_on__host_by__User} = "Backup requested on \$host by \$User"; $Lang{Backup_stopped_dequeued_on__host_by__User} = "Backup stopped/dequeued on \$host by \$User"; $Lang{Restore_requested_to_host__hostDest__backup___num} = "Restore requested to host \$hostDest, backup #\$num," . " by \$User from \$ENV{REMOTE_ADDR}"; $Lang{Delete_requested_for_backup_of__host_by__User} = "Delete requested for backup #\$num of \$host" . " by \$User from \$ENV{REMOTE_ADDR}"; $Lang{Archive_requested} = "Archive requested by \$User from \$ENV{REMOTE_ADDR}"; # ------------------------------------------------- # ------- Stuff that was forgotten ---------------- # ------------------------------------------------- $Lang{Status} = "Status"; $Lang{PC_Summary} = "Host Summary"; $Lang{LOG_file} = "LOG file"; $Lang{LOG_files} = "LOG files"; $Lang{Old_LOGs} = "Old LOGs"; $Lang{Email_summary} = "Email summary"; $Lang{Config_file} = "Config file"; # $Lang{Hosts_file} = "Hosts file"; $Lang{Current_queues} = "Current queues"; $Lang{Check} = "Checkup"; $Lang{Documentation} = "Documentation"; #$Lang{Host_or_User_name} = "Host or User name:"; $Lang{Go} = "Go"; $Lang{Hosts} = "Hosts"; $Lang{Select_a_host} = "Select a host..."; $Lang{There_have_been_no_archives} = "

    There have been no archives

    \n"; $Lang{This_PC_has_never_been_backed_up} = "

    This PC has never been backed up!!

    \n"; $Lang{This_PC_is_used_by} = "
  • This PC is used by \${UserLink(\$user)}"; $Lang{Extracting_only_Errors} = "(Extracting only Errors)"; $Lang{XferLOG} = "XferLOG"; $Lang{Errors} = "Errors"; # ------------ $Lang{Last_email_sent_to__was_at___subject} = <Last email sent to \${UserLink(\$user)} was at \$mailTime, subject "\$subj". EOF # ------------ $Lang{The_command_cmd_is_currently_running_for_started} = <The command \$cmd is currently running for \$host, started \$startTime. EOF # ----------- $Lang{Host_host_is_queued_on_the_background_queue_will_be_backed_up_soon} = <Host \$host is queued on the background queue (will be backed up soon). EOF # ---------- $Lang{Host_host_is_queued_on_the_user_queue__will_be_backed_up_soon} = <Host \$host is queued on the user queue (will be backed up soon). EOF # --------- $Lang{A_command_for_host_is_on_the_command_queue_will_run_soon} = <A command for \$host is on the command queue (will run soon). EOF # -------- $Lang{Last_status_is_state_StatusHost_state_reason_as_of_startTime} = <Last status is state \"\$Lang->{\$StatusHost{state}}\"\$reason as of \$startTime. EOF # -------- $Lang{Last_error_is____EscHTML_StatusHost_error} = <Last error is \"\${EscHTML(\$StatusHost{error})}\". EOF # ------ $Lang{Pings_to_host_have_failed_StatusHost_deadCnt__consecutive_times} = <Pings to \$host have failed \$StatusHost{deadCnt} consecutive times. EOF # ----- $Lang{Prior_to_that__pings} = "Prior to that, pings"; # ----- $Lang{priorStr_to_host_have_succeeded_StatusHostaliveCnt_consecutive_times} = <\$priorStr to \$host have succeeded \$StatusHost{aliveCnt} consecutive times. EOF $Lang{Because__host_has_been_on_the_network_at_least__Conf_BlackoutGoodCnt_consecutive_times___} = <Because \$host has been on the network at least \$Conf{BlackoutGoodCnt} consecutive times, it will not be backed up from \$blackoutStr. EOF $Lang{__time0_to__time1_on__days} = "\$t0 to \$t1 on \$days"; $Lang{Backups_are_deferred_for_hours_hours_change_this_number} = <Backups are deferred for \$hours hours (change this number). EOF $Lang{tryIP} = " and \$StatusHost{dhcpHostIP}"; # $Lang{Host_Inhost} = "Host \$In{host}"; $Lang{checkAll} = <  Select all EOF $Lang{checkAllHosts} = <  Select all EOF $Lang{fileHeader} = < Name Type Mode # Size Date modified EOF $Lang{Home} = "Home"; $Lang{Browse} = "Browse backups"; $Lang{Last_bad_XferLOG} = "Last bad XferLOG"; $Lang{Last_bad_XferLOG_errors_only} = "Last bad XferLOG (errors only)"; $Lang{This_display_is_merged_with_backup} = < This display is merged with backup #\$numF. EOF $Lang{Visit_this_directory_in_backup} = < Select the backup you wish to view: EOF $Lang{Restore_Summary} = < Click on the restore number for more details. \$restoreStr
    Restore# Result Start Date Dur/mins #files MiB #tar errs #xferErrs

    EOF $Lang{Archive_Summary} = < Click on the archive number for more details. \$ArchiveStr
    Archive# Result Start Date Dur/mins

    EOF $Lang{BackupPC__Documentation} = "BackupPC: Documentation"; $Lang{No} = "no"; $Lang{Yes} = "yes"; $Lang{The_directory_is_empty} = <The directory \$dirDisplay is empty EOF #$Lang{on} = "on"; $Lang{off} = "off"; $Lang{backupType_full} = "full"; $Lang{backupType_incr} = "incr"; $Lang{backupType_active} = "active"; $Lang{backupType_partial} = "partial"; $Lang{failed} = "failed"; $Lang{success} = "success"; $Lang{and} = "and"; # ------ # Hosts states and reasons $Lang{Status_idle} = "idle"; $Lang{Status_backup_starting} = "backup starting"; $Lang{Status_backup_in_progress} = "backup in progress"; $Lang{Status_restore_starting} = "restore starting"; $Lang{Status_restore_in_progress} = "restore in progress"; $Lang{Status_admin_pending} = "link pending"; $Lang{Status_admin_running} = "link running"; $Lang{Reason_backup_done} = "done"; $Lang{Reason_restore_done} = "restore done"; $Lang{Reason_archive_done} = "archive done"; $Lang{Reason_nothing_to_do} = "idle"; $Lang{Reason_backup_failed} = "backup failed"; $Lang{Reason_restore_failed} = "restore failed"; $Lang{Reason_archive_failed} = "archive failed"; $Lang{Reason_no_ping} = "no ping"; $Lang{Reason_backup_canceled_by_user} = "backup canceled by user"; $Lang{Reason_restore_canceled_by_user} = "restore canceled by user"; $Lang{Reason_archive_canceled_by_user} = "archive canceled by user"; $Lang{Disabled_OnlyManualBackups} = "auto disabled"; $Lang{Disabled_AllBackupsDisabled} = "disabled"; # --------- # Email messages # No backup ever $Lang{EMailNoBackupEverSubj} = "BackupPC: no backups of \$host have succeeded"; $Lang{EMailNoBackupEverMesg} = <<'EOF'; To: $user$domain cc: Subject: $subj $headers Dear $userName, Your PC ($host) has never been successfully backed up by our PC backup software. PC backups should occur automatically when your PC is connected to the network. You should contact computer support if: - Your PC has been regularly connected to the network, meaning there is some configuration or setup problem preventing backups from occurring. - You don't want your PC backed up and you want these email messages to stop. Otherwise, please make sure your PC is connected to the network next time you are in the office. Regards, BackupPC Genie https://backuppc.github.io/backuppc EOF # No recent backup $Lang{EMailNoBackupRecentSubj} = "BackupPC: no recent backups on \$host"; $Lang{EMailNoBackupRecentMesg} = <<'EOF'; To: $user$domain cc: Subject: $subj $headers Dear $userName, Your PC ($host) has not been successfully backed up for $days days. Your PC has been correctly backed up $numBackups times from $firstTime to $days days ago. PC backups should occur automatically when your PC is connected to the network. If your PC has been connected for more than a few hours to the network during the last $days days you should contact IS to find out why backups are not working. Otherwise, if you are out of the office, there's not much you can do, other than manually copying especially critical files to other media. You should be aware that any files you have created or changed in the last $days days (including all new email and attachments) cannot be restored if your PC disk crashes. Regards, BackupPC Genie https://backuppc.github.io/backuppc EOF # Old Outlook files $Lang{EMailOutlookBackupSubj} = "BackupPC: Outlook files on \$host need to be backed up"; $Lang{EMailOutlookBackupMesg} = <<'EOF'; To: $user$domain cc: Subject: $subj $headers Dear $userName, The Outlook files on your PC have $howLong. These files contain all your email, attachments, contact and calendar information. Your PC has been correctly backed up $numBackups times from $firstTime to $lastTime days ago. However, Outlook locks all its files when it is running, preventing these files from being backed up. It is recommended you backup the Outlook files when you are connected to the network by exiting Outlook and all other applications, and, using just your browser, go to this link: $CgiURL?host=$host Select "Start Incr Backup" twice to start a new incremental backup. You can select "Return to $host page" and then hit "reload" to check the status of the backup. It should take just a few minutes to complete. Regards, BackupPC Genie https://backuppc.github.io/backuppc EOF $Lang{howLong_not_been_backed_up} = "not been backed up successfully"; $Lang{howLong_not_been_backed_up_for_days_days} = "not been backed up for \$days days"; ####################################################################### # RSS strings ####################################################################### $Lang{RSS_Doc_Title} = "BackupPC Server"; $Lang{RSS_Doc_Description} = "RSS feed for BackupPC"; $Lang{RSS_Host_Summary} = < Note: Check Override if you want to modify a value specific to this host.

    EOF $Lang{CfgEdit_Button_Save} = "Save"; $Lang{CfgEdit_Button_Insert} = "Insert"; $Lang{CfgEdit_Button_Delete} = "Delete"; $Lang{CfgEdit_Button_Add} = "Add"; $Lang{CfgEdit_Button_Override} = "Override"; $Lang{CfgEdit_Button_New_Key} = "New Key"; $Lang{CfgEdit_Button_New_Share} = "New ShareName or '*'"; $Lang{CfgEdit_Error_No_Save} = "Error: No save due to errors"; $Lang{CfgEdit_Error__must_be_an_integer} = "Error: \$var must be an integer"; $Lang{CfgEdit_Error__must_be_real_valued_number} = "Error: \$var must be a real-valued number"; $Lang{CfgEdit_Error__entry__must_be_an_integer} = "Error: \$var entry \$k must be an integer"; $Lang{CfgEdit_Error__entry__must_be_real_valued_number} = "Error: \$var entry \$k must be a real-valued number"; $Lang{CfgEdit_Error__must_be_executable_program} = "Error: \$var must be a valid executable path"; $Lang{CfgEdit_Error__must_be_valid_option} = "Error: \$var must be a valid option"; $Lang{CfgEdit_Error_Copy_host_does_not_exist} = "Copy host \$copyHost doesn't exist; creating full host name \$fullHost. Delete this host if that is not what you wanted."; $Lang{CfgEdit_Log_Copy_host_config} = "\$User copied config from host \$fromHost to \$host\n"; $Lang{CfgEdit_Log_Delete_param} = "\$User deleted \$p from \$conf\n"; $Lang{CfgEdit_Log_Add_param_value} = "\$User added \$p to \$conf, set to \$value\n"; $Lang{CfgEdit_Log_Change_param_value} = "\$User changed \$p in \$conf to \$valueNew from \$valueOld\n"; $Lang{CfgEdit_Log_Host_Delete} = "\$User deleted host \$host\n"; $Lang{CfgEdit_Log_Host_Change} = "\$User host \$host changed \$key from \$valueOld to \$valueNew\n"; $Lang{CfgEdit_Log_Host_Add} = "\$User added host \$host: \$value\n"; # -------------------------------- $Lang{BackupPC__Server_Check} = "BackupPC: Check"; $Lang{BackupPC_Check} = <

    • This status was generated at \$now.
    • Pool file system was recently at \$Info{DUlastValue}% (\$DUlastTime), today\'s max is \$Info{DUDailyMax}% (\$DUmaxTime) and yesterday\'s max was \$Info{DUDailyMaxPrev}%.
    • Pool file system inode usage was recently at \$Info{DUInodelastValue}% (\$DUlastTime), today\'s max is \$Info{DUInodeDailyMax}% (\$DUInodemaxTime) and yesterday\'s max was \$Info{DUInodeDailyMaxPrev}%.

    \${h2("Hosts with good Backups")}

    There are \$hostCntGood hosts that have been backed up, for a total of:

    • \$fullTot full backups of total size \${fullSizeTot}GiB (prior to pooling and compression),
    • \$incrTot incr backups of total size \${incrSizeTot}GiB (prior to pooling and compression).

    \$strGood
    Host User Comment #Full Full Age (days) Full Size (GiB) Speed (MiB/s) #Incr Incr Age (days) Last Backup (days) State #Xfer errs Last attempt
    \${h2("Hosts with no Backups")}

    There are \$hostCntNone hosts with no backups.

    \$strNone
    Host User Comment #Full Full Age (days) Full Size (GiB) Speed (MiB/s) #Incr Incr Age/days Last Backup (days) State #Xfer errs Last attempt
    EOF #end of lang_en.pm