.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "TIREX-TILEDIR-CHECK 1" .TH TIREX-TILEDIR-CHECK 1 "2021-10-07" "perl v5.32.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" tirex\-tiledir\-check \- check tile dir .SH "SYNOPSIS" .IX Header "SYNOPSIS" tirex-tiledir-check [\s-1OPTIONS\s0] \s-1MAP\s0 .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-h\fR, \fB\-\-help\fR" 8 .IX Item "-h, --help" Display help message. .IP "\fB\-c\fR, \fB\-\-config=DIR\fR" 8 .IX Item "-c, --config=DIR" Use the config directory \s-1DIR\s0 instead of /etc/tirex. .IP "\fB\-l\fR, \fB\-\-list=FILE\fR" 8 .IX Item "-l, --list=FILE" Write list of tiles to \s-1FILE.\s0 See below for format. .IP "\fB\-s\fR, \fB\-\-stats=FILE\fR" 8 .IX Item "-s, --stats=FILE" Write stats about tiles to \s-1FILE.\s0 See below for format. .IP "\fB\-z\fR, \fB\-\-minz=i\fR" 8 .IX Item "-z, --minz=i" Start processing at min. zoom level i (default=0) .IP "\fB\-Z\fR, \fB\-\-maxz=i\fR" 8 .IX Item "-Z, --maxz=i" Stop processing at max. zoom level i (default=19) .SH "DESCRIPTION" .IX Header "DESCRIPTION" Walks recursively through the tiles directory for the given \s-1MAP\s0 and checks for wrong directory or file names or files that can't be accessed. If problems are found, messages are written to \s-1STDERR.\s0 .PP When the \-\-list and/or \-\-stats options are given, it outputs information about each tile and/or generates statistics, respectively. The list and stats are written to the filenames given, if you give '\-' as the filename \s-1STDOUT\s0 is used. You can only use \s-1STDOUT\s0 for either the list file or the stats file. .PP Caution: This command will go through all metatiles on your disk and stat each file. On a lightly loaded machine with lots of \s-1RAM\s0 this can go pretty quick, but under high \s-1IO\s0 loads it might take a long time. Take this into account if you want to run it regularly from cron or similar. .SH "LIST FILE FORMAT" .IX Header "LIST FILE FORMAT" The list file is in \s-1CSV\s0 format with one line per metatile. The fields are: .IP "age" 8 .IX Item "age" Age of metatile in seconds. .IP "size" 8 .IX Item "size" Size in bytes of the metatile. .IP "blocks" 8 .IX Item "blocks" Number of blocks used for this metatile. .IP "metatile" 8 .IX Item "metatile" Description of metatile. Format: map=foo x=8 y=0 z=10 .PP This data can be read with other programs to create statistics etc. .SH "STATS FILE FORMAT" .IX Header "STATS FILE FORMAT" The stats file is in \s-1JSON\s0 format. It contains a hash with the names of all maps as keys and a list of zoom levels as their values. For each zoom level there is a nested hash containing the statistics: .IP "count \- Number of tiles" 8 .IX Item "count - Number of tiles" .PD 0 .IP "maxage \- Maximum age in seconds" 8 .IX Item "maxage - Maximum age in seconds" .IP "maxblocks \- Maximum number of blocks" 8 .IX Item "maxblocks - Maximum number of blocks" .IP "maxsize \- Maximum file size in bytes" 8 .IX Item "maxsize - Maximum file size in bytes" .IP "minage \- Minimum age in seconds" 8 .IX Item "minage - Minimum age in seconds" .IP "minblocks \- Minimum number of blocks" 8 .IX Item "minblocks - Minimum number of blocks" .IP "minsize \- Minimum file size in bytes" 8 .IX Item "minsize - Minimum file size in bytes" .IP "sumage \- Sum of ages in seconds" 8 .IX Item "sumage - Sum of ages in seconds" .IP "sumblocks \- Sum of number of blocks" 8 .IX Item "sumblocks - Sum of number of blocks" .IP "sumsize \- Sum of file size in bytes" 8 .IX Item "sumsize - Sum of file size in bytes" .PD .PP The sumage, sumblocks, and sumsize values can be divided by count to get the average. .PP This file can be displayed on a human readable format with the Program tirex-tiledir-stat. It is also read by several Munin plugins. .SH "FILES" .IX Header "FILES" .IP "\fI/etc/tirex/tirex.conf\fR" 8 .IX Item "/etc/tirex/tirex.conf" The configuration file. .SH "DIAGNOSTICS" .IX Header "DIAGNOSTICS" Returns 0 if no errors were found or 1 if there were errors. If there were errors parsing the command line 2 is returned. .SH "SEE ALSO" .IX Header "SEE ALSO" .SH "AUTHORS" .IX Header "AUTHORS" Frederik Ramm , Jochen Topf and possibly others.