1 |
#!/bin/perl |
2 |
|
3 |
#my %lang; |
4 |
#use strict; |
5 |
|
6 |
# -------------------------------- |
7 |
|
8 |
$Lang{Start_Archive} = "Start Archive"; |
9 |
$Lang{Stop_Dequeue_Archive} = "Stop/Dequeue Archive"; |
10 |
$Lang{Start_Full_Backup} = "Start Full Backup"; |
11 |
$Lang{Start_Incr_Backup} = "Start Incr Backup"; |
12 |
$Lang{Stop_Dequeue_Backup} = "Stop/Dequeue Backup"; |
13 |
$Lang{Restore} = "Restore"; |
14 |
|
15 |
$Lang{Type_full} = "full"; |
16 |
$Lang{Type_incr} = "incremental"; |
17 |
|
18 |
# ----- |
19 |
|
20 |
$Lang{Only_privileged_users_can_view_admin_options} = "Only privileged users can view admin options."; |
21 |
$Lang{H_Admin_Options} = "BackupPC Server: Admin Options"; |
22 |
$Lang{Admin_Options} = "Admin Options"; |
23 |
$Lang{Admin_Options_Page} = <<EOF; |
24 |
\${h1(qq{$Lang{Admin_Options}})} |
25 |
<br> |
26 |
\${h2("Server Control")} |
27 |
<form action="\$MyURL" method="get"> |
28 |
<table class="tableStnd"> |
29 |
<!--<tr><td>Stop the server:<td><input type="submit" name="action" value="Stop">--> |
30 |
<tr><td>Reload the server configuration:<td><input type="submit" name="action" value="Reload"> |
31 |
</table> |
32 |
</form> |
33 |
<!-- |
34 |
\${h2("Server Configuration")} |
35 |
<ul> |
36 |
<li><i>Other options can go here... e.g.,</i> |
37 |
<li>Edit server configuration |
38 |
</ul> |
39 |
--> |
40 |
EOF |
41 |
$Lang{Unable_to_connect_to_BackupPC_server} = "Unable to connect to BackupPC server", |
42 |
"This CGI script (\$MyURL) is unable to connect to the BackupPC" |
43 |
. " server on \$Conf{ServerHost} port \$Conf{ServerPort}. The error" |
44 |
. " was: \$err.", |
45 |
"Perhaps the BackupPC server is not running or there is a " |
46 |
. " configuration error. Please report this to your Sys Admin."; |
47 |
$Lang{Admin_Start_Server} = <<EOF; |
48 |
\${h1(qq{$Lang{Unable_to_connect_to_BackupPC_server}})} |
49 |
<form action="\$MyURL" method="get"> |
50 |
The BackupPC server at <tt>\$Conf{ServerHost}</tt> port <tt>\$Conf{ServerPort}</tt> |
51 |
is not currently running (maybe you just stopped it, or haven't yet started it).<br> |
52 |
Do you want to start it? |
53 |
<input type="hidden" name="action" value="startServer"> |
54 |
<input type="submit" value="Start Server" name="ignore"> |
55 |
</form> |
56 |
EOF |
57 |
|
58 |
# ----- |
59 |
|
60 |
$Lang{H_BackupPC_Server_Status} = "BackupPC Server Status"; |
61 |
|
62 |
$Lang{BackupPC_Server_Status_General_Info}= <<EOF; |
63 |
\${h2(\"General Server Information\")} |
64 |
|
65 |
<ul> |
66 |
<li> The servers PID is \$Info{pid}, on host \$Conf{ServerHost}, |
67 |
version \$Info{Version}, started at \$serverStartTime. |
68 |
<li> This status was generated at \$now. |
69 |
<li> The configuration was last loaded at \$configLoadTime. |
70 |
<li> PCs will be next queued at \$nextWakeupTime. |
71 |
<li> Other info: |
72 |
<ul> |
73 |
<li>\$numBgQueue pending backup requests from last scheduled wakeup, |
74 |
<li>\$numUserQueue pending user backup requests, |
75 |
<li>\$numCmdQueue pending command requests, |
76 |
\$poolInfo |
77 |
<li>Pool file system was recently at \$Info{DUlastValue}% |
78 |
(\$DUlastTime), today\'s max is \$Info{DUDailyMax}% (\$DUmaxTime) |
79 |
and yesterday\'s max was \$Info{DUDailyMaxPrev}%. |
80 |
</ul> |
81 |
</ul> |
82 |
EOF |
83 |
|
84 |
$Lang{BackupPC_Server_Status} = <<EOF; |
85 |
\${h1(qq{$Lang{H_BackupPC_Server_Status}})} |
86 |
|
87 |
<p> |
88 |
\$generalInfo |
89 |
|
90 |
\${h2("Currently Running Jobs")} |
91 |
<p> |
92 |
<table class="tableStnd" border cellspacing="1" cellpadding="3"> |
93 |
<tr class="tableheader"><td> Host </td> |
94 |
<td> Type </td> |
95 |
<td> User </td> |
96 |
<td> Start Time </td> |
97 |
<td> Command </td> |
98 |
<td align="center"> PID </td> |
99 |
<td align="center"> Xfer PID </td> |
100 |
</tr> |
101 |
\$jobStr |
102 |
</table> |
103 |
<p> |
104 |
|
105 |
\${h2("Failures that need attention")} |
106 |
<p> |
107 |
<table class="tableStnd" border cellspacing="1" cellpadding="3"> |
108 |
<tr class="tableheader"><td align="center"> Host </td> |
109 |
<td align="center"> Type </td> |
110 |
<td align="center"> User </td> |
111 |
<td align="center"> Last Try </td> |
112 |
<td align="center"> Details </td> |
113 |
<td align="center"> Error Time </td> |
114 |
<td> Last error (other than no ping) </td></tr> |
115 |
\$statusStr |
116 |
</table> |
117 |
EOF |
118 |
|
119 |
# -------------------------------- |
120 |
$Lang{BackupPC__Server_Summary} = "BackupPC: Host Summary"; |
121 |
$Lang{BackupPC__Archive} = "BackupPC: Archive"; |
122 |
$Lang{BackupPC_Summary} = <<EOF; |
123 |
|
124 |
\${h1(qq{$Lang{BackupPC__Server_Summary}})} |
125 |
<p> |
126 |
This status was generated at \$now. |
127 |
</p> |
128 |
|
129 |
\${h2("Hosts with good Backups")} |
130 |
<p> |
131 |
There are \$hostCntGood hosts that have been backed up, for a total of: |
132 |
<ul> |
133 |
<li> \$fullTot full backups of total size \${fullSizeTot}GB |
134 |
(prior to pooling and compression), |
135 |
<li> \$incrTot incr backups of total size \${incrSizeTot}GB |
136 |
(prior to pooling and compression). |
137 |
</ul> |
138 |
</p> |
139 |
<table class="tableStnd" border cellpadding="3" cellspacing="1"> |
140 |
<tr class="tableheader"><td> Host </td> |
141 |
<td align="center"> User </td> |
142 |
<td align="center"> #Full </td> |
143 |
<td align="center"> Full Age/days </td> |
144 |
<td align="center"> Full Size/GB </td> |
145 |
<td align="center"> Speed MB/sec </td> |
146 |
<td align="center"> #Incr </td> |
147 |
<td align="center"> Incr Age/days </td> |
148 |
<td align="center"> State </td> |
149 |
<td align="center"> Last attempt </td></tr> |
150 |
\$strGood |
151 |
</table> |
152 |
<br><br> |
153 |
\${h2("Hosts with no Backups")} |
154 |
<p> |
155 |
There are \$hostCntNone hosts with no backups. |
156 |
<p> |
157 |
<table class="tableStnd" border cellpadding="3" cellspacing="1"> |
158 |
<tr class="tableheader"><td> Host </td> |
159 |
<td align="center"> User </td> |
160 |
<td align="center"> #Full </td> |
161 |
<td align="center"> Full Age/days </td> |
162 |
<td align="center"> Full Size/GB </td> |
163 |
<td align="center"> Speed MB/sec </td> |
164 |
<td align="center"> #Incr </td> |
165 |
<td align="center"> Incr Age/days </td> |
166 |
<td align="center"> Current State </td> |
167 |
<td align="center"> Last backup attempt </td></tr> |
168 |
\$strNone |
169 |
</table> |
170 |
EOF |
171 |
|
172 |
$Lang{BackupPC_Archive} = <<EOF; |
173 |
\${h1(qq{$Lang{BackupPC__Archive}})} |
174 |
<script language="javascript" type="text/javascript"> |
175 |
<!-- |
176 |
|
177 |
function checkAll(location) |
178 |
{ |
179 |
for (var i=0;i<document.form1.elements.length;i++) |
180 |
{ |
181 |
var e = document.form1.elements[i]; |
182 |
if ((e.checked || !e.checked) && e.name != \'all\') { |
183 |
if (eval("document.form1."+location+".checked")) { |
184 |
e.checked = true; |
185 |
} else { |
186 |
e.checked = false; |
187 |
} |
188 |
} |
189 |
} |
190 |
} |
191 |
|
192 |
function toggleThis(checkbox) |
193 |
{ |
194 |
var cb = eval("document.form1."+checkbox); |
195 |
cb.checked = !cb.checked; |
196 |
} |
197 |
|
198 |
//--> |
199 |
</script> |
200 |
|
201 |
There are \$hostCntGood hosts that have been backed up for a total size of \${fullSizeTot}GB |
202 |
<p> |
203 |
<form name="form1" method="post" action="\$MyURL"> |
204 |
<input type="hidden" name="fcbMax" value="\$checkBoxCnt"> |
205 |
<input type="hidden" name="type" value="1"> |
206 |
<input type="hidden" name="host" value="\${EscHTML(\$archHost)}"> |
207 |
<input type="hidden" name="action" value="Archive"> |
208 |
<table class="tableStnd" border cellpadding="3" cellspacing="1"> |
209 |
<tr class="tableheader"><td align=center> Host</td> |
210 |
<td align="center"> User </td> |
211 |
<td align="center"> Backup Size </td> |
212 |
\$strGood |
213 |
\$checkAllHosts |
214 |
</table> |
215 |
</form> |
216 |
<p> |
217 |
|
218 |
EOF |
219 |
|
220 |
$Lang{BackupPC_Archive2} = <<EOF; |
221 |
\${h1(qq{$Lang{BackupPC__Archive}})} |
222 |
About to archive the following hosts |
223 |
<ul> |
224 |
\$HostListStr |
225 |
</ul> |
226 |
<form action="\$MyURL" method="post"> |
227 |
\$hiddenStr |
228 |
<input type="hidden" name="action" value="Archive"> |
229 |
<input type="hidden" name="host" value="\${EscHTML(\$archHost)}"> |
230 |
<input type="hidden" name="type" value="2"> |
231 |
<input type="hidden" value="0" name="archive_type"> |
232 |
<table class="tableStnd" border cellspacing="1" cellpadding="3"> |
233 |
\$paramStr |
234 |
<tr> |
235 |
<td colspan=2><input type="submit" value="Start the Archive" name=""></td> |
236 |
</tr> |
237 |
</form> |
238 |
</table> |
239 |
EOF |
240 |
|
241 |
$Lang{BackupPC_Archive2_location} = <<EOF; |
242 |
<tr> |
243 |
<td>Archive Location/Device</td> |
244 |
<td><input type="text" value="\$ArchiveDest" name="archive_device"></td> |
245 |
</tr> |
246 |
EOF |
247 |
|
248 |
$Lang{BackupPC_Archive2_compression} = <<EOF; |
249 |
<tr> |
250 |
<td>Compression</td> |
251 |
<td> |
252 |
<input type="radio" value="0" name="compression" \$ArchiveCompNone>None<br> |
253 |
<input type="radio" value="1" name="compression" \$ArchiveCompGzip>gzip<br> |
254 |
<input type="radio" value="2" name="compression" \$ArchiveCompBzip2>bzip2 |
255 |
</td> |
256 |
</tr> |
257 |
EOF |
258 |
|
259 |
$Lang{BackupPC_Archive2_parity} = <<EOF; |
260 |
<tr> |
261 |
<td>Percentage of Parity Data (0 = disable, 5 = typical)</td> |
262 |
<td><input type="numeric" value="\$ArchivePar" name="par"></td> |
263 |
</tr> |
264 |
EOF |
265 |
|
266 |
$Lang{BackupPC_Archive2_split} = <<EOF; |
267 |
<tr> |
268 |
<td>Split output into</td> |
269 |
<td><input type="numeric" value="\$ArchiveSplit" name="splitsize">Megabytes</td> |
270 |
</tr> |
271 |
EOF |
272 |
|
273 |
# ----------------------------------- |
274 |
$Lang{Pool_Stat} = <<EOF; |
275 |
<li>Pool is \${poolSize}GB comprising \$info->{"\${name}FileCnt"} files |
276 |
and \$info->{"\${name}DirCnt"} directories (as of \$poolTime), |
277 |
<li>Pool hashing gives \$info->{"\${name}FileCntRep"} repeated |
278 |
files with longest chain \$info->{"\${name}FileRepMax"}, |
279 |
<li>Nightly cleanup removed \$info->{"\${name}FileCntRm"} files of |
280 |
size \${poolRmSize}GB (around \$poolTime), |
281 |
EOF |
282 |
|
283 |
# -------------------------------- |
284 |
$Lang{BackupPC__Backup_Requested_on__host} = "BackupPC: Backup Requested on \$host"; |
285 |
# -------------------------------- |
286 |
$Lang{REPLY_FROM_SERVER} = <<EOF; |
287 |
\${h1(\$str)} |
288 |
<p> |
289 |
Reply from server was: \$reply |
290 |
<p> |
291 |
Go back to <a href="\$MyURL?host=\$host">\$host home page</a>. |
292 |
EOF |
293 |
# -------------------------------- |
294 |
$Lang{BackupPC__Start_Backup_Confirm_on__host} = "BackupPC: Start Backup Confirm on \$host"; |
295 |
# -------------------------------- |
296 |
$Lang{Are_you_sure_start} = <<EOF; |
297 |
\${h1("Are you sure?")} |
298 |
<p> |
299 |
You are about to start a \$type backup on \$host. |
300 |
|
301 |
<form action="\$MyURL" method="get"> |
302 |
<input type="hidden" name="host" value="\$host"> |
303 |
<input type="hidden" name="hostIP" value="\$ipAddr"> |
304 |
<input type="hidden" name="doit" value="1"> |
305 |
Do you really want to do this? |
306 |
<input type="submit" value="\$In{action}" name="action"> |
307 |
<input type="submit" value="No" name=""> |
308 |
</form> |
309 |
EOF |
310 |
# -------------------------------- |
311 |
$Lang{BackupPC__Stop_Backup_Confirm_on__host} = "BackupPC: Stop Backup Confirm on \$host"; |
312 |
# -------------------------------- |
313 |
$Lang{Are_you_sure_stop} = <<EOF; |
314 |
|
315 |
\${h1("Are you sure?")} |
316 |
|
317 |
<p> |
318 |
You are about to stop/dequeue backups on \$host; |
319 |
|
320 |
<form action="\$MyURL" method="get"> |
321 |
<input type="hidden" name="host" value="\$host"> |
322 |
<input type="hidden" name="doit" value="1"> |
323 |
Also, please don\'t start another backup for |
324 |
<input type="text" name="backoff" size="10" value="\$backoff"> hours. |
325 |
<p> |
326 |
Do you really want to do this? |
327 |
<input type="submit" value="\$In{action}" name="action"> |
328 |
<input type="submit" value="No" name=""> |
329 |
</form> |
330 |
|
331 |
EOF |
332 |
# -------------------------------- |
333 |
$Lang{Only_privileged_users_can_view_queues_} = "Only privileged users can view queues."; |
334 |
# -------------------------------- |
335 |
$Lang{Only_privileged_users_can_archive} = "Only privileged users can Archive."; |
336 |
# -------------------------------- |
337 |
$Lang{BackupPC__Queue_Summary} = "BackupPC: Queue Summary"; |
338 |
# -------------------------------- |
339 |
$Lang{Backup_Queue_Summary} = <<EOF; |
340 |
\${h1("Backup Queue Summary")} |
341 |
<br><br> |
342 |
\${h2("User Queue Summary")} |
343 |
<p> |
344 |
The following user requests are currently queued: |
345 |
</p> |
346 |
<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%"> |
347 |
<tr class="tableheader"><td> Host </td> |
348 |
<td> Req Time </td> |
349 |
<td> User </td></tr> |
350 |
\$strUser |
351 |
</table> |
352 |
<br><br> |
353 |
|
354 |
\${h2("Background Queue Summary")} |
355 |
<p> |
356 |
The following background requests are currently queued: |
357 |
</p> |
358 |
<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%"> |
359 |
<tr class="tableheader"><td> Host </td> |
360 |
<td> Req Time </td> |
361 |
<td> User </td></tr> |
362 |
\$strBg |
363 |
</table> |
364 |
<br><br> |
365 |
\${h2("Command Queue Summary")} |
366 |
<p> |
367 |
The following command requests are currently queued: |
368 |
</p> |
369 |
<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%"> |
370 |
<tr class="tableheader"><td> Host </td> |
371 |
<td> Req Time </td> |
372 |
<td> User </td> |
373 |
<td> Command </td></tr> |
374 |
\$strCmd |
375 |
</table> |
376 |
EOF |
377 |
|
378 |
# -------------------------------- |
379 |
$Lang{Backup_PC__Log_File__file} = "BackupPC: File \$file"; |
380 |
$Lang{Log_File__file__comment} = <<EOF; |
381 |
\${h1("File \$file \$comment")} |
382 |
<p> |
383 |
EOF |
384 |
# -------------------------------- |
385 |
$Lang{Contents_of_log_file} = <<EOF; |
386 |
Contents of file <tt>\$file</tt>, modified \$mtimeStr \$comment |
387 |
EOF |
388 |
|
389 |
# -------------------------------- |
390 |
$Lang{skipped__skipped_lines} = "[ skipped \$skipped lines ]\n"; |
391 |
# -------------------------------- |
392 |
$Lang{_pre___Can_t_open_log_file__file} = "<pre>\nCan\'t open log file \$file\n"; |
393 |
|
394 |
# -------------------------------- |
395 |
$Lang{BackupPC__Log_File_History} = "BackupPC: Log File History"; |
396 |
$Lang{Log_File_History__hdr} = <<EOF; |
397 |
\${h1("Log File History \$hdr")} |
398 |
<p> |
399 |
<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%"> |
400 |
<tr class="tableheader"><td align="center"> File </td> |
401 |
<td align="center"> Size </td> |
402 |
<td align="center"> Modification time </td></tr> |
403 |
\$str |
404 |
</table> |
405 |
EOF |
406 |
|
407 |
# ------------------------------- |
408 |
$Lang{Recent_Email_Summary} = <<EOF; |
409 |
\${h1("Recent Email Summary (Reverse time order)")} |
410 |
<p> |
411 |
<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%"> |
412 |
<tr class="tableheader"><td align="center"> Recipient </td> |
413 |
<td align="center"> Host </td> |
414 |
<td align="center"> Time </td> |
415 |
<td align="center"> Subject </td></tr> |
416 |
\$str |
417 |
</table> |
418 |
EOF |
419 |
|
420 |
|
421 |
# ------------------------------ |
422 |
$Lang{Browse_backup__num_for__host} = "BackupPC: Browse backup \$num for \$host"; |
423 |
|
424 |
# ------------------------------ |
425 |
$Lang{Restore_Options_for__host} = "BackupPC: Restore Options for \$host"; |
426 |
$Lang{Restore_Options_for__host2} = <<EOF; |
427 |
\${h1("Restore Options for \$host")} |
428 |
<p> |
429 |
You have selected the following files/directories from |
430 |
share \$share, backup number #\$num: |
431 |
<ul> |
432 |
\$fileListStr |
433 |
</ul> |
434 |
</p><p> |
435 |
You have three choices for restoring these files/directories. |
436 |
Please select one of the following options. |
437 |
</p> |
438 |
\${h2("Option 1: Direct Restore")} |
439 |
<p> |
440 |
EOF |
441 |
|
442 |
$Lang{Restore_Options_for__host_Option1} = <<EOF; |
443 |
You can start a restore that will restore these files directly onto |
444 |
\$host. |
445 |
</p><p> |
446 |
<b>Warning:</b> any existing files that match the ones you have |
447 |
selected will be overwritten! |
448 |
</p> |
449 |
<form action="\$MyURL" method="post" name="direct"> |
450 |
<input type="hidden" name="host" value="\${EscHTML(\$host)}"> |
451 |
<input type="hidden" name="num" value="\$num"> |
452 |
<input type="hidden" name="type" value="3"> |
453 |
\$hiddenStr |
454 |
<input type="hidden" value="\$In{action}" name="action"> |
455 |
<table border="0"> |
456 |
<tr> |
457 |
<td>Restore the files to host</td> |
458 |
<td><!--<input type="text" size="40" value="\${EscHTML(\$host)}" |
459 |
name="hostDest">--> |
460 |
<select name="hostDest" onChange="document.direct.shareDest.value=''"> |
461 |
\$hostDestSel |
462 |
</select> |
463 |
<script language="Javascript"> |
464 |
function myOpen(URL) { |
465 |
window.open(URL,'','width=500,height=400'); |
466 |
} |
467 |
</script> |
468 |
<!--<a href="javascript:myOpen('\$MyURL?action=findShares&host='+document.direct.hostDest.options.value)">Search for available shares (NOT IMPLEMENTED)</a>--></td> |
469 |
</tr><tr> |
470 |
<td>Restore the files to share</td> |
471 |
<td><input type="text" size="40" value="\${EscHTML(\$share)}" |
472 |
name="shareDest"></td> |
473 |
</tr><tr> |
474 |
<td>Restore the files below dir<br>(relative to share)</td> |
475 |
<td valign="top"><input type="text" size="40" maxlength="256" |
476 |
value="\${EscHTML(\$pathHdr)}" name="pathHdr"></td> |
477 |
</tr><tr> |
478 |
<td><input type="submit" value="Start Restore" name=""></td> |
479 |
</table> |
480 |
</form> |
481 |
EOF |
482 |
|
483 |
$Lang{Restore_Options_for__host_Option1_disabled} = <<EOF; |
484 |
Direct restore has been disabled for host \${EscHTML(\$hostDest)}. |
485 |
Please select one of the other restore options. |
486 |
EOF |
487 |
|
488 |
# ------------------------------ |
489 |
$Lang{Option_2__Download_Zip_archive} = <<EOF; |
490 |
<p> |
491 |
\${h2("Option 2: Download Zip archive")} |
492 |
<p> |
493 |
You can download a Zip archive containing all the files/directories you have |
494 |
selected. You can then use a local application, such as WinZip, |
495 |
to view or extract any of the files. |
496 |
</p><p> |
497 |
<b>Warning:</b> depending upon which files/directories you have selected, |
498 |
this archive might be very very large. It might take many minutes to |
499 |
create and transfer the archive, and you will need enough local disk |
500 |
space to store it. |
501 |
</p> |
502 |
<form action="\$MyURL" method="post"> |
503 |
<input type="hidden" name="host" value="\${EscHTML(\$host)}"> |
504 |
<input type="hidden" name="num" value="\$num"> |
505 |
<input type="hidden" name="type" value="2"> |
506 |
\$hiddenStr |
507 |
<input type="hidden" value="\$In{action}" name="action"> |
508 |
<input type="checkbox" value="1" name="relative" checked> Make archive relative |
509 |
to \${EscHTML(\$pathHdr eq "" ? "/" : \$pathHdr)} |
510 |
(otherwise archive will contain full paths). |
511 |
<br> |
512 |
Compression (0=off, 1=fast,...,9=best) |
513 |
<input type="text" size="6" value="5" name="compressLevel"> |
514 |
<br> |
515 |
<input type="submit" value="Download Zip File" name=""> |
516 |
</form> |
517 |
EOF |
518 |
|
519 |
# ------------------------------ |
520 |
|
521 |
$Lang{Option_2__Download_Zip_archive2} = <<EOF; |
522 |
<p> |
523 |
\${h2("Option 2: Download Zip archive")} |
524 |
<p> |
525 |
Archive::Zip is not installed so you will not be able to download a |
526 |
zip archive. |
527 |
Please ask your system adminstrator to install Archive::Zip from |
528 |
<a href="http://www.cpan.org">www.cpan.org</a>. |
529 |
</p> |
530 |
EOF |
531 |
|
532 |
|
533 |
# ------------------------------ |
534 |
$Lang{Option_3__Download_Zip_archive} = <<EOF; |
535 |
\${h2("Option 3: Download Tar archive")} |
536 |
<p> |
537 |
You can download a Tar archive containing all the files/directories you |
538 |
have selected. You can then use a local application, such as tar or |
539 |
WinZip to view or extract any of the files. |
540 |
</p><p> |
541 |
<b>Warning:</b> depending upon which files/directories you have selected, |
542 |
this archive might be very very large. It might take many minutes to |
543 |
create and transfer the archive, and you will need enough local disk |
544 |
space to store it. |
545 |
</p> |
546 |
<form action="\$MyURL" method="post"> |
547 |
<input type="hidden" name="host" value="\${EscHTML(\$host)}"> |
548 |
<input type="hidden" name="num" value="\$num"> |
549 |
<input type="hidden" name="type" value="1"> |
550 |
\$hiddenStr |
551 |
<input type="hidden" value="\$In{action}" name="action"> |
552 |
<input type="checkbox" value="1" name="relative" checked> Make archive relative |
553 |
to \${EscHTML(\$pathHdr eq "" ? "/" : \$pathHdr)} |
554 |
(otherwise archive will contain full paths). |
555 |
<br> |
556 |
<input type="submit" value="Download Tar File" name=""> |
557 |
</form> |
558 |
EOF |
559 |
|
560 |
|
561 |
# ------------------------------ |
562 |
$Lang{Restore_Confirm_on__host} = "BackupPC: Restore Confirm on \$host"; |
563 |
|
564 |
$Lang{Are_you_sure} = <<EOF; |
565 |
\${h1("Are you sure?")} |
566 |
<p> |
567 |
You are about to start a restore directly to the machine \$In{hostDest}. |
568 |
The following files will be restored to share \$In{shareDest}, from |
569 |
backup number \$num: |
570 |
<p> |
571 |
<table border> |
572 |
<tr><td>Original file/dir</td><td>Will be restored to</td></tr> |
573 |
\$fileListStr |
574 |
</table> |
575 |
|
576 |
<form action="\$MyURL" method="post"> |
577 |
<input type="hidden" name="host" value="\${EscHTML(\$host)}"> |
578 |
<input type="hidden" name="hostDest" value="\${EscHTML(\$In{hostDest})}"> |
579 |
<input type="hidden" name="shareDest" value="\${EscHTML(\$In{shareDest})}"> |
580 |
<input type="hidden" name="pathHdr" value="\${EscHTML(\$In{pathHdr})}"> |
581 |
<input type="hidden" name="num" value="\$num"> |
582 |
<input type="hidden" name="type" value="4"> |
583 |
\$hiddenStr |
584 |
Do you really want to do this? |
585 |
<input type="submit" value="\$In{action}" name="action"> |
586 |
<input type="submit" value="No" name=""> |
587 |
</form> |
588 |
EOF |
589 |
|
590 |
|
591 |
# -------------------------- |
592 |
$Lang{Restore_Requested_on__hostDest} = "BackupPC: Restore Requested on \$hostDest"; |
593 |
$Lang{Reply_from_server_was___reply} = <<EOF; |
594 |
\${h1(\$str)} |
595 |
<p> |
596 |
Reply from server was: \$reply |
597 |
<p> |
598 |
Go back to <a href="\$MyURL?host=\$hostDest">\$hostDest home page</a>. |
599 |
EOF |
600 |
|
601 |
$Lang{BackupPC_Archive_Reply_from_server} = <<EOF; |
602 |
\${h1(\$str)} |
603 |
<p> |
604 |
Reply from server was: \$reply |
605 |
EOF |
606 |
|
607 |
|
608 |
# ------------------------- |
609 |
$Lang{Host__host_Backup_Summary} = "BackupPC: Host \$host Backup Summary"; |
610 |
|
611 |
$Lang{Host__host_Backup_Summary2} = <<EOF; |
612 |
\${h1("Host \$host Backup Summary")} |
613 |
<p> |
614 |
\$warnStr |
615 |
<ul> |
616 |
\$statusStr |
617 |
</ul> |
618 |
</p> |
619 |
\${h2("User Actions")} |
620 |
<p> |
621 |
<form action="\$MyURL" method="get"> |
622 |
<input type="hidden" name="host" value="\$host"> |
623 |
\$startIncrStr |
624 |
<input type="submit" value="$Lang{Start_Full_Backup}" name="action"> |
625 |
<input type="submit" value="$Lang{Stop_Dequeue_Backup}" name="action"> |
626 |
</form> |
627 |
</p> |
628 |
\${h2("Backup Summary")} |
629 |
<p> |
630 |
Click on the backup number to browse and restore backup files. |
631 |
</p> |
632 |
<table class="tableStnd" border cellspacing="1" cellpadding="3"> |
633 |
<tr class="tableheader"><td align="center"> Backup# </td> |
634 |
<td align="center"> Type </td> |
635 |
<td align="center"> Filled </td> |
636 |
<td align="center"> Start Date </td> |
637 |
<td align="center"> Duration/mins </td> |
638 |
<td align="center"> Age/days </td> |
639 |
<td align="center"> Server Backup Path </td> |
640 |
</tr> |
641 |
\$str |
642 |
</table> |
643 |
<p> |
644 |
|
645 |
\$restoreStr |
646 |
</p> |
647 |
<br><br> |
648 |
\${h2("Xfer Error Summary")} |
649 |
<br><br> |
650 |
<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%"> |
651 |
<tr class="tableheader"><td align="center"> Backup# </td> |
652 |
<td align="center"> Type </td> |
653 |
<td align="center"> View </td> |
654 |
<td align="center"> #Xfer errs </td> |
655 |
<td align="center"> #bad files </td> |
656 |
<td align="center"> #bad share </td> |
657 |
<td align="center"> #tar errs </td> |
658 |
</tr> |
659 |
\$errStr |
660 |
</table> |
661 |
<br><br> |
662 |
|
663 |
\${h2("File Size/Count Reuse Summary")} |
664 |
<p> |
665 |
Existing files are those already in the pool; new files are those added |
666 |
to the pool. |
667 |
Empty files and SMB errors aren\'t counted in the reuse and new counts. |
668 |
</p> |
669 |
<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%"> |
670 |
<tr class="tableheader"><td colspan="2" bgcolor="#ffffff"></td> |
671 |
<td align="center" colspan="3"> Totals </td> |
672 |
<td align="center" colspan="2"> Existing Files </td> |
673 |
<td align="center" colspan="2"> New Files </td> |
674 |
</tr> |
675 |
<tr class="tableheader"> |
676 |
<td align="center"> Backup# </td> |
677 |
<td align="center"> Type </td> |
678 |
<td align="center"> #Files </td> |
679 |
<td align="center"> Size/MB </td> |
680 |
<td align="center"> MB/sec </td> |
681 |
<td align="center"> #Files </td> |
682 |
<td align="center"> Size/MB </td> |
683 |
<td align="center"> #Files </td> |
684 |
<td align="center"> Size/MB </td> |
685 |
</tr> |
686 |
\$sizeStr |
687 |
</table> |
688 |
<br><br> |
689 |
|
690 |
\${h2("Compression Summary")} |
691 |
<p> |
692 |
Compression performance for files already in the pool and newly |
693 |
compressed files. |
694 |
</p> |
695 |
<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%"> |
696 |
<tr class="tableheader"><td colspan="3" bgcolor="#ffffff"></td> |
697 |
<td align="center" colspan="3"> Existing Files </td> |
698 |
<td align="center" colspan="3"> New Files </td> |
699 |
</tr> |
700 |
<tr class="tableheader"><td align="center"> Backup# </td> |
701 |
<td align="center"> Type </td> |
702 |
<td align="center"> Comp Level </td> |
703 |
<td align="center"> Size/MB </td> |
704 |
<td align="center"> Comp/MB </td> |
705 |
<td align="center"> Comp </td> |
706 |
<td align="center"> Size/MB </td> |
707 |
<td align="center"> Comp/MB </td> |
708 |
<td align="center"> Comp </td> |
709 |
</tr> |
710 |
\$compStr |
711 |
</table> |
712 |
<br><br> |
713 |
EOF |
714 |
|
715 |
$Lang{Host__host_Archive_Summary} = "BackupPC: Host \$host Archive Summary"; |
716 |
$Lang{Host__host_Archive_Summary2} = <<EOF; |
717 |
\${h1("Host \$host Archive Summary")} |
718 |
<p> |
719 |
\$warnStr |
720 |
<ul> |
721 |
\$statusStr |
722 |
</ul> |
723 |
|
724 |
\${h2("User Actions")} |
725 |
<p> |
726 |
<form action="\$MyURL" method="get"> |
727 |
<input type="hidden" name="archivehost" value="\$host"> |
728 |
<input type="hidden" name="host" value="\$host"> |
729 |
<input type="submit" value="$Lang{Start_Archive}" name="action"> |
730 |
<input type="submit" value="$Lang{Stop_Dequeue_Archive}" name="action"> |
731 |
</form> |
732 |
|
733 |
\$ArchiveStr |
734 |
|
735 |
EOF |
736 |
|
737 |
# ------------------------- |
738 |
$Lang{Error} = "BackupPC: Error"; |
739 |
$Lang{Error____head} = <<EOF; |
740 |
\${h1("Error: \$head")} |
741 |
<p>\$mesg</p> |
742 |
EOF |
743 |
|
744 |
# ------------------------- |
745 |
$Lang{NavSectionTitle_} = "Server"; |
746 |
|
747 |
# ------------------------- |
748 |
$Lang{Backup_browse_for__host} = <<EOF; |
749 |
\${h1("Backup browse for \$host")} |
750 |
|
751 |
<script language="javascript" type="text/javascript"> |
752 |
<!-- |
753 |
|
754 |
function checkAll(location) |
755 |
{ |
756 |
for (var i=0;i<document.form1.elements.length;i++) |
757 |
{ |
758 |
var e = document.form1.elements[i]; |
759 |
if ((e.checked || !e.checked) && e.name != \'all\') { |
760 |
if (eval("document.form1."+location+".checked")) { |
761 |
e.checked = true; |
762 |
} else { |
763 |
e.checked = false; |
764 |
} |
765 |
} |
766 |
} |
767 |
} |
768 |
|
769 |
function toggleThis(checkbox) |
770 |
{ |
771 |
var cb = eval("document.form1."+checkbox); |
772 |
cb.checked = !cb.checked; |
773 |
} |
774 |
|
775 |
//--> |
776 |
</script> |
777 |
|
778 |
<form name="form0" method="post" action="\$MyURL"> |
779 |
<input type="hidden" name="num" value="\$num"> |
780 |
<input type="hidden" name="host" value="\$host"> |
781 |
<input type="hidden" name="share" value="\${EscHTML(\$share)}"> |
782 |
<input type="hidden" name="action" value="browse"> |
783 |
<ul> |
784 |
<li> You are browsing backup #\$num, which started around \$backupTime |
785 |
(\$backupAge days ago), |
786 |
\$filledBackup |
787 |
<li> Enter directory: <input type="text" name="dir" size="50" maxlength="4096" value="\${EscHTML(\$dir)}"> <input type="submit" value="\$Lang->{Go}" name="Submit"> |
788 |
<li> Click on a directory below to navigate into that directory, |
789 |
<li> Click on a file below to restore that file, |
790 |
<li> You can view the backup <a href="\$MyURL?action=dirHistory&host=\${EscURI(\$host)}&share=\$shareURI&dir=\$pathURI">history</a> of the current directory. |
791 |
</ul> |
792 |
</form> |
793 |
|
794 |
\${h2("Contents of \${EscHTML(\$dirDisplay)}")} |
795 |
<form name="form1" method="post" action="\$MyURL"> |
796 |
<input type="hidden" name="num" value="\$num"> |
797 |
<input type="hidden" name="host" value="\$host"> |
798 |
<input type="hidden" name="share" value="\${EscHTML(\$share)}"> |
799 |
<input type="hidden" name="fcbMax" value="\$checkBoxCnt"> |
800 |
<input type="hidden" name="action" value="$Lang{Restore}"> |
801 |
<br> |
802 |
<table width="100%"> |
803 |
<tr><td valign="top"> |
804 |
<br><table align="center" border="0" cellpadding="0" cellspacing="0" bgcolor="#ffffff"> |
805 |
\$dirStr |
806 |
</table> |
807 |
</td><td width="3%"> |
808 |
</td><td valign="top"> |
809 |
<br> |
810 |
<table border="0" width="100%" align="left" cellpadding="3" cellspacing="1"> |
811 |
\$fileHeader |
812 |
\$topCheckAll |
813 |
\$fileStr |
814 |
\$checkAll |
815 |
</table> |
816 |
</td></tr></table> |
817 |
<br> |
818 |
<!-- |
819 |
This is now in the checkAll row |
820 |
<input type="submit" name="Submit" value="Restore selected files"> |
821 |
--> |
822 |
</form> |
823 |
EOF |
824 |
|
825 |
# ------------------------------ |
826 |
$Lang{DirHistory_backup_for__host} = "BackupPC: Directory backup history for \$host"; |
827 |
|
828 |
# |
829 |
# These two strings are used to build the links for directories and |
830 |
# file versions. Files are appended with a version number. |
831 |
# |
832 |
$Lang{DirHistory_dirLink} = "dir"; |
833 |
$Lang{DirHistory_fileLink} = "v"; |
834 |
|
835 |
$Lang{DirHistory_for__host} = <<EOF; |
836 |
\${h1("Directory backup history for \$host")} |
837 |
<p> |
838 |
This display shows each unique version of files across all |
839 |
the backups: |
840 |
<ul> |
841 |
<li> Click on a backup number to return to the backup browser, |
842 |
<li> Click on a directory link (\$Lang->{DirHistory_dirLink}) to navigate |
843 |
into that directory, |
844 |
<li> Click on a file version link (\$Lang->{DirHistory_fileLink}0, |
845 |
\$Lang->{DirHistory_fileLink}1, ...) to download that file, |
846 |
<li> Files with the same contents between different backups have the same |
847 |
version number, |
848 |
<li> Files or directories not present in a particular backup have an |
849 |
empty box. |
850 |
<li> Files shown with the same version might have different attributes. |
851 |
Select the backup number to see the file attributes. |
852 |
</ul> |
853 |
|
854 |
\${h2("History of \${EscHTML(\$dirDisplay)}")} |
855 |
|
856 |
<br> |
857 |
<table cellspacing="2" cellpadding="3"> |
858 |
<tr class="fviewheader"><td>Backup number</td>\$backupNumStr</tr> |
859 |
<tr class="fviewheader"><td>Backup time</td>\$backupTimeStr</tr> |
860 |
\$fileStr |
861 |
</table> |
862 |
EOF |
863 |
|
864 |
# ------------------------------ |
865 |
$Lang{Restore___num_details_for__host} = "BackupPC: Restore #\$num details for \$host"; |
866 |
|
867 |
$Lang{Restore___num_details_for__host2} = <<EOF; |
868 |
\${h1("Restore #\$num Details for \$host")} |
869 |
<p> |
870 |
<table class="tableStnd" border cellspacing="1" cellpadding="3" width="90%"> |
871 |
<tr><td class="tableheader"> Number </td><td class="border"> \$Restores[\$i]{num} </td></tr> |
872 |
<tr><td class="tableheader"> Requested by </td><td class="border"> \$RestoreReq{user} </td></tr> |
873 |
<tr><td class="tableheader"> Request time </td><td class="border"> \$reqTime </td></tr> |
874 |
<tr><td class="tableheader"> Result </td><td class="border"> \$Restores[\$i]{result} </td></tr> |
875 |
<tr><td class="tableheader"> Error Message </td><td class="border"> \$Restores[\$i]{errorMsg} </td></tr> |
876 |
<tr><td class="tableheader"> Source host </td><td class="border"> \$RestoreReq{hostSrc} </td></tr> |
877 |
<tr><td class="tableheader"> Source backup num </td><td class="border"> \$RestoreReq{num} </td></tr> |
878 |
<tr><td class="tableheader"> Source share </td><td class="border"> \$RestoreReq{shareSrc} </td></tr> |
879 |
<tr><td class="tableheader"> Destination host </td><td class="border"> \$RestoreReq{hostDest} </td></tr> |
880 |
<tr><td class="tableheader"> Destination share </td><td class="border"> \$RestoreReq{shareDest} </td></tr> |
881 |
<tr><td class="tableheader"> Start time </td><td class="border"> \$startTime </td></tr> |
882 |
<tr><td class="tableheader"> Duration </td><td class="border"> \$duration min </td></tr> |
883 |
<tr><td class="tableheader"> Number of files </td><td class="border"> \$Restores[\$i]{nFiles} </td></tr> |
884 |
<tr><td class="tableheader"> Total size </td><td class="border"> \${MB} MB </td></tr> |
885 |
<tr><td class="tableheader"> Transfer rate </td><td class="border"> \$MBperSec MB/sec </td></tr> |
886 |
<tr><td class="tableheader"> TarCreate errors </td><td class="border"> \$Restores[\$i]{tarCreateErrs} </td></tr> |
887 |
<tr><td class="tableheader"> Xfer errors </td><td class="border"> \$Restores[\$i]{xferErrs} </td></tr> |
888 |
<tr><td class="tableheader"> Xfer log file </td><td class="border"> |
889 |
<a href="\$MyURL?action=view&type=RestoreLOG&num=\$Restores[\$i]{num}&host=\$host">View</a>, |
890 |
<a href="\$MyURL?action=view&type=RestoreErr&num=\$Restores[\$i]{num}&host=\$host">Errors</a> |
891 |
</tr></tr> |
892 |
</table> |
893 |
</p> |
894 |
\${h1("File/Directory list")} |
895 |
<p> |
896 |
<table class="tableStnd" border cellspacing="1" cellpadding="3" width="100%"> |
897 |
<tr class="tableheader"><td>Original file/dir</td><td>Restored to</td></tr> |
898 |
\$fileListStr |
899 |
</table> |
900 |
EOF |
901 |
|
902 |
# ------------------------------ |
903 |
$Lang{Archive___num_details_for__host} = "BackupPC: Archive #\$num details for \$host"; |
904 |
|
905 |
$Lang{Archive___num_details_for__host2 } = <<EOF; |
906 |
\${h1("Archive #\$num Details for \$host")} |
907 |
<p> |
908 |
<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%"> |
909 |
<tr><td class="tableheader"> Number </td><td class="border"> \$Archives[\$i]{num} </td></tr> |
910 |
<tr><td class="tableheader"> Requested by </td><td class="border"> \$ArchiveReq{user} </td></tr> |
911 |
<tr><td class="tableheader"> Request time </td><td class="border"> \$reqTime </td></tr> |
912 |
<tr><td class="tableheader"> Result </td><td class="border"> \$Archives[\$i]{result} </td></tr> |
913 |
<tr><td class="tableheader"> Error Message </td><td class="border"> \$Archives[\$i]{errorMsg} </td></tr> |
914 |
<tr><td class="tableheader"> Start time </td><td class="border"> \$startTime </td></tr> |
915 |
<tr><td class="tableheader"> Duration </td><td class="border"> \$duration min </td></tr> |
916 |
<tr><td class="tableheader"> Xfer log file </td><td class="border"> |
917 |
<a href="\$MyURL?action=view&type=ArchiveLOG&num=\$Archives[\$i]{num}&host=\$host">View</a>, |
918 |
<a href="\$MyURL?action=view&type=ArchiveErr&num=\$Archives[\$i]{num}&host=\$host">Errors</a> |
919 |
</tr></tr> |
920 |
</table> |
921 |
<p> |
922 |
\${h1("Host list")} |
923 |
<p> |
924 |
<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%"> |
925 |
<tr class="tableheader"><td>Host</td><td>Backup Number</td></tr> |
926 |
\$HostListStr |
927 |
</table> |
928 |
EOF |
929 |
|
930 |
# ----------------------------------- |
931 |
$Lang{Email_Summary} = "BackupPC: Email Summary"; |
932 |
|
933 |
# ----------------------------------- |
934 |
# !! ERROR messages !! |
935 |
# ----------------------------------- |
936 |
$Lang{BackupPC__Lib__new_failed__check_apache_error_log} = "BackupPC::Lib->new failed: check apache error_log\n"; |
937 |
$Lang{Wrong_user__my_userid_is___} = |
938 |
"Wrong user: my userid is \$>, instead of \$uid" |
939 |
. "(\$Conf{BackupPCUser})\n"; |
940 |
# $Lang{Only_privileged_users_can_view_PC_summaries} = "Only privileged users can view PC summaries."; |
941 |
$Lang{Only_privileged_users_can_stop_or_start_backups} = |
942 |
"Only privileged users can stop or start backups on" |
943 |
. " \${EscHTML(\$host)}."; |
944 |
$Lang{Invalid_number__num} = "Invalid number \$num"; |
945 |
$Lang{Unable_to_open__file__configuration_problem} = "Unable to open \$file: configuration problem?"; |
946 |
$Lang{Only_privileged_users_can_view_log_or_config_files} = "Only privileged users can view log or config files."; |
947 |
$Lang{Only_privileged_users_can_view_log_files} = "Only privileged users can view log files."; |
948 |
$Lang{Only_privileged_users_can_view_email_summaries} = "Only privileged users can view email summaries."; |
949 |
$Lang{Only_privileged_users_can_browse_backup_files} = "Only privileged users can browse backup files" |
950 |
. " for host \${EscHTML(\$In{host})}."; |
951 |
$Lang{Empty_host_name} = "Empty host name."; |
952 |
$Lang{Directory___EscHTML} = "Directory \${EscHTML(\"\$TopDir/pc/\$host/\$num\")}" |
953 |
. " is empty"; |
954 |
$Lang{Can_t_browse_bad_directory_name2} = "Can\'t browse bad directory name" |
955 |
. " \${EscHTML(\$relDir)}"; |
956 |
$Lang{Only_privileged_users_can_restore_backup_files} = "Only privileged users can restore backup files" |
957 |
. " for host \${EscHTML(\$In{host})}."; |
958 |
$Lang{Bad_host_name} = "Bad host name \${EscHTML(\$host)}"; |
959 |
$Lang{You_haven_t_selected_any_files__please_go_Back_to} = "You haven\'t selected any files; please go Back to" |
960 |
. " select some files."; |
961 |
$Lang{You_haven_t_selected_any_hosts} = "You haven\'t selected any hosts; please go Back to" |
962 |
. " select some hosts."; |
963 |
$Lang{Nice_try__but_you_can_t_put} = "Nice try, but you can\'t put \'..\' in any of the file names"; |
964 |
$Lang{Host__doesn_t_exist} = "Host \${EscHTML(\$In{hostDest})} doesn\'t exist"; |
965 |
$Lang{You_don_t_have_permission_to_restore_onto_host} = "You don\'t have permission to restore onto host" |
966 |
. " \${EscHTML(\$In{hostDest})}"; |
967 |
$Lang{Can_t_open_create} = "Can\'t open/create " |
968 |
. "\${EscHTML(\"\$TopDir/pc/\$hostDest/\$reqFileName\")}"; |
969 |
$Lang{Only_privileged_users_can_restore_backup_files2} = "Only privileged users can restore backup files" |
970 |
. " for host \${EscHTML(\$host)}."; |
971 |
$Lang{Empty_host_name} = "Empty host name"; |
972 |
$Lang{Unknown_host_or_user} = "Unknown host or user \${EscHTML(\$host)}"; |
973 |
$Lang{Only_privileged_users_can_view_information_about} = "Only privileged users can view information about" |
974 |
. " host \${EscHTML(\$host)}." ; |
975 |
$Lang{Only_privileged_users_can_view_archive_information} = "Only privileged users can view archive information."; |
976 |
$Lang{Only_privileged_users_can_view_restore_information} = "Only privileged users can view restore information."; |
977 |
$Lang{Restore_number__num_for_host__does_not_exist} = "Restore number \$num for host \${EscHTML(\$host)} does" |
978 |
. " not exist."; |
979 |
$Lang{Archive_number__num_for_host__does_not_exist} = "Archive number \$num for host \${EscHTML(\$host)} does" |
980 |
. " not exist."; |
981 |
$Lang{Can_t_find_IP_address_for} = "Can\'t find IP address for \${EscHTML(\$host)}"; |
982 |
$Lang{host_is_a_DHCP_host} = <<EOF; |
983 |
\$host is a DHCP host, and I don\'t know its IP address. I checked the |
984 |
netbios name of \$ENV{REMOTE_ADDR}\$tryIP, and found that that machine |
985 |
is not \$host. |
986 |
<p> |
987 |
Until I see \$host at a particular DHCP address, you can only |
988 |
start this request from the client machine itself. |
989 |
EOF |
990 |
|
991 |
# ------------------------------------ |
992 |
# !! Server Mesg !! |
993 |
# ------------------------------------ |
994 |
|
995 |
$Lang{Backup_requested_on_DHCP__host} = "Backup requested on DHCP \$host (\$In{hostIP}) by" |
996 |
. " \$User from \$ENV{REMOTE_ADDR}"; |
997 |
$Lang{Backup_requested_on__host_by__User} = "Backup requested on \$host by \$User"; |
998 |
$Lang{Backup_stopped_dequeued_on__host_by__User} = "Backup stopped/dequeued on \$host by \$User"; |
999 |
$Lang{Restore_requested_to_host__hostDest__backup___num} = "Restore requested to host \$hostDest, backup #\$num," |
1000 |
. " by \$User from \$ENV{REMOTE_ADDR}"; |
1001 |
$Lang{Archive_requested} = "Archive requested by \$User from \$ENV{REMOTE_ADDR}"; |
1002 |
|
1003 |
# ------------------------------------------------- |
1004 |
# ------- Stuff that was forgotten ---------------- |
1005 |
# ------------------------------------------------- |
1006 |
|
1007 |
$Lang{Status} = "Status"; |
1008 |
$Lang{PC_Summary} = "Host Summary"; |
1009 |
$Lang{LOG_file} = "LOG file"; |
1010 |
$Lang{LOG_files} = "LOG files"; |
1011 |
$Lang{Old_LOGs} = "Old LOGs"; |
1012 |
$Lang{Email_summary} = "Email summary"; |
1013 |
$Lang{Config_file} = "Config file"; |
1014 |
$Lang{Hosts_file} = "Hosts file"; |
1015 |
$Lang{Current_queues} = "Current queues"; |
1016 |
$Lang{Documentation} = "Documentation"; |
1017 |
|
1018 |
#$Lang{Host_or_User_name} = "<small>Host or User name:</small>"; |
1019 |
$Lang{Go} = "Go"; |
1020 |
$Lang{Hosts} = "Hosts"; |
1021 |
$Lang{Select_a_host} = "Select a host..."; |
1022 |
|
1023 |
$Lang{There_have_been_no_archives} = "<h2> There have been no archives </h2>\n"; |
1024 |
$Lang{This_PC_has_never_been_backed_up} = "<h2> This PC has never been backed up!! </h2>\n"; |
1025 |
$Lang{This_PC_is_used_by} = "<li>This PC is used by \${UserLink(\$user)}"; |
1026 |
|
1027 |
$Lang{Extracting_only_Errors} = "(Extracting only Errors)"; |
1028 |
$Lang{XferLOG} = "XferLOG"; |
1029 |
$Lang{Errors} = "Errors"; |
1030 |
|
1031 |
# ------------ |
1032 |
$Lang{Last_email_sent_to__was_at___subject} = <<EOF; |
1033 |
<li>Last email sent to \${UserLink(\$user)} was at \$mailTime, subject "\$subj". |
1034 |
EOF |
1035 |
# ------------ |
1036 |
$Lang{The_command_cmd_is_currently_running_for_started} = <<EOF; |
1037 |
<li>The command \$cmd is currently running for \$host, started \$startTime. |
1038 |
EOF |
1039 |
|
1040 |
# ----------- |
1041 |
$Lang{Host_host_is_queued_on_the_background_queue_will_be_backed_up_soon} = <<EOF; |
1042 |
<li>Host \$host is queued on the background queue (will be backed up soon). |
1043 |
EOF |
1044 |
|
1045 |
# ---------- |
1046 |
$Lang{Host_host_is_queued_on_the_user_queue__will_be_backed_up_soon} = <<EOF; |
1047 |
<li>Host \$host is queued on the user queue (will be backed up soon). |
1048 |
EOF |
1049 |
|
1050 |
# --------- |
1051 |
$Lang{A_command_for_host_is_on_the_command_queue_will_run_soon} = <<EOF; |
1052 |
<li>A command for \$host is on the command queue (will run soon). |
1053 |
EOF |
1054 |
|
1055 |
# -------- |
1056 |
$Lang{Last_status_is_state_StatusHost_state_reason_as_of_startTime} = <<EOF; |
1057 |
<li>Last status is state \"\$Lang->{\$StatusHost{state}}\"\$reason as of \$startTime. |
1058 |
EOF |
1059 |
|
1060 |
# -------- |
1061 |
$Lang{Last_error_is____EscHTML_StatusHost_error} = <<EOF; |
1062 |
<li>Last error is \"\${EscHTML(\$StatusHost{error})}\". |
1063 |
EOF |
1064 |
|
1065 |
# ------ |
1066 |
$Lang{Pings_to_host_have_failed_StatusHost_deadCnt__consecutive_times} = <<EOF; |
1067 |
<li>Pings to \$host have failed \$StatusHost{deadCnt} consecutive times. |
1068 |
EOF |
1069 |
|
1070 |
# ----- |
1071 |
$Lang{Prior_to_that__pings} = "Prior to that, pings"; |
1072 |
|
1073 |
# ----- |
1074 |
$Lang{priorStr_to_host_have_succeeded_StatusHostaliveCnt_consecutive_times} = <<EOF; |
1075 |
<li>\$priorStr to \$host have succeeded \$StatusHost{aliveCnt} |
1076 |
consecutive times. |
1077 |
EOF |
1078 |
|
1079 |
$Lang{Because__host_has_been_on_the_network_at_least__Conf_BlackoutGoodCnt_consecutive_times___} = <<EOF; |
1080 |
<li>Because \$host has been on the network at least \$Conf{BlackoutGoodCnt} |
1081 |
consecutive times, it will not be backed up from \$blackoutStr. |
1082 |
EOF |
1083 |
|
1084 |
$Lang{__time0_to__time1_on__days} = "\$t0 to \$t1 on \$days"; |
1085 |
|
1086 |
$Lang{Backups_are_deferred_for_hours_hours_change_this_number} = <<EOF; |
1087 |
<li>Backups are deferred for \$hours hours |
1088 |
(<a href=\"\$MyURL?action=\${EscURI(\$Lang->{Stop_Dequeue_Archive})}&host=\$host\">change this number</a>). |
1089 |
EOF |
1090 |
|
1091 |
$Lang{tryIP} = " and \$StatusHost{dhcpHostIP}"; |
1092 |
|
1093 |
# $Lang{Host_Inhost} = "Host \$In{host}"; |
1094 |
|
1095 |
$Lang{checkAll} = <<EOF; |
1096 |
<tr><td class="fviewborder"> |
1097 |
<input type="checkbox" name="allFiles" onClick="return checkAll('allFiles');"> Select all |
1098 |
</td><td colspan="5" align="center" class="fviewborder"> |
1099 |
<input type="submit" name="Submit" value="Restore selected files"> |
1100 |
</td></tr> |
1101 |
EOF |
1102 |
|
1103 |
$Lang{checkAllHosts} = <<EOF; |
1104 |
<tr><td class="fviewborder"> |
1105 |
<input type="checkbox" name="allFiles" onClick="return checkAll('allFiles');"> Select all |
1106 |
</td><td colspan="2" align="center" class="fviewborder"> |
1107 |
<input type="submit" name="Submit" value="Archive selected hosts"> |
1108 |
</td></tr> |
1109 |
EOF |
1110 |
|
1111 |
$Lang{fileHeader} = <<EOF; |
1112 |
<tr class="fviewheader"><td align=center> Name</td> |
1113 |
<td align="center"> Type</td> |
1114 |
<td align="center"> Mode</td> |
1115 |
<td align="center"> #</td> |
1116 |
<td align="center"> Size</td> |
1117 |
<td align="center"> Date modified</td> |
1118 |
</tr> |
1119 |
EOF |
1120 |
|
1121 |
$Lang{Home} = "Home"; |
1122 |
$Lang{Browse} = "Browse backups"; |
1123 |
$Lang{Last_bad_XferLOG} = "Last bad XferLOG"; |
1124 |
$Lang{Last_bad_XferLOG_errors_only} = "Last bad XferLOG (errors only)"; |
1125 |
|
1126 |
$Lang{This_display_is_merged_with_backup} = <<EOF; |
1127 |
<li> This display is merged with backup #\$numF. |
1128 |
EOF |
1129 |
|
1130 |
$Lang{Visit_this_directory_in_backup} = <<EOF; |
1131 |
<li> Select the backup you wish to view: <select onChange="window.location=this.value">\$otherDirs </select> |
1132 |
EOF |
1133 |
|
1134 |
$Lang{Restore_Summary} = <<EOF; |
1135 |
\${h2("Restore Summary")} |
1136 |
<p> |
1137 |
Click on the restore number for more details. |
1138 |
<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%"> |
1139 |
<tr class="tableheader"><td align="center"> Restore# </td> |
1140 |
<td align="center"> Result </td> |
1141 |
<td align="right"> Start Date</td> |
1142 |
<td align="right"> Dur/mins</td> |
1143 |
<td align="right"> #files </td> |
1144 |
<td align="right"> MB </td> |
1145 |
<td align="right"> #tar errs </td> |
1146 |
<td align="right"> #xferErrs </td> |
1147 |
</tr> |
1148 |
\$restoreStr |
1149 |
</table> |
1150 |
<p> |
1151 |
EOF |
1152 |
|
1153 |
$Lang{Archive_Summary} = <<EOF; |
1154 |
\${h2("Archive Summary")} |
1155 |
<p> |
1156 |
Click on the archive number for more details. |
1157 |
<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%"> |
1158 |
<tr class="tableheader"><td align="center"> Archive# </td> |
1159 |
<td align="center"> Result </td> |
1160 |
<td align="right"> Start Date</td> |
1161 |
<td align="right"> Dur/mins</td> |
1162 |
</tr> |
1163 |
\$ArchiveStr |
1164 |
</table> |
1165 |
<p> |
1166 |
EOF |
1167 |
|
1168 |
$Lang{BackupPC__Documentation} = "BackupPC: Documentation"; |
1169 |
|
1170 |
$Lang{No} = "no"; |
1171 |
$Lang{Yes} = "yes"; |
1172 |
|
1173 |
$Lang{The_directory_is_empty} = <<EOF; |
1174 |
<tr><td bgcolor="#ffffff">The directory \${EscHTML(\$dirDisplay)} is empty |
1175 |
</td></tr> |
1176 |
EOF |
1177 |
|
1178 |
#$Lang{on} = "on"; |
1179 |
$Lang{off} = "off"; |
1180 |
|
1181 |
$Lang{backupType_full} = "full"; |
1182 |
$Lang{backupType_incr} = "incr"; |
1183 |
$Lang{backupType_partial} = "partial"; |
1184 |
|
1185 |
$Lang{failed} = "failed"; |
1186 |
$Lang{success} = "success"; |
1187 |
$Lang{and} = "and"; |
1188 |
|
1189 |
# ------ |
1190 |
# Hosts states and reasons |
1191 |
$Lang{Status_idle} = "idle"; |
1192 |
$Lang{Status_backup_starting} = "backup starting"; |
1193 |
$Lang{Status_backup_in_progress} = "backup in progress"; |
1194 |
$Lang{Status_restore_starting} = "restore starting"; |
1195 |
$Lang{Status_restore_in_progress} = "restore in progress"; |
1196 |
$Lang{Status_link_pending} = "link pending"; |
1197 |
$Lang{Status_link_running} = "link running"; |
1198 |
|
1199 |
$Lang{Reason_backup_done} = "backup done"; |
1200 |
$Lang{Reason_restore_done} = "restore done"; |
1201 |
$Lang{Reason_archive_done} = "archive done"; |
1202 |
$Lang{Reason_nothing_to_do} = "nothing to do"; |
1203 |
$Lang{Reason_backup_failed} = "backup failed"; |
1204 |
$Lang{Reason_restore_failed} = "restore failed"; |
1205 |
$Lang{Reason_archive_failed} = "archive failed"; |
1206 |
$Lang{Reason_no_ping} = "no ping"; |
1207 |
$Lang{Reason_backup_canceled_by_user} = "backup canceled by user"; |
1208 |
$Lang{Reason_restore_canceled_by_user} = "restore canceled by user"; |
1209 |
$Lang{Reason_archive_canceled_by_user} = "archive canceled by user"; |
1210 |
|
1211 |
# --------- |
1212 |
# Email messages |
1213 |
|
1214 |
# No backup ever |
1215 |
$Lang{EMailNoBackupEverSubj} = "BackupPC: no backups of \$host have succeeded"; |
1216 |
$Lang{EMailNoBackupEverMesg} = <<'EOF'; |
1217 |
To: $user$domain |
1218 |
cc: |
1219 |
Subject: $subj |
1220 |
|
1221 |
Dear $userName, |
1222 |
|
1223 |
Your PC ($host) has never been successfully backed up by our |
1224 |
PC backup software. PC backups should occur automatically |
1225 |
when your PC is connected to the network. You should contact |
1226 |
computer support if: |
1227 |
|
1228 |
- Your PC has been regularly connected to the network, meaning |
1229 |
there is some configuration or setup problem preventing |
1230 |
backups from occurring. |
1231 |
|
1232 |
- You don't want your PC backed up and you want these email |
1233 |
messages to stop. |
1234 |
|
1235 |
Otherwise, please make sure your PC is connected to the network |
1236 |
next time you are in the office. |
1237 |
|
1238 |
Regards, |
1239 |
BackupPC Genie |
1240 |
http://backuppc.sourceforge.net |
1241 |
EOF |
1242 |
|
1243 |
# No recent backup |
1244 |
$Lang{EMailNoBackupRecentSubj} = "BackupPC: no recent backups on \$host"; |
1245 |
$Lang{EMailNoBackupRecentMesg} = <<'EOF'; |
1246 |
To: $user$domain |
1247 |
cc: |
1248 |
Subject: $subj |
1249 |
|
1250 |
Dear $userName, |
1251 |
|
1252 |
Your PC ($host) has not been successfully backed up for $days days. |
1253 |
Your PC has been correctly backed up $numBackups times from $firstTime to $days |
1254 |
ago. PC backups should occur automatically when your PC is connected |
1255 |
to the network. |
1256 |
|
1257 |
If your PC has been connected for more than a few hours to the |
1258 |
network during the last $days days you should contact IS to find |
1259 |
out why backups are not working. |
1260 |
|
1261 |
Otherwise, if you are out of the office, there's not much you can |
1262 |
do, other than manually copying especially critical files to other |
1263 |
media. You should be aware that any files you have created or |
1264 |
changed in the last $days days (including all new email and |
1265 |
attachments) cannot be restored if your PC disk crashes. |
1266 |
|
1267 |
Regards, |
1268 |
BackupPC Genie |
1269 |
http://backuppc.sourceforge.net |
1270 |
EOF |
1271 |
|
1272 |
# Old Outlook files |
1273 |
$Lang{EMailOutlookBackupSubj} = "BackupPC: Outlook files on \$host need to be backed up"; |
1274 |
$Lang{EMailOutlookBackupMesg} = <<'EOF'; |
1275 |
To: $user$domain |
1276 |
cc: |
1277 |
Subject: $subj |
1278 |
|
1279 |
Dear $userName, |
1280 |
|
1281 |
The Outlook files on your PC have $howLong. |
1282 |
These files contain all your email, attachments, contact and calendar |
1283 |
information. Your PC has been correctly backed up $numBackups times from |
1284 |
$firstTime to $lastTime days ago. However, Outlook locks all its files when |
1285 |
it is running, preventing these files from being backed up. |
1286 |
|
1287 |
It is recommended you backup the Outlook files when you are connected |
1288 |
to the network by exiting Outlook and all other applications, and, |
1289 |
using just your browser, go to this link: |
1290 |
|
1291 |
$CgiURL?host=$host |
1292 |
|
1293 |
Select "Start Incr Backup" twice to start a new incremental backup. |
1294 |
You can select "Return to $host page" and then hit "reload" to check |
1295 |
the status of the backup. It should take just a few minutes to |
1296 |
complete. |
1297 |
|
1298 |
Regards, |
1299 |
BackupPC Genie |
1300 |
http://backuppc.sourceforge.net |
1301 |
EOF |
1302 |
|
1303 |
$Lang{howLong_not_been_backed_up} = "not been backed up successfully"; |
1304 |
$Lang{howLong_not_been_backed_up_for_days_days} = "not been backed up for \$days days"; |
1305 |
|
1306 |
#end of lang_en.pm |