Change ping averaging to be like TCP and become a smoothed RTT.
[spider.git] / html / adminmanual-5.html
index 728ea82155bd123d07d49c2df4b0538a80294a10..f047ba6762dfa8a2d48120a6b30fdc1ec0e0296c 100644 (file)
 <HTML>
 <HEAD>
  <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
- <TITLE>The DXSpider Installation and Administration Manual : Filtering</TITLE>
+ <TITLE>The DXSpider Administration Manual v1.48: Information, files and useful programs</TITLE>
  <LINK HREF="adminmanual-6.html" REL=next>
  <LINK HREF="adminmanual-4.html" REL=previous>
  <LINK HREF="adminmanual.html#toc5" REL=contents>
+<link rel=stylesheet href="style.css" type="text/css" title="default stylesheet">
 </HEAD>
 <BODY>
 <A HREF="adminmanual-6.html">Next</A>
 <A HREF="adminmanual-4.html">Previous</A>
 <A HREF="adminmanual.html#toc5">Contents</A>
 <HR>
-<H2><A NAME="s5">5. Filtering</A></H2>
+<H2><A NAME="s5">5. Information, files and useful programs</A></H2>
 
-<P>Filters can be set for spots, announcements and WWV.  You will find the directories for these under /spider/filter.  You will find some examples in the directories with the suffix <EM>.issue</EM>.  There are two types of filter, one for incoming information and one for outgoing information. Outgoing filters are in the form <EM>CALLSIGN.pl</EM> and incoming filters are in the form <EM>in_CALLSIGN.pl</EM>.  Filters can be set for both nodes and users.
-<P>
-<P>All filters work in basically the same way.  There are several elements delimited by commas.
-There can be many lines in the filter and they are read from the top by the program.
-When writing a filter you need to think carefully about just what you want to achieve.  You
-are either going to write a filter to <EM>accept</EM> or to <EM>reject</EM>.
-Think of a filter as having 2 main elements.  For a reject filter, you would have a line
-or multiple lines rejecting the things you do not wish to receive and then a default
-line accepting everything else that is not included in the filter.  Likewise, for an
-accept filter, you would have a line or multiple lines accepting the things you wish
-to receive and a default line rejecting everthing else.
-<P>
-<P>In the example below, a user requires a filter that would only return SSB spots
-posted in Europe on the HF bands.  This is achieved by first rejecting the CW section 
-of each HF band and rejecting all of VHF, UHF etc based on frequency.
-Secondly, a filter rule is set based on CQ zones to only accept spots posted in
-Europe.  Lastly, a default filter rule is set to reject anything outside the filter.
-<P>
-<BLOCKQUOTE><CODE>
-<PRE>
-$in = [
-        [ 0, 0, 'r', # reject all CW spots
-                [
-                1800.0, 1850.0,
-                3500.0, 3600.0,
-                7000.0, 7040.0,
-                14000.0, 14100.0,
-                18068.0, 18110.0,
-                21000.0, 21150.0,
-                24890.0, 24930.0,
-                28000.0, 28180.0,
-                30000.0, 49000000000.0,
-                ] ,1 ],
-        [ 1, 11, 'n', [ 14, 15, 16, 20, 33, ], 15 ], #accept EU
-        [ 0, 0, 'd', 0, 1 ], # 1 = want, 'd' = everything else
-];
-</PRE>
-</CODE></BLOCKQUOTE>
-<P>
-<P>The actual elements of each filter are described more fully in the following sections.
-<P>
-<H2><A NAME="ss5.1">5.1 Spots</A>
+<H2><A NAME="ss5.1">5.1 MOTD</A>
 </H2>
 
-<P>The elements of the Spot filter are ....
-<P>
-<BLOCKQUOTE><CODE>
-<PRE>
-[action, field_no, sort, possible_values, hops]
-</PRE>
-</CODE></BLOCKQUOTE>
-<P>
-<P>There are 3 elements here to look at.  Firstly, the action element.  This is very simple and only 2 possible states exist, accept (1) or drop (0).
-<P>
-<P>The second element is the field_no.  There are 13 possiblities to choose from here ....
+<P>One of the more important things a cluster sysop needs to do is to get 
+information to his users.  The simplest way to do this is to have a banner 
+that is sent to the user on login.  This is know as a "message of the day" 
+or "motd".  To set this up, simply create a file in /spider/data called motd 
+and edit it to say whatever you want.  It is purely a text file and will be 
+sent automatically to anyone logging in to the cluster.
+<P>
+<H2><A NAME="ss5.2">5.2 Downtime message</A>
+</H2>
+
+<P>If for any reason the cluster is down, maybe for upgrade or maintenance but 
+the machine is still running, a message can be sent to the user advising them 
+of the fact.  This message lives in the /spider/data directory and is called
+"offline".  Simply create the file and edit it to say whatever you wish.  
+This file will be sent to a user attempting to log into the cluster when
+DXSpider is not actually running.
+<P>
+<H2><A NAME="ss5.3">5.3 Other text messages</A>
+</H2>
+
+<P>You can set other text messages to be read by the user if they input the file 
+name.  This could be for news items or maybe information for new users.  
+To set this up, make a directory under /spider called <EM>packclus</EM>.  
+Under this directory you can create files called <EM>news</EM> or <EM>newuser</EM>
+for example.  In fact you can create files with any names you like.  These can 
+be listed by the user with the command ....
 <P>
 <BLOCKQUOTE><CODE>
 <PRE>
-      0 = frequency
-      1 = call
-      2 = date in unix format
-      3 = comment
-      4 = spotter
-      5 = spotted dxcc country
-      6 = spotter's dxcc country
-      7 = origin
-      8 = spotted itu
-      9 = spotted cq
-      10 = spotter's itu
-      11 = spotter's cq
-      12 = callsign of the channel on which the spot has appeared
+show/files
 </PRE>
 </CODE></BLOCKQUOTE>
-<P>
-<P>The third element tells us what to expect in the fourth element.  There are 4 possibilities ....
+<P>They can be read by the user by typing the command ....
 <P>
 <BLOCKQUOTE><CODE>
 <PRE>
-     n - numeric list of numbers e.g. [ 1,2,3 ]
-     r - ranges of pairs of numbers e.g. between 2 and 4 or 10 to 17 - [ 2,4, 10,17 ] 
-     a - an alphanumeric regex
-     d - the default rule
+type news
 </PRE>
 </CODE></BLOCKQUOTE>
-<P>
-<P>The fifth element is simply the hops to set in this filter.  This would only be used if the filter was for a node of course and overrides the hop count in hop_table.pl.
-<P>
-<P>So, let's look at an example spot filter.  It does not matter in the example who the filter is to be used for.
-So, what do we need in the filter?  We need to filter the spots the user/node requires and also set a default rule for anything else outside the filter.  Below is a simple filter that stops spots arriving from outside Europe.
+<P>If the file they want to read is called <EM>news</EM>.  You could also set 
+an alias for this in the Alias file to allow them just to type <EM>news</EM>
+<P>
+<P>You can also store other information in this directory, either directly or 
+nested under directories.  One use for this would be to store DX bulletins 
+such as the OPDX bulletins.  These can be listed and read by the user.  
+To keep things tidy, make a directory under /spider/packclus called
+<EM>bulletin</EM>.  Now copy any OPDX or similar bulletins into it.  These 
+can be listed by the user in the same way as above using the <EM>show/files</EM>
+command with an extension for the bulletin directory you have just created, 
+like this ....
 <P>
 <BLOCKQUOTE><CODE>
 <PRE>
-$in = [
-  [ 0, 4, 'a', '^(K|N|A|W|VE|VA|J)'],  # 0 = drop, 'a' = alphanumeric
-  [ 1, 0, 'd', 0, 1 ],                 # 1 = want, 'd' = everything else
-                     ];
+show/files bulletin
 </PRE>
 </CODE></BLOCKQUOTE>
 <P>
-<P>So the filter is wrapped in between a pair of square brackets.  This tells Spider to look in between these limits.  Then each line is contained within its own square brackets and ends with a comma.
-Lets look carefully at the first line.  The first element is 0 (drop).  Therefore anything we put on this line will not be accepted.  The next element is 4.  This means we are filtering by the spotter.  The third element is the letter "a" which tells the program to expect an alphanumeric expression in the fourth element.  The fourth element is a list of letters separated by the pipe symbol.
-<P>
-<P>What this line does is tell the program to drop any spots posted by anyone in the USA, Canada or Japan.
-<P>
-<P>The second line is the default rule for anything else.  The "d" tells us this and the line simply reads... accept anything else.
-<P>
-<P>You can add as many lines as you need to complete the filter but if there are several lines of the same type it is neater to enclose them all as one line.  An example of this is where specific bands are set.  We could write this like this ....
+<P>An example would look like this ....
 <P>
 <BLOCKQUOTE><CODE>
 <PRE>
-[ 0,0,'r',[1800.0, 2000.0], 1],
-[ 0,0,'r',[10100.0, 10150.0], 1],
-[ 0,0,'r',[14000.0, 14350.0], 1],
-[ 0,0,'r',[18000.0, 18200.0], 1],
+sh/files
+bulletin      DIR 20-Dec-1999 1715Z news          1602 14-Dec-1999 1330Z
 </PRE>
 </CODE></BLOCKQUOTE>
-<P>
-<P>But the line below achieves the same thing and is more efficient ....
+<P>You can see that in the files area (basically the packclus directory) there is a 
+file called <EM>news</EM> and a directory called <EM>bulletin</EM>.  You can 
+also see that dates they were created.  In the case of the file <EM>news</EM>, 
+you can also see the time it was last modified, a good clue as to whether the 
+file has been updated since you last read it.  To read the file called 
+<EM>news</EM> you would simply issue the command ....
 <P>
 <BLOCKQUOTE><CODE>
 <PRE>
-  [ 0, 0, 'r',
-    [  
-      1800.0, 2000.0,         # top band 
-      10100.0, 10150.0,       # WARC  
-      14000.0, 14350.0,       # 20m
-      18000.0, 18200.0,       # WARC
-    [ ,1 ],
+type news
 </PRE>
 </CODE></BLOCKQUOTE>
-<P>
-<P>
-<H2><A NAME="ss5.2">5.2 Announcements</A>
-</H2>
-
+<P>To look what is in the bulletin directory you issue the command ....
 <P>
 <BLOCKQUOTE><CODE>
 <PRE>
-
-# This is an example announce or filter allowing only West EU announces
-# 
-# The element list is:-
-# 0 - callsign of announcer
-# 1 - destination * = all, &lt;callsign> = routed to the node
-# 2 - text
-# 3 - * - sysop, &lt;some text> - special list eg 6MUK, ' ', normal announce
-# 4 - origin
-# 5 - 0 - announce, 1 - wx
-# 6 - channel callsign (the interface from which this spot came)
-
-$in = [
-        [ 1, 0, 'a', '^(P[ABCDE]|DK0WCY|G|M|2|EI|F|ON)' ],
-        [ 0, 0, 'd', 0 ]
-];
+show/files bulletin
+opdx390      21381 29-Nov-1999 1621Z opdx390.1     1670 29-Nov-1999 1621Z
+opdx390.2     2193 29-Nov-1999 1621Z opdx391      25045 29-Nov-1999 1621Z  
+opdx392      35969 29-Nov-1999 1621Z opdx393      15023 29-Nov-1999 1621Z  
+opdx394      33429 29-Nov-1999 1621Z opdx394.1     3116 29-Nov-1999 1621Z  
+opdx395      24319 29-Nov-1999 1621Z opdx396      32647 29-Nov-1999 1621Z
+opdx396.1     5537 29-Nov-1999 1621Z opdx396.2     6242 29-Nov-1999 1621Z
+opdx397      18433 29-Nov-1999 1621Z opdx398      19961 29-Nov-1999 1621Z  
+opdx399      17719 29-Nov-1999 1621Z opdx400      19600 29-Nov-1999 1621Z
+opdx401      27738 29-Nov-1999 1621Z opdx402      18698 29-Nov-1999 1621Z
+opdx403      24994 29-Nov-1999 1621Z opdx404      15685 29-Nov-1999 1621Z
+opdx405      13984 29-Nov-1999 1621Z opdx405.1     4166 29-Nov-1999 1621Z
+opdx406      28934 29-Nov-1999 1621Z opdx407      24153 29-Nov-1999 1621Z
+opdx408      15081 29-Nov-1999 1621Z opdx409      23234 29-Nov-1999 1621Z
+Press Enter to continue, A to abort (16 lines) >
 </PRE>
 </CODE></BLOCKQUOTE>
-<P>In this example, only the prefixes listed will be allowed.  It is possible to be quite specific.  The Dutch prefix "P" is followed by several secondary identifiers which are allowed.  So, in the example, "PA" or "PE" would be ok but not "PG".  It is even possible to allow information from a single callsign.  In the example this is DK0WCY, to allow the posting of his Aurora Beacon.
-<P>
-<H2><A NAME="ss5.3">5.3 WWV</A>
-</H2>
-
+<P>You can now read any file in this directory using the type command, like this ....
 <P>
 <BLOCKQUOTE><CODE>
 <PRE>
-
-# This is an example WWV filter
-# 
-# The element list is:-
-# 0 - nominal unix date of spot (ie the day + hour:13)
-# 1 - the hour
-# 2 - SFI
-# 3 - K
-# 4 - I
-# 5 - text
-# 6 - spotter
-# 7 - origin
-# 8 - incoming interface callsign
-
-# this one doesn't filter, it just sets the hop count to 6 and is
-# used mainly just to override any isolation from WWV coming from
-# the internet.
-
-$in = [
-        [ 1, 0, 'd', 0, 6 ]
-];
+type bulletin/opdx391
+Ohio/Penn DX Bulletin No. 391
+The Ohio/Penn Dx PacketCluster
+DX Bulletin No. 391
+BID: $OPDX.391
+January 11, 1999
+Editor Tedd Mirgliotta, KB8NW
+Provided by BARF-80 BBS Cleveland, Ohio
+Online at 440-237-8208 28.8k-1200 Baud 8/N/1 (New Area Code!)
+Thanks to the Northern Ohio Amateur Radio Society, Northern Ohio DX
+Association, Ohio/Penn PacketCluster Network, K1XN &amp; Golist, WB2RAJ/WB2YQH
+&amp; The 59(9) DXReport, W3UR &amp; The Daily DX, K3TEJ, KN4UG, W4DC, NC6J, N6HR,
+Press Enter to continue, A to abort (508 lines) >
 </PRE>
 </CODE></BLOCKQUOTE>
+<P>The page length will of course depend on what you have it set to!
 <P>
-<P>It should be noted that the filter will start to be used only once a user/node has logged out and back in again.
-<P>I am not going to spend any more time on these filters now as they will become more "comprehensive" in the near future.
-<P>
-<H2><A NAME="ss5.4">5.4 Filtering Mail</A>
+<H2><A NAME="ss5.4">5.4 The Aliases file</A>
 </H2>
 
-<P>In the /spider/msg directory you will find a file called badmsg.pl.issue.  Rename this to badmsg.pl and edit the file.  The original looks something like this ....
+<P>You will find a file in /spider/cmd/ called Aliases.  First, copy this file to
+/spider/local_cmd/Aliases and edit this file.  You will see something like this ...
 <P>
 <BLOCKQUOTE><CODE>
 <PRE>
 
-# the list of regexes for messages that we won't store having
-# received them (bear in mind that we must receive them fully before
-# we can bin them)
+#!/usr/bin/perl
 
+# provide some standard aliases for commands for terminally
+# helpless ak1a user (helpless in the sense that they never
+# read nor understand help files)
 
-# The format of each line is as follows
+# This file is automagically reloaded if its modification time is 
+# later than the one stored in CmdAlias.pm
 
-#     type      source             pattern 
-#     P/B/F     T/F/O/S            regex  
+# PLEASE make this file consistant with reality! (the patterns MUST
+# match the filenames!)
 
-# type: P - private, B - bulletin (msg), F - file (ak1a bull)
-# source: T - to field, F - from field,  O - origin, S - subject 
-# pattern: a perl regex on the field requested
+# Don't alter this file, copy it into the local_cmd tree and modify it.
+# This file will be replaced everytime I issue a new release.
 
-# Currently only type B and P msgs are affected by this code.
-# 
-# The list is read from the top down, the first pattern that matches
-# causes the action to be taken.
+# You only need to put aliases in here for commands that don't work as
+# you desire naturally, e.g sh/dx on its own just works as you expect
+# so you need not add it as an alias.
 
-# The pattern can be undef or 0 in which case it will always be selected
-# for the action specified
 
 
+package CmdAlias;
 
-package DXMsg;
-
-@badmsg = (
-'B',    'T',    'SALE', 
-'B',    'T',    'WANTED',
-'B',    'S',    'WANTED',
-'B',    'S',    'SALE', 
-'B',    'S',    'WTB',
-'B',    'S',    'WTS',
-'B',    'T',    'FS',
-);
+%alias = (
+    '?' => [
+          '^\?', 'apropos', 'apropos',
+        ],
+    'a' => [
+          '^ann.*/full', 'announce full', 'announce', 
+          '^ann.*/sysop', 'announce sysop', 'announce',
+          '^ann.*/(.*)$', 'announce $1', 'announce',
+        ],
+        'b' => [
+        ],
+        'c' => [
+        ],
+        'd' => [
+          '^del', 'kill', 'kill',
+          '^del\w*/fu', 'kill full', 'kill',
+          '^di\w*/a\w*', 'directory all', 'directory',
+          '^di\w*/b\w*', 'directory bulletins', 'directory',
+          '^di\w*/n\w*', 'directory new', 'directory',
+          '^di\w*/o\w*', 'directory own', 'directory',
+          '^di\w*/s\w*', 'directory subject', 'directory',
+          '^di\w*/t\w*', 'directory to', 'directory',
+          '^di\w*/f\w*', 'directory from', 'directory',
+          '^di\w*/(\d+)', 'directory $1', 'directory',
+        ],
+        'e' => [
+        ],
+        'f' => [
+        ],
+        'g' => [
+        ],
+        'h' => [
+        ],
+        'i' => [
+        ],
+        'j' => [
+        ],
+        'k' => [
+        ],
+        'l' => [
+          '^l$', 'directory', 'directory',
+          '^ll$', 'directory', 'directory',
+          '^ll/(\d+)', 'directory $1', 'directory',
+        ],
+        'm' => [
+        ],
+        'n' => [
+          '^news', 'type news', 'type',
+        ],
+        'o' => [
+        ],
+        'p' => [
+        ],
+        'q' => [
+          '^q', 'bye', 'bye',
+        ],
+        'r' => [        
+          '^r$', 'read', 'read',
+          '^rcmd/(\S+)', 'rcmd $1', 'rcmd',
+        ],
+        's' => [
+          '^s/p$', 'send', 'send',
+          '^sb$', 'send noprivate', 'send',
+          '^set/home$', 'set/homenode', 'set/homenode',
+          '^set/nobe', 'unset/beep', 'unset/beep',
+          '^set/nohe', 'unset/here', 'unset/here',
+          '^set/noan', 'unset/announce', 'unset/announce',
+          '^set/nodx', 'unset/dx', 'unset/dx',
+          '^set/nota', 'unset/talk', 'unset/talk',
+          '^set/noww', 'unset/wwv', 'unset/wwv',
+          '^set/nowx', 'unset/wx', 'unset/wx',
+          '^sh$', 'show', 'show',
+          '^sh\w*/buck', 'dbshow buck', 'dbshow',
+          '^sh\w*/bu', 'show/files bulletins', 'show/files',
+          '^sh\w*/c/n', 'show/configuration nodes', 'show/configuration',
+          '^sh\w*/c$', 'show/configuration', 'show/configuration',
+          '^sh\w*/com', 'dbavail', 'dbavail',
+          '^sh\w*/dx/(\d+)-(\d+)', 'show/dx $1-$2', 'show/dx',
+          '^sh\w*/dx/(\d+)', 'show/dx $1', 'show/dx',
+          '^sh\w*/dx/d(\d+)', 'show/dx from $1', 'show/dx',
+          '^sh\w*/email', 'dbshow email', 'dbshow',
+          '^sh\w*/hftest', 'dbshow hftest', 'dbshow',
+          '^sh\w*/vhftest', 'dbshow vhftest', 'dbshow',
+          '^sh\w*/qsl', 'dbshow qsl', 'dbshow',
+          '^sh\w*/tnc', 'who', 'who',
+          '^sh\w*/up', 'show/cluster', 'show/cluster',
+          '^sh\w*/w\w*/(\d+)-(\d+)', 'show/wwv $1-$2', 'show/wwv',
+          '^sh\w*/w\w*/(\d+)', 'show/wwv $1', 'show/wwv',
+          '^sp$', 'send', 'send',
+        
+    ],
+        't' => [
+          '^ta$', 'talk', 'talk',
+          '^t$', 'talk', 'talk',
+        ],
+        'u' => [
+        ],
+        'v' => [
+        ],
+        'w' => [
+          '^wx/full', 'wx full', 'wx',
+          '^wx/sysop', 'wx sysop', 'wx',
+        ],
+        'x' => [
+        ],
+        'y' => [
+        ],
+        'z' => [
+        ],
+)
 </PRE>
 </CODE></BLOCKQUOTE>
+<P>You can create aliases for commands at will.  Beware though, these may not 
+always turn out as you think.  Care is needed and you need to test the 
+results once you have set an alias.
 <P>
-<P>I think this is fairly self explanatory.  It is simply a list of subject headers that we do not want to pass on to either the users of the cluster or the other cluster nodes that we are linked to.  This is usually because of rules and regulations pertaining to items for sale etc in a particular country.
+<H2><A NAME="ss5.5">5.5 Console.pl</A>
+</H2>
+
+<P>In later versions of Spider a simple console program is provided for the sysop.  
+This has a type ahead buffer with line editing facilities and colour for spots,
+announces etc.  To use this program, simply use console.pl instead of client.
+<P>
+<P>To edit the colours, copy /spider/perl/Console.pl to /spider/local and edit the 
+file with your favourite editor.
 <P>
-<H2><A NAME="ss5.5">5.5 Filtering DX callouts</A>
+<H2><A NAME="ss5.6">5.6 Updating kepler data</A>
 </H2>
 
-<P>In the same way as mail, there are some types of spot we do not wish to pass on to users or linked cluster nodes.  In the /spider/data directory you will find a file called baddx.pl.issue.  Rename this to baddx.pl and edit the file.  The original looks like this ....
+<P>Spider has a powerful and flexible show/satellite command.  In order for
+this to be accurate, the kepler data has to be updated regularly.  In
+general, this data is available as an email or via cluster mail.
+Updating it is simple.  First you need to export the mail message as a
+file.  You do this with the <EM>export</EM> command from the cluster prompt
+as the sysop.  For example ...
 <P>
 <BLOCKQUOTE><CODE>
 <PRE>
-
-# the list of dx spot addresses that we don't store and don't pass on
-
-
-package DXProt;
-
-@baddx = qw 
-
- FROG 
- SALE
- FORSALE
- WANTED
- P1RATE
- PIRATE
- TEST
- DXTEST
- NIL
- NOCALL 
-);
+export 5467 /spider/perl/keps.in
 </PRE>
 </CODE></BLOCKQUOTE>
+<P>would export message number 5467 as a file called keps.in in the
+/spider/perl directory.
+<P>Now login to a VT as sysop and cd /spider/perl.  There is a command in
+the perl directory called <EM>convkeps.pl</EM>.  All we need to do now is
+convert the file like so ...
 <P>
-<P>Again, this is simply a list of names we do not want to see in the spotted field of a DX callout.
+<BLOCKQUOTE><CODE>
+<PRE>
+./convkeps.pl keps.in
+</PRE>
+</CODE></BLOCKQUOTE>
+<P>Now go back to the cluster and issue the command ...
 <P>
+<BLOCKQUOTE><CODE>
+<PRE>
+load/keps
+</PRE>
+</CODE></BLOCKQUOTE>
+<P>That is it!  the kepler data has been updated.
+<P>
+<H2><A NAME="ss5.7">5.7 The QRZ callbook</A>
+</H2>
+
+<P>The command <EM>sh/qrz</EM> will only work once you have followed a few
+simple steps.  First you need to get a user ID and password from qrz.com.
+Simply go to the site and create one.  Secondly you need to copy the file
+/spider/perl/Internet.pm to /spider/local and alter it to match your user
+ID and password.  You also at this point need to set $allow=1 to complete
+the setup.  Many thanks to Fred Lloyd, the proprieter of
+<A HREF="http://www.qrz.com">qrz.com</A> for allowing this access.
 <P>
 <HR>
 <A HREF="adminmanual-6.html">Next</A>