/usr/lib/apt-cacher-ng/report.html is in apt-cacher-ng 3.1-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 | <!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=8">
<meta name="MSSmartTagsPreventParsing" content="true">
<title>Apt-Cacher NG Command And Control Page</title>
<link rel="stylesheet" type="text/css" href="/style.css">
</head>
<body>
<div align="center">
<div class="title maxwid"><span>Apt-Cacher NG maintenance page for ${hostname}</span></div>
<a name="stats"></a>
<div class="visarea maxwid" style="text-align:left">
<h2>Transfer statistics</h2>
<table border=0 cellpadding=2 cellspacing=1 bgcolor="black">
<tr>
<td class="coltitle"> </td>
<td class="coltitle">Since startup</td>
<td class="coltitle">Recent history</td>
</tr>
<tr>
<td class="coltitle" style="text-align:left">Data fetched:</td>
<td class="colcont" style="text-align:left"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA
B3RJTUUH4AoKFBQ7exd8OgAAAAxJREFUCNdjUDC/DwABsQE3XXYqIQAAAABJRU5ErkJggg==" width=${dataIn} height=11> ${dataInHuman}</td>
<td class="colcont" style="text-align:left"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA
B3RJTUUH4AoKFBQ7exd8OgAAAAxJREFUCNdjUDC/DwABsQE3XXYqIQAAAABJRU5ErkJggg==" width=${dataHistIn} height=11> ${dataHistInHuman}</td>
</tr>
<tr>
<td class="coltitle" style="text-align:left">Data served:</td>
<td class="colcont" style="text-align:left"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA
B3RJTUUH4AoKFBIl10Lm3wAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUH
AAAADElEQVQI12MQVSgBAAD3AKpQhOaUAAAAAElFTkSuQmCC" width=${dataOut} height=11> ${dataOutHuman}</td>
<td class="colcont" style="text-align:left"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA
B3RJTUUH4AoKFBIl10Lm3wAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUH
AAAADElEQVQI12MQVSgBAAD3AKpQhOaUAAAAAElFTkSuQmCC" width=${dataHistOut} height=11> ${dataHistOutHuman}</td>
</tr>
</table>
<h3>Log analysis</h3>
<table border=0 cellpadding=2 cellspacing=1 bgcolor="black">
<tr>
<td class="coltitle" rowspan=3>Period</td>
<td class="coltitle" colspan=8>Cache efficiency</td>
</tr>
<tr>
<td class="coltitle"><span> </span></td>
<td class="coltitle" colspan=3>Requests</td>
<td class="coltitle"><span> </span></td>
<td class="coltitle" colspan=3>Data</td>
</tr>
<tr bgcolor="white">
<td class="coltitle"><span> </span></td>
<td class="coltitle">Hits</td>
<td class="coltitle">Misses</td>
<td class="coltitle">Total</td>
<td class="coltitle"><span> </span></td>
<td class="coltitle">Hits</td>
<td class="coltitle">Misses</td>
<td class="coltitle">Total</td>
</tr>
${statsRow}
</table>
<br>
Note: data table is created based on the current log file. Deviation from real request count is possible due to previous log file optimization.
<h2>Configuration instructions</h2>
Please visit any invalid download URL to see <a href="/">configuration
instructions</a> for users. For system administrators, read the <a
href="/acng-doc/html/index.html">manual</a> (or see system
documentation <a
href="http://${serverip}/doc/apt-cacher-ng/html/index.html">online</a>
resp. in the <a
href="file:///usr/share/doc/apt-cacher-ng/html/index.html">local
filesystem</a>).
<form action="#bottom">
<h2>Shared processing options</h2>
Temporary options for the general behavour and index update
configuration can set in this user interface. They are only relevant
to expiration and import features triggered below.
<br />
<label><input type="checkbox" name="abortOnErrors" value="aOe" ${aOeDefaultChecked}> Stop the work on errors during index update step</label>
<br>
<label> <input type="checkbox" name="beVerbose" value="bV"> More verbosity</label>
<br>
<label><input type="checkbox" name="forceRedownload" value="fRd"> Force the download of index files (even having fresh ones)</label>
<br>
<!--input type="checkbox" name="jsMode" value="js" checked> Auto-scrolling (requires JavaScript)
<br-->
<label><input type="checkbox" name="skipIxUp" value="si"> Don't update index files (DANGEROUS for expiration tasks!)</label>
<h2>Expiration</h2>
<p>
Expiration mechanism is needed to delete files from the local cache when
they are removed on the servers, e.g. when the software versions of the
package is updated and the package files are replaced. This is rarely
needed when Stable system distribution is used by the clients, but use of
unstable branches with high fluctuation requires to clean up the local
cache from time to time. ACNG includes helper code to identify
unreferenced files automatically and optionally check the cache and
verify data against file information in the index files, where
available.
</p>
<p>
<h3>Scan and semi-automatic expiration</h3>
The default method does update the index files, check the
files present in the cache and optionally delete them. The
checks consist of file name comparison and optionally file
contents verification or directory location comparison.
Files that are not listed in any index file or have
incorrect contents are marked for removal in one of the
later sessions, or can be removed by direct user action
triggered with the controls below.
<p></p>
<!--/td>
</tr>
<tr>
<td valign=top-->
<label><input type="checkbox" name="ignoreTradeOff" value="iTO"> Ignore the threshold that aborts early when there is probably not much to do</label>
<br>
<label><input type="checkbox" name="skipHeadChecks" value="sHC"> Skip header checks (faster, not detecting bad metadata)</label>
<br>
<label><input type="checkbox" name="byPath" value="bP" id="idBP" onChange="endis();"> <i>Validate by file name AND file directory (use with care),</i></label>
<br>
<label><input type="checkbox" name="byChecksum" value="bS" id="idBS" onChange="endis();">
<i>then validate file contents through checksum (<font color=red>SLOW</font>), also detecting corrupt files,</i>
</label>
<br>
<label><input type="checkbox" name="truncNow" value="tN" id="idTN"> <i>then truncate damaged files immediately.</i></label>
<br>
<label><input type="checkbox" name="incomAsDamaged" value="iad" id="idIAD"> <i>Treat incomplete files as damaged.</i></label>
<br>
<label><input type="checkbox" name="purgeNow" value="pN"> Purge unreferenced files immediately after scan</label>
<br>
<script type="text/javascript">
document.getElementById("idBS").disabled="disabled";
document.getElementById("idTN").disabled="disabled";
document.getElementById("idIAD").disabled="disabled";
document.getElementById("idBS").checked=false;
document.getElementById("idTN").checked=false;
document.getElementById("idIAD").checked=false;
function endis()
{
endisCb('idBP', 'idBS');
endisCb('idBS', 'idTN');
endisCb('idBS', 'idIAD');
}
function endisCb(idCon, idWhat)
{
var pCon=document.getElementById(idCon);
var pWhat=document.getElementById(idWhat);
if(pCon.checked)
pWhat.disabled="";
else
{
pWhat.checked=false;
pWhat.disabled="disabled";
}
// pWhat.onchange(); // no longer works with Firefox/IE :-( Using the alternative method too...
/*var fireOnThis = document.getElementById('idWhat');
var evObj = document.createEvent('HTMLEvents');
evObj.initEvent( 'change', true, true );
fireOnThis.dispatchEvent(evObj);
*/
}
</script>
<br>
<input type="submit" name="doExpire" value="Start Scan and/or Expiration">
<h3>Direct actions</h3>
<input type="submit" name="justShow" value="Show unreferenced">
<input type="submit" name="justRemove" value="Delete unreferenced">
<input type="submit" name="justShowDamaged" value="Show damaged">
<input type="submit" name="justRemoveDamaged" value="Delete damaged">
<input type="submit" name="justTruncDamaged" value="Truncate damaged">
<h2>Import</h2>
<p>
Importing package files from foreign sources works in following case:
<p>
Files can be assigned to <b>known</b> download locations. The
locations become known when they are found in index files. However,
this index files must exist in the package cache, therefore at least
one client needs to download them, i.e. running "<b>apt-get update</b>" on a client system
which is configured for use with ACNG. See ACNG manual for more details.
<p>
<!--
</li>
</ul>
-->
When all conditions are met <!--for one of the described ways,--> put your files into
the "_import" directory, e.g. <i>/var/cache/apt-cacher-ng/_import/</i>.
Subdirectories and symlinks are ok. Then run import. </p>
<p>
<input type="submit" name="doImport" value="Start Import">
</p>
<h2>Guided precaching (Mirroring)</h2>
<p>
Apt-Cacher NG supports a massive download of package files
referenced in a specified set of index files. This is configured
with the <i>PrecacheFor</i> configuration option (see config
examples and manual for details).
<p>
In special cases this feature can be used to create a local
partial mirror where the cache internal structure of packages
mostly represents the contents of the remote package archive and
includes everything apt might want to download.
<p>
<label><input type="checkbox" name="calcSize" value="cs" checked="checked"> Calculate and display download size</label>
<br>
<label><input type="checkbox" name="doDownload" value="dd"> Download package files</label>
<br>
<label><input type="checkbox" name="asNeeded" value="an" checked="checked"> Restrict to packages related to previously cached files</label>
<br>
<label><input type="checkbox" name="useDebDelta" value="ud"> Use Debdelta if possible (experimental)</label>
<p>
<input type="submit" name="doMirror" value="Start Mirroring">
</p>
</form>
<h2>File Type Pattern Tracing</h2>
<p>
This section provides a simple tool useful to identify new file name patterns which might be needed to configuration in order to handle new file types correctly. Please provide your findings to apt-cacher-ng author if they might be useful for other users.
<a name="trace"></a>
Current value of pattern extensions:
<br>
<pre>SPfilePatternEx: ${cfg:SPfilePatternEx}
VfilePatternEx: ${cfg:VfilePatternEx}
PfilePatternEx: ${cfg:PfilePatternEx}</pre>
<form action="#trace" method="get">
<span style="white-space:nowrap;">
Current mode:
<font style="display:${:/cfg:patrace/inline/none};white-space:nowrap;">
<font style="color:red;font-weight:bold;white-space:nowrap;">Active</font>
(watching download activity)
</font>
<font style="display:${:/cfg:patrace/none/inline};white-space:nowrap;">not tracing
</font>
</span>
<span>
<input type="submit" name="doTraceStart" value="Start Tracing" ${:/cfg:patrace/disabled/}>
<input type="submit" name="doTraceStop" value="Stop Tracing" ${:/cfg:patrace//disabled}>
<input type="submit" name="doTraceClear" value="Clear Trace Data">
</span>
<p>Currently collected file paths not covered by the configured patterns:
<input type="submit" name="doTraceRefresh${random}" value="Refresh">
<pre><br>${curPatTraceCol}</pre>
</form>
</tr>
${footer}
</div>
</div>
</body>
</html>
|