#!/usr/bin/perl # # by Sergei Butakov (2011-05-1x - 2011-05-2x for V3.2.1) # #my %lang; #use strict; use utf8; # -------------------------------- $Lang{Start_Archive} = "Начать Архивирование"; $Lang{Stop_Dequeue_Archive} = "Остановить/Убрать из Очереди"; $Lang{Start_Full_Backup} = "Начать Полн. Копирование"; $Lang{Start_Incr_Backup} = "Начать Инкр. Копирование"; $Lang{Stop_Dequeue_Backup} = "Остановить/Убрать из Очереди"; $Lang{Restore} = "Восстановить"; $Lang{Type_full} = "полн."; $Lang{Type_incr} = "инкр."; # ----- $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} = "Администрирование"; $Lang{Admin_Options_Page} = < \${h2("Управление Сервером")}
Перезагрузить настройки сервера:
EOF $Lang{Unable_to_connect_to_BackupPC_server} = "Не могу подключиться к серверу BackupPC"; $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"; $Lang{BackupPC_Server_Status_General_Info}= <
  • PID сервера \$Info{pid}, версия \$Info{Version}, запущен \$serverStartTime на узле \$Conf{ServerHost}.
  • Данный отчёт был сформирован \$now.
  • Настройки последний раз загружались \$configLoadTime.
  • В следующий раз ПК будут поставлены в очередь запросов \$nextWakeupTime.
  • Прочая информация:
    • \$numBgQueue запросов в очереди на резервирование (с момента последнего запуска планировщика);
    • \$numUserQueue запросов в пользовательской очереди на резервирование;
    • \$numCmdQueue запросов в очереди на выполнение команд; \$poolInfo
    • Файловая система пула занята на \$Info{DUlastValue}% (\$DUlastTime), сегодняшний максимум \$Info{DUDailyMax}% (\$DUmaxTime), вчерашний максимум \$Info{DUDailyMaxPrev}%.
    EOF $Lang{BackupPC_Server_Status} = < \$generalInfo \${h2("Работы, выполняемые в данный момент времени")}

    \$jobStr
    Узел Тип Пользователь Время начала Команда PID Xfer PID

    \${h2("Сбои, нуждающиеся внимания")}

    \$statusStr
    Узел Тип Пользователь Последняя попытка Детали Время ошибки Последняя ошибка (не считая отсутствие \'пинга\')
    EOF # -------------------------------- $Lang{BackupPC__Server_Summary} = "Сводка по Узлам"; $Lang{BackupPC__Archive} = "Архивирование"; $Lang{BackupPC_Summary} = <

    • Данный отчёт был сформирован \$now.
    • Файловая система пула занята на \$Info{DUlastValue}% (\$DUlastTime), сегодняшний максимум \$Info{DUDailyMax}% (\$DUmaxTime), вчерашний максимум \$Info{DUDailyMaxPrev}%.

    \${h2("Узлы, имеющие резервные копии")}

    Всего \$hostCntGood узлов, которые содержат:

    • \$fullTot полных резервных копий общим размером \${fullSizeTot}GB (до объединения и сжатия);
    • \$incrTot инкрементальных резервных копий общим размером \${incrSizeTot}GB (до объединения и сжатия).

    \$strGood
    Узел Поль-ль Кол-во ПОЛН. копий ПОЛН. возраст (дни) ПОЛН. размер (ГБ) Скорость (МБ/с) Кол-во ИНКР. копий ИНКР. возраст (дни) Посл. копир-ие (дни) Состояние Трансп. ошибок Последнее действие


    \${h2("Узлы, не имеющие резервные копии")}

    Всего \$hostCntNone узлов, не имеющих резервных копий.

    \$strNone
    Узел Поль-ль Кол-во ПОЛН. копий ПОЛН. возраст (дни) ПОЛН. размер (ГБ) Скорость (МБ/с) Кол-во ИНКР. копий ИНКР. возраст (дни) Последн. копир-ие (дни) Состояние Трансп. ошибок Последнее действие
    EOF $Lang{BackupPC_Archive} = < Всего \$hostCntGood узлов, чьи резервные копии занимают в общем \${fullSizeTot} ГБ.

    \$strGood \$checkAllHosts
    Узел Пользователь Размер Копии

    EOF $Lang{BackupPC_Archive2} = < \$HostListStr

    \$hiddenStr \$paramStr
    EOF $Lang{BackupPC_Archive2_location} = < Расположение/Устройство Архива EOF $Lang{BackupPC_Archive2_compression} = < Сжатие Нет
    gzip
    bzip2 EOF $Lang{BackupPC_Archive2_parity} = < Percentage of Parity Data (0 = disable, 5 = typical) EOF $Lang{BackupPC_Archive2_split} = < Разделить на части по МБ EOF # ----------------------------------- $Lang{Pool_Stat} = <Пул занимает \${poolSize}GB, включая \$info->{"\${name}FileCnt"} файлов и \$info->{"\${name}DirCnt"} каталогов (по данным на \$poolTime);
  • При хешировании пула произошло \$info->{"\${name}FileCntRep"} коллизии, максимальное количество файлов в одной коллизии - \$info->{"\${name}FileRepMax"};
  • Во время ночной очистки было удалено \$info->{"\${name}FileCntRm"} файлов общим размером \${poolRmSize}GB (в районе \$poolTime); EOF # -------------------------------- $Lang{BackupPC__Backup_Requested_on__host} = "BackupPC: Backup Requested on \$host"; # -------------------------------- $Lang{REPLY_FROM_SERVER} = < Ответ с сервера: \$reply

    Вернуться на Главную страницу узла \$host. EOF # -------------------------------- $Lang{BackupPC__Start_Backup_Confirm_on__host} = "BackupPC: Start Backup Confirm on \$host"; # -------------------------------- $Lang{Are_you_sure_start} = < Резервное \$type копирование узла \$host.

    Вы уверены, что хотите сделать это?
    EOF # -------------------------------- $Lang{BackupPC__Stop_Backup_Confirm_on__host} = "BackupPC: Stop Backup Confirm on \$host"; # -------------------------------- $Lang{Are_you_sure_stop} = < Остановка/удаление из очереди узла \$host.
    Также, не начинать другое резервное копирование в течение часов.

    Вы уверены, что хотите сделать это?

    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} = <
    \${h2("Очередь Пользовательских Задач")}

    Следующие запросы находятся в очереди:

    \$strUser
    Узел Время Запроса Пользователь


    \${h2("Очередь Фоновых Задач")}

    Следующие фоновые запросы находятся в очереди:

    \$strBg
    Узел Время Запроса Пользователь


    \${h2("Очередь Команд")}

    Следующие команды находятся в очереди:

    \$strCmd
    Узел Время Запроса Пользователь Команда
    EOF # -------------------------------- $Lang{Backup_PC__Log_File__file} = "BackupPC: File \$file"; $Lang{Log_File__file__comment} = < EOF # -------------------------------- $Lang{Contents_of_log_file} = <\$file, с последними изменениями от \$mtimeStr \$comment EOF # -------------------------------- $Lang{skipped__skipped_lines} = "[ пропущено \$skipped строк ]\n"; # -------------------------------- $Lang{_pre___Can_t_open_log_file__file} = "
    \nНе могу открыть журнальный файл \$file\n";
    
    # --------------------------------
    $Lang{BackupPC__Log_File_History} = "BackupPC: Log File History";
    $Lang{Log_File_History__hdr} = <
    
    \$str
    
    Файл Размер Время изменения
    EOF # ------------------------------- $Lang{Recent_Email_Summary} = < \$str
    Получатель Узел Время Тема
    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} = < Вы выбрали следующие файлы/каталоги из ресурса \$share, номер копии № \$num:
      \$fileListStr

    Выберите один из трёх способов восстановления.

    \${h2("Способ 1: Прямое Восстановление")}

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

    Внимание: все существующие файлы, совпадающие с выбранными, будут переписаны!

    \$hiddenStr
    Восстановить на узел
    Восстановить на ресурс
    Восстановить в каталог
    (относительно ресурса)
    EOF $Lang{Restore_Options_for__host_Option1_disabled} = < \${h2("Способ 2: Загрузка Zip-архива")}

    Вы можете загрузить Zip-архив, содержащий все выбранные файлы и каталоги. После чего, используя локальное приложение, такое как WinZip, можно просмотреть или разархивировать любые файлы.

    Внимание: в зависимости от выбранных Вами файлов/каталогов, этот архив может быть очень очень большим. На создание и передачу такого архива может уйти много времени, и Вам понадобится достаточно много места на локальном диске для его хранения.

    \$hiddenStr Создать архив относительно \${EscHTML(\$pathHdr eq "" ? "/" : \$pathHdr)} (в противном случае файлы в архиве будут иметь полные пути).
    Степень сжатия (0=нет, 1=самая быстрая, ..., 9=самая большая)
    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} = < Вы можете загрузить Tar-архив, содержащий все выбранные файлы и каталоги. После чего, используя локальное приложение, такое как tar или WinZip, можно просмотреть или разархивировать любые файлы.

    Внимание: в зависимости от выбранных Вами файлов/каталогов, этот архив может быть очень очень большим. На создание и передачу такого архива может уйти много времени, и Вам понадобится достаточно много места на локальном диске для его хранения.

    \$hiddenStr Создать архив относительно \${EscHTML(\$pathHdr eq "" ? "/" : \$pathHdr)} (в противном случае файлы в архиве будут иметь полные пути).
    EOF # ------------------------------ $Lang{Restore_Confirm_on__host} = "BackupPC: Restore Confirm on \$host"; $Lang{Are_you_sure} = < Следующие файлы будут восстановлены напрямую на узел \$In{hostDest} в ресурс \$In{shareDest}, из резервной копии № \$num:

    \$fileListStr
    Оригинальный файл/каталогБудет восстановлен как

    \$hiddenStr Вы уверены?
    EOF # -------------------------- $Lang{Restore_Requested_on__hostDest} = "BackupPC: Restore Requested on \$hostDest"; $Lang{Reply_from_server_was___reply} = < Ответ с сервера: \$reply

    Вернуться на Главную страницу узла \$hostDest. EOF $Lang{BackupPC_Archive_Reply_from_server} = < Ответ с сервера: \$reply EOF # ------------------------- $Lang{Host__host_Backup_Summary} = "BackupPC: Host \$host Backup Summary"; $Lang{Host__host_Backup_Summary2} = < \$warnStr

      \$statusStr

    \${h2("Пользовательские Действия")}

    \$startIncrStr

    \${h2("Сводка Резервного Копирования")}

    Щёлкните по номеру для просмотра и восстановления скопированных файлов.

    \$str
    Тип Полный Уровень Дата Начала Длительность(мин) Возраст(дни) Локальный Путь Копии

    \$restoreStr



    \${h2("Сводка Ошибок при Копировании")}

    \$errStr
    Тип Журнал Трансп. ошибок Плохих файлов Ресурс. проблем tar ошибок


    \${h2("Сводка по Файлам")}

    Существующие файлы - файлы, уже находящиеся в пуле. Новые это те, которые добавлены к пулу. Пустые файлы не учитываются. (Empty files and SMB errors aren\'t counted in the reuse and new counts.)

    \$sizeStr
    Всего Существующие Файлы Новые Файлы
    Тип Файлов Размер(МБ) МБ/с Файлов Размер(МБ) Файлов Размер(МБ)


    \${h2("Сводка по Сжатию")}

    Степень сжатия существующих и новых файлов.

    \$compStr
    Существующие Файлы Новые Файлы
    Тип Уровень Сжатия Размер(МБ) Сжатый(МБ) Степень сж. Размер(МБ) Сжатый(МБ) Степень сж.


    EOF $Lang{Host__host_Archive_Summary} = "BackupPC: Host \$host Archive Summary"; $Lang{Host__host_Archive_Summary2} = < \$warnStr
      \$statusStr
    \${h2("Пользовательские Действия")}

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

    EOF # ------------------------- $Lang{NavSectionTitle_} = "Сервер"; # ------------------------- $Lang{Backup_browse_for__host} = <
    • Копия № \$num, создание которой было начато примерно \$backupTime (\$backupAge дней назад), \$filledBackup
    • Введите каталог:
    • Щёлкните на каталог, чтобы увидеть его содержимое.
    • Щёлкните на файл, чтобы восстановить его.
    • История копий текущего каталога.
    \${h2("Содержание каталога \${EscHTML(\$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} = < Здесь показаны все уникальные версии файлов, находящиеся во всех резервных копиях:
    • Щёлкните по номеру копии для возврата к просмотру копии;
    • Щёлкните по ссылке на каталог (\$Lang->{DirHistory_dirLink}) для захода в этот каталог;
    • Щёлкните по версии файла (\$Lang->{DirHistory_fileLink}0, \$Lang->{DirHistory_fileLink}1, ...) для загрузки этого файла;
    • Файлы из разных резервных копий, содержащие одно и то же, имеют один и тот же номер версии;
    • Файлы и каталоги, отсутствующие в конкретной копии, показаны пустым прямоугольником;
    • Файлы одной версии могут отличаться разными атрибутами файловой системы. Выберите номер копии, чтобы посмотреть эти атрибуты.
    \${h2("История \${EscHTML(\$dirDisplay)}")}
    \$backupNumStr\$backupTimeStr \$fileStr
    Номер копии
    Время копирования
    EOF # ------------------------------ $Lang{Restore___num_details_for__host} = "BackupPC: Restore #\$num details for \$host"; $Lang{Restore___num_details_for__host2} = <
    Номер \$Restores[\$i]{num}
    Запросил \$RestoreReq{user}
    Время запроса \$reqTime
    Результат \$Restores[\$i]{result}
    Текст ошибки \$Restores[\$i]{errorMsg}
    Исходящий узел \$RestoreReq{hostSrc}
    Номер исходящей копии \$RestoreReq{num}
    Исходящий ресурс \$RestoreReq{shareSrc}
    Узел назначения \$RestoreReq{hostDest}
    Ресурс назначения \$RestoreReq{shareDest}
    Время начала \$startTime
    Продолжительность \$duration мин
    Количество файлов \$Restores[\$i]{nFiles}
    Общий размер \${MB} МБ
    Скорость передачи \$MBperSec МБ/с
    Ошибок при создании Tar \$Restores[\$i]{tarCreateErrs}
    Ошибок при передаче \$Restores[\$i]{xferErrs}
    Журнал Весь, Только ошибки

    \${h1("Список Файлов/Каталогов")}

    \$fileListStr
    Оригинальный файл/каталогВосстановлен как
    EOF # ------------------------------ $Lang{Archive___num_details_for__host} = "BackupPC: Archive #\$num details for \$host"; $Lang{Archive___num_details_for__host2 } = <
    Номер \$Archives[\$i]{num}
    Запросил \$ArchiveReq{user}
    Время запроса \$reqTime
    Результат \$Archives[\$i]{result}
    Сообщение об ошибке \$Archives[\$i]{errorMsg}
    Время запуска \$startTime
    Продолжительность \$duration min
    Журнал передачи данных Просмотреть, Только ошибки

    \${h1("Список узлов")}

    \$HostListStr
    УзелНомер резервной копии
    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 \$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{Empty_host_name} = "Empty host name."; $Lang{Directory___EscHTML} = "Directory \${EscHTML(\"\$TopDir/pc/\$host/\$num\")}" . " is empty"; $Lang{Can_t_browse_bad_directory_name2} = "Не могу просмотреть каталог с неправильным названием" . " \${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} = "Вы не выбрали ни один файл."; $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} = "Неизвестный узел или пользователь \${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} = "Резервное копирование DHCP узла \$host (\$In{hostIP}) запросил" . " \$User с \$ENV{REMOTE_ADDR}"; $Lang{Backup_requested_on__host_by__User} = "Резервное копирование узла \$host запросил \$User"; $Lang{Backup_stopped_dequeued_on__host_by__User} = "Резервное копирование для узла \$host остановил/убрал из очереди \$User"; $Lang{Restore_requested_to_host__hostDest__backup___num} = "Восстановление на узел \$hostDest, копию № \$num," . " запросил \$User с \$ENV{REMOTE_ADDR}"; $Lang{Archive_requested} = "Архивирование запросил \$User с \$ENV{REMOTE_ADDR}"; # ------------------------------------------------- # ------- Stuff that was forgotten ---------------- # ------------------------------------------------- $Lang{Status} = "Состояние"; $Lang{PC_Summary} = "Сводка по Узлам"; $Lang{LOG_file} = "Журнал"; $Lang{LOG_files} = "Старые журналы"; $Lang{Old_LOGs} = "Старые журналы"; $Lang{Email_summary} = "Сводка по Письмам"; $Lang{Config_file} = "Config file"; # $Lang{Hosts_file} = "Hosts file"; $Lang{Current_queues} = "Сводка по Очередям"; $Lang{Documentation} = "Руководство"; #$Lang{Host_or_User_name} = "Host or User name:"; $Lang{Go} = "Найти"; $Lang{Hosts} = "Узлы"; $Lang{Select_a_host} = "Выбрать узел ..."; $Lang{There_have_been_no_archives} = "

    Архивы отсутствуют

    \n"; $Lang{This_PC_has_never_been_backed_up} = "

    Данный ПК ни разу не резервировался!!

    \n"; $Lang{This_PC_is_used_by} = "
  • Данный ПК использует \${UserLink(\$user)}"; $Lang{Extracting_only_Errors} = "(Выбраны только ошибки)"; $Lang{XferLOG} = "Весь"; $Lang{Errors} = "Только Ошибки"; # ------------ $Lang{Last_email_sent_to__was_at___subject} = <Последнее письмо было отправлено \$mailTime, с темой "\$subj". EOF # ------------ $Lang{The_command_cmd_is_currently_running_for_started} = <Команда \$cmd выполняется для узла \$host, запущена \$startTime. EOF # ----------- $Lang{Host_host_is_queued_on_the_background_queue_will_be_backed_up_soon} = <Узел \$host поставлен в фоновую очередь (скоро будет запущено резервное копирование). EOF # ---------- $Lang{Host_host_is_queued_on_the_user_queue__will_be_backed_up_soon} = <Узел \$host поставлен в пользовательскую очередь (скоро будет запущено резервное копирование). EOF # --------- $Lang{A_command_for_host_is_on_the_command_queue_will_run_soon} = <Команда для узла \$host поставлена в очередь команд (скоро будет запущена). EOF # -------- $Lang{Last_status_is_state_StatusHost_state_reason_as_of_startTime} = <Состояние \"\$Lang->{\$StatusHost{state}}\"\$reason на \$startTime. EOF # -------- $Lang{Last_error_is____EscHTML_StatusHost_error} = <Последняя ошибка: \"\${EscHTML(\$StatusHost{error})}\". EOF # ------ $Lang{Pings_to_host_have_failed_StatusHost_deadCnt__consecutive_times} = <"Пропинговать" узел \$host не удалось \$StatusHost{deadCnt} раз(а) подряд. EOF # ----- $Lang{Prior_to_that__pings} = "Prior to that, pings"; # ----- $Lang{priorStr_to_host_have_succeeded_StatusHostaliveCnt_consecutive_times} = <\$priorStr to \$host были успешны \$StatusHost{aliveCnt} раз(а) подряд. 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} = <  Выбрать всё EOF $Lang{checkAllHosts} = <  Выбрать всё EOF $Lang{fileHeader} = < Название Тип Права № Размер Дата изменения EOF $Lang{Home} = "Главная"; $Lang{Browse} = "Просмотр резервной копии"; $Lang{Last_bad_XferLOG} = "Последний журнал с ошибками"; $Lang{Last_bad_XferLOG_errors_only} = "Последний журнал с ошибками (только ошибки)"; $Lang{This_display_is_merged_with_backup} = < Данное отображение объединено с копией № \$numF. EOF $Lang{Visit_this_directory_in_backup} = < Выберите номер копии для просмотра: EOF $Lang{Restore_Summary} = < Щёлкните по номеру для более детального просмотра. \$restoreStr
    Результат Дата начала Длительность(мин) Кол-во файлов Размер(МБ) tar ошибок Трансп. ошибок

    EOF $Lang{Archive_Summary} = < Щёлкните по номеру архива для более детального просмотра. \$ArchiveStr
    Результат Время Запуска Продолжительность(мин)

    EOF $Lang{BackupPC__Documentation} = "BackupPC: Documentation"; $Lang{No} = "нет"; $Lang{Yes} = "да"; $Lang{The_directory_is_empty} = <The directory \${EscHTML(\$dirDisplay)} is empty EOF #$Lang{on} = "on"; $Lang{off} = "откл."; $Lang{backupType_full} = "полн."; $Lang{backupType_incr} = "инкр."; $Lang{backupType_partial} = "частичный"; $Lang{failed} = "неудачно"; $Lang{success} = "успешно"; $Lang{and} = "и"; # ------ # Hosts states and reasons $Lang{Status_idle} = "бездействует"; $Lang{Status_backup_starting} = "началось копирование"; $Lang{Status_backup_in_progress} = "в процессе копирования"; $Lang{Status_restore_starting} = "началось восстановление"; $Lang{Status_restore_in_progress} = "в процессе восстановления"; $Lang{Status_link_pending} = "link pending"; $Lang{Status_link_running} = "link running"; $Lang{Reason_backup_done} = "копирование закончено"; $Lang{Reason_restore_done} = "восстановление закончено"; $Lang{Reason_archive_done} = "архивирование закончено"; $Lang{Reason_nothing_to_do} = "без работы"; $Lang{Reason_backup_failed} = "копирование не удалось"; $Lang{Reason_restore_failed} = "восстановление не удалось"; $Lang{Reason_archive_failed} = "архивирование не удалось"; $Lang{Reason_no_ping} = "не \'пингуется\'"; $Lang{Reason_backup_canceled_by_user} = "копирование прервано пользователем"; $Lang{Reason_restore_canceled_by_user} = "восстановление прервано пользователем"; $Lang{Reason_archive_canceled_by_user} = "восстановление прервано пользователем"; $Lang{Disabled_OnlyManualBackups} = "автозапрет"; $Lang{Disabled_AllBackupsDisabled} = "запрещено"; # --------- # 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 http://backuppc.sourceforge.net 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 http://backuppc.sourceforge.net 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 http://backuppc.sourceforge.net 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} = < Примечание: Поставьте галочку рядом с "Заменить", если хотите изменить значение параметра индивидуально для этого узла.

    EOF $Lang{CfgEdit_Button_Save} = "Сохранить"; $Lang{CfgEdit_Button_Insert} = "Вставить"; $Lang{CfgEdit_Button_Delete} = "Удалить"; $Lang{CfgEdit_Button_Add} = "Добавить"; $Lang{CfgEdit_Button_Override} = "Заменить"; $Lang{CfgEdit_Button_New_Key} = "New Key"; $Lang{CfgEdit_Error_No_Save} = "Ошибка: не сохранено из-за наличия ошибок"; $Lang{CfgEdit_Error__must_be_an_integer} = "Ошибка: \$var должно быть целым числом"; $Lang{CfgEdit_Error__must_be_real_valued_number} = "Ошибка: \$var должно быть действительным числом"; $Lang{CfgEdit_Error__entry__must_be_an_integer} = "Ошибка: \$var элемент \$k должен быть целым числом"; $Lang{CfgEdit_Error__entry__must_be_real_valued_number} = "Ошибка: \$var элемент \$k должен быть действительным числом"; $Lang{CfgEdit_Error__must_be_executable_program} = "Ошибка: \$var должно быть действительным путём исполняемой программы"; $Lang{CfgEdit_Error__must_be_valid_option} = "Ошибка: \$var должно быть допустимой опцией"; $Lang{CfgEdit_Error_Copy_host_does_not_exist} = "Копируемый узел \$copyHost отсутствует, создаётся узел \$fullHost. Удалите этот узел, если это не то, что Вам требуется."; $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"; #end of ru.pm