Make changes to manuals to (hopefully) improve documentation and to change
[spider.git] / sgml / installation.sgml
1 <!doctype linuxdoc system>
2
3 <article>
4
5 <!-- Title information -->
6
7 <title>The DXSpider Installation Manual v1.49</title> 
8 <author>Iain Philipps, G0RDI (g0rdi@77hz.com) and
9 Ian Maude, G0VGS, (g0vgs@ea1dav.net)</author>
10 <date>December 2001 revision 1.1</date>
11
12 <abstract>
13 A reference for SysOps of the DXSpider DXCluster program.
14 </abstract>
15
16 <!-- Table of contents -->
17 <toc>
18
19 <!-- Begin the document -->
20
21 <sect>Linux Installation 
22
23 <sect1>Introduction
24
25 <P>
26 This section describes the installation of DX Spider v1.47 on a 
27 <htmlurl url="http://www.redhat.com" name="RedHat"> Linux Distribution.
28 Wherever possible I will try to include differences for other distributions.  
29 I do not intend to try and cover the installation of Linux or the setup 
30 of the AX25 utilities.  If you need help on this then read Iains original 
31 installation guide that comes with the Spider distribution.
32
33 <P>
34 I am assuming a general knowledge of Linux and its commands.  You should 
35 know how to use <em>tar</em> and how to edit files using your favourite editor.
36
37 <P>
38 The crucial ingredient for all of this is 
39 <htmlurl url="http://www.perl.org" name="Perl">.  Earlier versions of
40 Spider required perl 5.004, however it is now <it>STRONGLY</it> recommended
41 that you use at least version 5.005_03 as this is the version being used
42 in the development of Spider.
43
44 <P>
45 In addition to the standard Red Hat distribution you will require the 
46 following modules from <htmlurl url="http://www.cpan.org/CPAN.html" name="http://www.cpan.org/CPAN.html"> , please note however that with later versions of perl, some of these
47 modules may be included with the distribution.  Get the modules anyway and try
48 to install as below.  If they complain, they are probably already a part of your
49 perl distribution.
50
51 <P>
52 <itemize>
53 <item> <htmlurl url="http://www.cpan.org/modules/by-module/Data/Data-Dumper-2.10.tar.gz" name="Data-Dumper-2.10.tar.gz">
54 <item> <htmlurl url="http://www.cpan.org/modules/by-module/Date/TimeDate-1.10.tar.gz" name="TimeDate-1.10.tar.gz">
55 <item> <htmlurl url="http://www.cpan.org/modules/by-module/IO/IO-1.20.tar.gz" name="IO-1.20.tar.gz (for perl 5.00403 and lower)">
56 <item> <htmlurl url="http://www.cpan.org/modules/by-module/Net/Net-Telnet-3.02.tar.gz" name="Net-Telnet-3.02.tar.gz">
57 <item> <htmlurl url="http://www.cpan.org/modules/by-module/Curses/Curses-1.06.tar.gz" name="Curses-1.06.tar.gz">
58 <item> <htmlurl url="http://www.cpan.org/modules/by-module/Time/Time-HiRes-01.20.tar.gz" name="Time-HiRes-01.20.tar.gz">
59 </itemize>
60
61 <P>
62 Copy the CPAN modules listed above to a convenient place on your computer. One good 
63 place would be /usr/local/packages, and the instructions which follow will assume that 
64 that's where you have put them.
65
66 <P>
67 Log in as 'root', and make sure you're at '/root' before you continue. Here are exactly the commands you must issue next: -
68
69 <verb>
70 # tar xvfz /usr/local/packages/Data-Dumper-2.10.tar.gz
71 # cd Data-Dumper-2.10
72 # perl Makefile.PL
73 # make test
74 # make install
75 # cd ..
76 #
77 # tar xvfz /usr/local/packages/TimeDate-1.10.tar.gz
78 # cd TimeDate-1.10
79 # perl Makefile.PL
80 # make test
81 # make install
82 # cd ..
83 #
84 # tar xvfz /usr/local/packages/IO-1.20.tar.gz
85 # cd IO-1.20
86 # perl Makefile.PL
87 # make test
88 # make install UNINST=1
89 # cd ..
90 #
91 # tar xvfz /usr/local/packages/Net-Telnet-3.02.tar.gz
92 # cd Net-Telnet-3.02
93 # perl Makefile.PL
94 # make test
95 # make install
96 # cd ..
97 #
98 # tar xvfz /usr/local/packages/Curses-1.06.tar.gz
99 # cd Curses-1.06
100 # perl Makefile.PL
101 # make test
102 # make install
103 # cd ..
104 #
105 # tar xvfz /usr/local/packages/Time-HiRes-01.20.tar.gz 
106 # cd Time-HiRes-01.20
107 # perl Makefile.PL
108 # make test
109 # make install
110 # cd ..
111 </verb>
112
113 <P>
114 Do not fall into the trap of thinking they're all the same, just because they 
115 nearly are! Pay particular attention to the instructions of <em>IO</em>, above.
116
117
118 <sect1>Preparation
119
120 <P>
121 I will assume that you have already downloaded the latest tarball of 
122 the DXSpider software and are ready to install it. I am assuming version 
123 1.47 for this section but of course you would use the latest version.
124
125 <P>
126 Login as root and create a user to run the cluster under.  <bf><it>UNDER 
127 NO CIRCUMSTANCES USE ROOT AS THIS USER!</it></bf>.  I am going to use 
128 the name <em>sysop</em>.  You can call it anything you wish.  Depending 
129 on your security requirements you may wish to use an existing user, 
130 however this is your own choice.
131
132 <tscreen><verb>
133 # adduser -m sysop
134 </verb></tscreen>
135
136 <P>
137 For SUSE distributions, the command would be ..
138
139 <tscreen><verb>
140 # useradd -m sysop
141 </verb></tscreen>
142
143 <P>
144 Now set a password for the user ...
145
146 <tscreen><verb>
147 # passwd sysop
148 # New UNIX password:
149 # Retype new UNIX password:
150 passwd: all authentication tokens updated successfully
151 </verb></tscreen>
152
153 <sect1>Installing the software
154
155 <P>
156 Now to unpack the DX Spider distribution, set symbolic links and group 
157 permissions.  Copy the tarball to /home/sysop and do the following.
158
159 <tscreen><verb>
160 # cd ~sysop
161 # tar xvfz spider-1.47.tar.gz
162 # ln -s ~sysop/spider /spider
163 # groupadd -g 251 spider       (or another number)
164 </verb></tscreen>
165
166 <P>
167 If you do not have the command <em>groupadd</em> available to you simply 
168 add a line in /etc/group by hand.
169
170 <tscreen><verb>
171 # vi /etc/group                (or your favorite editor)
172 </verb></tscreen>
173
174 <P>
175 You also need to add some others to the group, including your own callsign 
176 (this will be used as an alias) and root.  The finished line in /etc/group 
177 should look something like this
178
179 <tt>
180 spider:x:251:sysop,g0vgs,root
181 </tt>
182
183 <P>
184 The next step is to set the permissions on the Spider directory tree and files ....
185
186 <tscreen><verb>
187 # chown -R sysop.spider spider
188 # find . -type d -exec chmod 2775 {} \;
189 # find . -type f -exec chmod 775 {} \;
190 </verb></tscreen>
191
192 <P>
193 This last step allows various users of the group <em>spider</em> to have 
194 write access to all the directories.  This is not really needed just yet 
195 but will be useful when web interfaces start to appear.
196
197 <P>
198 Finally, you need to fix the permissions on the ax25_call and netrom_call 
199 programs.  Check where they are with the <em>locate</em> command and alter 
200 the permissions with the <em>chmod</em> command like this ..
201
202 <tscreen><verb>
203 # chown root ax25_call netrom_call
204 # chmod 4775 ax25_call netrom_call
205 </verb></tscreen>
206
207 <sect1>Setting callsigns etc
208
209 <P>
210 Now login to your machine as the user you created earlier.  In my case that 
211 user is called <em>sysop</em>.  Once logged in, issue the following commands ....
212
213 <tscreen><verb>
214 $ cd /spider
215 $ mkdir local
216 $ mkdir local_cmd
217 $ cp perl/DXVars.pm.issue local/DXVars.pm
218 $ cd local
219 $ vi DXVars.pm (or your favourite editor)
220 </verb></tscreen>
221
222 <P>
223 Using the distributed DXVars.pm as a a template, set your cluster callsign, 
224 sysop callsign and other user info to suit your own environment. 
225
226 <tscreen><verb>
227 $mycall = "GB7DJK";     
228 </verb></tscreen>
229
230 <P>
231 This is the call sign of your cluster.  If you use an SSID then include it here
232 also.
233
234 <tscreen><verb>
235 $myalias = "G1TLH";
236 </verb></tscreen>
237
238 <P>
239 This is the sysop user callsign, normally your own.
240
241 <P>
242 <bf>PLEASE USE CAPITAL LETTERS FOR CALLSIGNS</bf>
243
244 <P>
245 Note that this a perl file which will be parsed and executed as part of the 
246 cluster. If you get it wrong then perl will complain when you start the cluster 
247 process.  It is important only to alter the text of any section.  Some of the 
248 lines look a little odd.  Take this line for example ....
249
250 <tt>
251 $myemail = "ianmaude\@btinternet.com";
252 </tt>
253
254 <P>
255 There appears to be an extra slash in there.  However this has to be there 
256 for the file to work so leave it in.
257                 
258 <P>
259 DON'T alter any file in /spider/perl, they are overwritten with every
260 release. Any files or commands you place in /spider/local or /spider/local_cmd 
261 will automagically be used in preference to the ones in /spider/perl EVEN 
262 while the cluster is running!
263
264 <P>
265 Save the new file and change directory to ../perl ....
266
267 <tscreen><verb>
268 $ cd ../perl
269 </verb></tscreen>
270
271 <P>
272 Now type the following command which creates the basic user file with you as 
273 the sysop.
274
275 <tscreen><verb>
276 $ ./create_sysop.pl
277 </verb></tscreen>
278
279 <sect1>The client program
280
281 <P>
282 In earlier versions of Spider, all the processes were Perl scripts.  This
283 was fine but with a lot of users your computer memory would soon be used up.
284 To combat this a new client was written in "C".  This client only works for
285 <em>incoming</em> connects at the moment.  Before you can use it though it
286 has to be "made".  CD to /spider/src and type <em>make</em>.  You
287 should see the output on your screen and hopefully now have a small C program
288 called <em>client</em>.  Leave it in this directory.
289
290
291 <sect1>Starting up for the first time
292
293 <P>
294 We can now bring spider up for the first time and see if all is well or not!  
295 It should look something like this ...
296
297 <tscreen><verb>
298 $ ./cluster.pl
299 DXSpider DX Cluster Version 1.47
300 Copyright (c) 1998 Dirk Koopman G1TLH
301 loading prefixes ...
302 loading band data ...
303 loading user file system ...
304 starting listener ...
305 reading existing message headers
306 reading cron jobs
307 orft we jolly well go ...
308 </verb></tscreen>
309
310 <P>
311 If all is well then login on another term or console as <em>sysop</em> and 
312 cd to /spider/src.  Now issue the following command ...
313
314 <tscreen><verb>
315 $ ./client
316 </verb></tscreen>
317
318 <P>
319 This should log you into the cluster as the sysop under the alias callsign we 
320 set earlier.  In this case the callsign is G0VGS.  The cluster callsign is set 
321 in the DXVars.pm file in /spider/local.  In this case we will assume that this 
322 was set as GB7MBC.  You should therefore see this when you login ....
323
324 <tscreen><verb>
325 G0VGS de GB7MBC 19-Nov-1999 2150Z >
326 </verb></tscreen>
327
328 <P>
329 If you do, congratulations!  If not, look over the instructions again, you 
330 have probably missed something out.  You can shut spider down again with the 
331 command ....
332
333 <tscreen><verb>
334 shutdown
335 </verb></tscreen>
336
337 <P>
338 and both the cluster and the client should return to Linux prompts.
339
340
341 <sect>Linux quick installation guide
342
343 <P>
344 This section is designed for experienced Spider sysops who want to install
345 Spider from scratch.  It is simply a check list of things that need to be
346 done without any explanations.  The name in brackets at the end of each line
347 is the user that should be doing that process.
348
349 <itemize>
350 <item>Login as root
351 <item>Get the additional CPAN modules and install them (root)
352 <item>Create the "sysop" user and set a password (root)
353 <item>Put the Spider tarball in ~sysop and untar it (root)
354 <item>ln -s ~sysop/spider /spider (root)
355 <item>groupadd -g 251 spider (root)
356 <item>Add any more users you need to the group entry in /etc/group (root)
357 <item>Set the permissions on the spider tree (root)
358 <item>Fix permissions on ax25_call and netrom_call (root)
359 <item>Login as the sysop user
360 <item>cd to /spider (sysop)
361 <item>mkdir local (sysop)
362 <item>mkdir local_cmd (sysop)
363 <item>cp perl/DXVars.pm.issue local/DXVars.pm (sysop)
364 <item>cd to /spider/local and edit DXVars to set your details (sysop)
365 <item>cd ../perl (sysop)
366 <item>./create_sysop.pl (sysop)
367 <item>./cluster.pl (sysop)
368 </itemize>
369
370 <P>
371 Spider should now be running and you should be able to login using the
372 client program.
373
374 <itemize>
375 <item>Login as root
376 <item>Enter the correct line in ax25d.conf (root)
377 <item>Enter the correct line in /etc/services (root)
378 <item>Enter the correct line in /etc/inetd.conf (root)
379 <item>killall -HUP inetd (root)
380 </itemize>
381
382 <P>
383 Spider should now be able to accept logins via telnet, netrom and ax25.
384
385 <itemize>
386 <item>Login as sysop
387 <item>Start the cluster (sysop)
388 <item>set/node and type for links (sysop)
389 <item>Write any connect scripts (sysop)
390 <item>Edit /spider/crontab as required (sysop)
391 <item>Edit any other files as necessary (sysop)
392 <item>Set filters, hops and forwarding files (sysop)
393 <item>Login as root
394 <item>Enter the correct line in /etc/inittab (root)
395 </itemize>
396
397 <sect>Configuration
398
399 <sect1>Allowing ax25 connects from users
400
401 <P>
402 As stated previously, the aim of this document is not to tell you how to 
403 configure Linux or the ax25 utilities.  However, you do need to add a line 
404 in your ax25d.conf to allow connections to DXSpider for your users.  For
405 each interface that you wish to allow connections on, use the following format ...
406
407 <tscreen><verb>
408 default  * * * * * *  - sysop /spider/src/client client %u ax25
409 </verb></tscreen>
410
411 <P>
412 or, if you wish your users to be able to use SSID's on their callsigns ..
413
414 <tscreen><verb>
415 default  * * * * * *  - sysop /spider/src/client client %s ax25
416 </verb></tscreen>
417
418 <P>
419 For most purposes this is not desirable. The only time you probably will 
420 need this is when you need to allow other cluster nodes that are using SSID's
421 in. In this case it would probably be better to use the first example and 
422 then add a specific line for that node like this:
423
424 <tscreen><verb>
425 GB7DJK-2  * * * * * *  - sysop /spider/src/client client gb7djk-2 ax25
426 default  * * * * * *  - sysop /spider/src/client client %u ax25
427 </verb></tscreen>
428  
429 <sect1>Allowing telnet connects from users 
430
431 <P> 
432 From version 1.47 there is a new (more efficient) way of doing this
433 (see next section) but, if you prefer, the method of doing it described 
434 here will continue to work just fine.
435  
436 <P>
437 Allowing telnet connections is quite simple.  Firstly you need to add a line 
438 in /etc/services to allow connections to a port number, like this ....
439
440 <tscreen><verb>
441 spdlogin   8000/tcp     # spider anonymous login port
442 </verb></tscreen>
443
444 <P>
445 Then add a line in /etc/inetd.conf like this ....
446
447 <tscreen><verb>
448 spdlogin stream tcp nowait root /usr/sbin/tcpd /spider/src/client login telnet
449 </verb></tscreen>
450
451 <P>
452 Once this is done, you need to restart inetd like this ....
453
454 <tscreen><verb>
455 killall -HUP inetd
456 </verb></tscreen>
457
458 <P>
459 Now login as <em>sysop</em> and cd spider/src. You can test that spider 
460 is accepting telnet logins by issuing the following command ....
461
462 <tscreen><verb>
463 ./client login telnet
464 </verb></tscreen>
465
466 <P>
467 You should get a login prompt and on issuing a callsign, you will be given 
468 access to the cluster.  Note, you will not get a password login.  There seems 
469 no good reason for a password prompt to be given so it is not asked for.
470
471 <P>
472 Assuming all is well, then try a telnet from your linux console ....
473
474 <tscreen><verb>
475 telnet localhost 8000
476 </verb></tscreen>
477
478 <P>
479 You should now get the login prompt and be able to login as before.
480
481 <sect1>Setting up telnet connects (from 1.47 onwards)
482
483 <P>
484 From version 1.47 you can choose to allow the perl cluster.pl program to 
485 allow connections directly (i.e. not via the <tt>/spider/src/client</tt>
486 interface program). If you are using Windows then this is the only method
487 available of allowing incoming telnet connections.
488
489 <P>
490 To do this you need first to remove any line that you may previously have set
491 up in /etc/inetd.conf. Remember to:-
492
493 <tscreen><verb>
494 killall -HUP inetd
495 </verb></tscreen>
496
497 <P>
498 to make the change happen...
499
500 <P>
501 Having done that, you need to copy the file 
502 <em>/spider/perl/Listeners.pm</em> to <em>/spider/local</em> and 
503 then edit it. You will need to uncomment the line containing &dquot;0.0.0.0&dquot; 
504 and select the correct port to listen on. So that it looks like this:-
505
506 <tscreen><verb>
507 @listen = (
508     ["0.0.0.0", 8000],
509 );
510 </verb></tscreen>
511
512 <P>
513 As standard, the listener will listen on all interfaces simultaneously. 
514 If you require more control than this, you can specify each interface 
515 individually:-
516
517 <tscreen><verb>
518 @listen = (
519     ["gb7baa.dxcluster.net", 8000],
520     ["44.131.16.2", 6300],
521 );
522 </verb></tscreen>
523
524 <P>
525 This will only be successful if the IP addresses on each interface are static. 
526 If you are using some kind of dynamic IP addressing then the 'default' method 
527 is the only one that will work.
528
529 <P>
530 Restart the cluster.pl program to enable the listener.
531
532 <P>
533 One important difference with the internal listener is that no echoing 
534 is done by the cluster program. Users will need to set 'local-echo' on in 
535 their telnet clients if it isn't set automatically (as per the standards). 
536 Needless to say this will probably only apply to Windows users. 
537
538 <sect1>Setting up for AGW Engine (1.47 onwards)
539
540 <P>
541 AGW Engine is a Windows based ax25 stack. You can connect to an AGW engine 
542 from Linux as well as Windows based machines.
543
544 <P>
545 In order to enable access to an AGW Engine you need to copy 
546 <em>/spider/perl/AGWConnect.pm</em> to <em>/spider/local</em> and edit it. 
547 Specifically you must:-
548
549 <itemize>
550 <item> set <tt>$enable</tt> to 1.
551 <item> set <tt>$login</tt> and <tt>$passwd</tt> to the values set up in your AGW installation. 
552 If you haven't set any there, then you should not touch these values.
553 <item> You can connect to a remote AGW engine (ie on some other machine) by changing <tt>$addr</tt>
554 and <tt>$port</tt> appropriately.
555 <item> Restart the cluster.pl program
556 </itemize>   
557
558
559 <sect1>Setting up node connects
560
561 <P>
562 In order to allow cluster node connections, spider needs to know that the 
563 connecting callsign is a cluster node.  This is the case whether the connect 
564 is incoming or outgoing.  In spider this is a simple task and can be done in 
565 runtime.
566
567 <P>
568 Later versions of Spider can distinguish different software and treat them
569 differently.  For example, the WCY beacon cannot be handles by AK1A type
570 nodes as AK1A does not know what to do with PC73.  There are 4 different
571 types of node at present and although they may not have any major
572 differences at the moment, it allows for compatibility.  The 4 types are ...
573
574 <tscreen><verb>
575 set/node        (AK1A type)
576 set/spider
577 set/dxnet
578 set/clx
579 </verb></tscreen>
580
581 <P>
582 For now, we will assume that the cluster we are going to connect to is an
583 AK1A type node.
584
585 <P>
586 Start up the cluster as you did before and login as the sysop with client.
587 The cluster node I am wanting to make a connection to is GB7BAA but you would
588 obviously use whatever callsign you required.  At the prompt type ...
589
590 <tscreen><verb>
591 set/node gb7baa
592 </verb></tscreen>
593
594 <P>
595 The case does not matter as long as you have a version of DXSpider later than 
596 1.33.  Earlier versions required the callsign to be in upper case.
597
598 <P>
599 That is now set, it is as simple as that.  To prove it, login on yet another 
600 console as sysop, cd to spider/src and issue the command ...
601
602 <tscreen><verb>
603 ./client gb7baa (using the callsign you set as a node)
604 </verb></tscreen>
605
606 <P>
607 You should get an initialisation string from DXSpider like this ...
608
609 <tscreen><verb>
610 ./client gb7baa
611 PC38^GB7MBC^~
612 </verb></tscreen>
613
614 If the callsign you just set up as a cluster node is for an incoming connect, 
615 this is all that needs to be done.  If the connection is to be outgoing then 
616 a connection script needs to be written.
617
618 <P>
619 Sometimes you make a mistake... Honest, it does happen.  If you want to make a node
620 back to being a normal user, regardless
621 of what type it is, do:
622
623 <tscreen><verb>
624 unset/node gb7baa
625 </verb></tscreen>
626
627 <sect1>Connection scripts
628
629 <P>
630 Because DXSpider operates under Linux, connections can be made using just about 
631 any protocol;  AX25, NETRom, tcp/ip, ROSE etc are all possible examples.  
632 Connect scripts live in the /spider/connect directory and are simple ascii files.  
633 Writing a script for connections is therefore relatively simple.  
634
635 <P>
636 The connect scripts consist of lines which start with the following keywords 
637 or symbols:-
638
639 <descrip>
640         
641 <tag/#/All lines starting with a <tt>#</tt> are ignored, as are completely 
642                 blank lines.
643
644 <tag/timeout/<tt>timeout</tt> followed by a number is the number of seconds to wait for a 
645                 command to complete. If there is no timeout specified in the script 
646                 then the default is 60 seconds.
647
648 <tag/abort/     <tt>abort</tt> is a regular expression containing one or more strings to look 
649                 for to abort a connection. This is a perl regular expression and is 
650                 executed ignoring case.
651
652 <tag/connect/<tt>connect</tt> followed by ax25, agw (for Windows users) or telnet and some type dependent 
653                 information. In the case of a telnet connection, there can be up to 
654                 two parameters.
655                 The first is the ip address or hostname of the computer you wish to 
656                 connect to and the second is the port number you want to use (this 
657                 can be left out if it is a normal telnet session).
658                 In the case of an ax25 session then this would normally be a call to
659                 ax25_call or netrom_call as in the example above. It is your
660                 responsibility to get your node and other ax25 parameters to work 
661                 before going down this route!
662
663 <tag/'/<tt>'</tt> is the delimiting character for a word or phrase of an expect/send 
664                 line in a chat type script. The words/phrases normally come in pairs,
665                 either can be empty. Each line reads input from the connection until 
666                 it sees the string (or perl regular expression) contained in the
667                 left hand string. If the left hand string is empty then it doesn't 
668                 read or wait for anything. The comparison is done ignoring case.
669                 When the left hand string has found what it is looking for (if it is)
670                 then the right hand string is sent to the connection.
671                 This process is repeated for every line of chat script. 
672
673 <tag/client/<tt>client</tt> starts the connection, put the arguments you would want here 
674                 if you were starting the client program manually. You only need this 
675                 if the script has a different name to the callsign you are trying to 
676                 connect to (i.e. you have a script called other which actually 
677                 connects to GB7DJK-1 [instead of a script called gb7djk-1]).
678 </descrip>
679
680 <P>
681 There are many possible ways to configure the script but here are three examples, 
682 one for a NETRom/AX25 connect, one for AGW engines and one for tcp/ip.  
683
684 <tscreen><verb>
685 timeout 60
686 abort (Busy|Sorry|Fail)
687 # don't forget to chmod 4775 netrom_call!
688 connect ax25 /usr/sbin/netrom_call bbs gb7djk g1tlh
689 'Connect' '' 
690 'Connect' 'c np7'
691 'Connect' 'c gb7dxm'
692 # you can leave this out if you call the script 'gb7dxm'
693 client gb7dxm ax25
694 </verb></tscreen>
695
696 <P>
697
698 <tscreen><verb>
699 timeout 60
700 abort (Busy|Sorry|Fail)
701 # this does exactly the same as the previous example
702 # the '1' is the AGW port number to connect thru for g1tlh
703 connect agw 1 g1tlh
704 'Connect' '' 
705 'Connect' 'c np7'
706 'Connect' 'c gb7dxm'
707 # you can leave this out if you call the script 'gb7dxm'
708 client gb7dxm ax25
709 </verb></tscreen>
710
711 <P>
712
713 <tscreen><verb>
714 timeout 15
715 connect telnet dirkl.tobit.co.uk
716 'login' 'gb7djk'
717 'word' 'gb7djk'
718 # tell GB7DJK-1 that it is connected to GB7DJK
719 # you can leave this out if you call this script 'gb7djk'
720 client gb7djk telnet
721 </verb></tscreen>
722
723 <P>
724 Both these examples assume that everything is set up properly at the other end.  
725 You will find other examples in the /spider/examples directory.
726
727 <sect1>Starting the connection
728
729 <P>
730 You start the connection, from within a sysop enabled cluster login, by typing 
731 in the word <em>connect</em> followed by a script name like this ....
732
733 <tscreen><verb>
734 G0VGS de GB7MBC 13-Dec-1998 2041Z >connect gb7djk-1
735 connection to GB7DJK-1 started
736 G0VGS de GB7MBC 13-Dec-1998 2043Z >
737 </verb></tscreen>
738
739 <P>
740 This will start a connection using the script called <em>gb7djk-1</em>.  You can
741 follow the connection by watching the term or console from where you started
742 <em>cluster.pl</em>.  From version 1.47 onwards, you will need to <tt>set/debug connect</tt> first.
743 You should see something like this ...
744
745 <tscreen><verb>
746 <- D G1TLH connect gb7djk-1
747 -> D G1TLH connection to GB7DJK-1 started
748 -> D G1TLH G1TLH de GB7DJK 13-Dec-1998 2046Z >
749 timeout set to 15
750 CONNECT sort: telnet command: dirkl.tobit.co.uk
751 CHAT "login" -> "gb7djk"
752 received "
753 Red Hat Linux release 5.1 (Manhattan)
754 Kernel 2.0.35 on an i586
755 "
756 received "login: "
757 sent "gb7djk"
758 CHAT "word" -> "gb7djk"
759 received "gb7djk"
760 received "Password: "
761 sent "gb7djk"
762 Connected to GB7DJK-1, starting normal protocol
763 <- O GB7DJK-1 telnet
764 -> B GB7DJK-1 0
765 GB7DJK-1 channel func  state 0 -> init
766 <- D GB7DJK-1 
767 <- D GB7DJK-1 Last login: Sun Dec 13 17:59:56 from dirk1
768 <- D GB7DJK-1 PC38^GB7DJK-1^~
769 <- D GB7DJK-1 PC18^ 1 nodes, 0 local / 1 total users  Max users 0  Uptime 
770 0 00:00^5447^~
771     etc
772
773 </verb></tscreen>
774
775 <P>
776 With later versions of Spider there is a set/login command for users.  This 
777 tells them when a user or node logs in or out.  If you do not add a line to 
778 your scripts after the final line (or before the client line which should always 
779 be last if needed) then the login/logout information will be sent to users
780 <it>before</it> the login actually completes.  This means if a node is 
781 unreachable, it will continue sending logins and logouts to users even though it 
782 is not actually connecting.  To avoid this use the following line ...
783
784 <tscreen><verb>
785 'connect' ''
786 </verb></tscreen>
787
788 <P>
789 In a script, this might look like ...
790
791 <tscreen><verb>
792 timeout 35 
793 abort (Busy|Sorry|Fail)
794 connect telnet mary 3000
795 'ogin:' 'gb7mbc'
796 '>' 'telnet 44.131.93.96 7305'
797 'connect' ''
798 </verb></tscreen>
799
800 <sect1>Telnet echo
801
802 <P>
803 Cluster links in particular suffer greatly from the presence of telnet echo.  
804 This is caused by the telnet negotiation itself and can create at worst severe 
805 loops.  At best it creates unnecessary bandwidth and large logfiles!  There are
806 things that can be done to limit this problem but will not always work dependent 
807 on the route taken to connect.
808
809 <P>
810 Telnet echo itself should only be a problem if the connection is being made to 
811 the telnet port (23).  This port uses special rules that include echo negotiation.
812 If the connection is to a different port, such as 7300, this negotiation does 
813 not happen and therefore no echo should be present.
814
815 <P>
816 Sometimes it is not possible to make a direct connection to another node and this 
817 can cause problems.  There is a way of trying to suppress the telnet echo but 
818 this will not always work, unfortunately it is difficult to be more specific.  
819 Here is an example of what I mean ...
820
821 <tscreen><verb>
822 timeout 35
823 abort (Busy|Sorry|Fail)
824 connect telnet mary.lancs.ac.uk
825 'ogin:' 'gb7mbc'
826 'word:' 'mypasswd'
827 '\$' 'stty -echo raw'
828 '\$' 'telnet 44.131.93.96'
829 'connect' ''
830 </verb></tscreen>
831
832 <P>
833 So, the first connection is made by Spider.  This is fine as Spider uses the
834 Net_Telnet script from within perl.  This actually uses TCP rather than TELNET 
835 so no negotiation will be done on the first connection.  Once connected to
836 mary.lancs.ac.uk, the command is sent to suppress echo.  Now a telnet is made 
837 to a cluster node that is accepting connections on port 23.  The problem with 
838 this link is that the negotiation is made by the remote machine, therefore you 
839 have no control over it.  The chances are that this link will create echo and 
840 there will be no way you can stop it.
841
842
843 <sect1>Autostarting the cluster
844
845 <P>
846 Ok, you should now have DXSpider running nicely and allowing connects by cluster
847 nodes or users.  However, it has to be shutdown and restarted manually.  It
848 would be much easier to have it start automatically. 
849
850 <P>
851 This is not only a way to start the cluster automatically, it also works as a
852 watchdog, checking the sanity of DXSpider and respawning it should it crash for 
853 any reason.  Before doing the following, shutdown the cluster as you did earlier.
854
855 <P>
856 Login as root and bring up the /etc/inittab file in your favourite editor.  Add 
857 the following lines to the file near the end ...
858
859 <tscreen><verb>
860 ##Start DXSpider on bootup and respawn it should it crash
861 DX:3:respawn:/bin/su -c "/usr/bin/perl -w /spider/perl/cluster.pl" sysop >/dev/tty7
862 </verb></tscreen>
863
864 <P>
865 This line works fine for RedHat distributions. It is also fine for SuSE up to
866 7.0.  From Suse 7.1 you need to add runlevels 2 and 5 like this ...
867
868 <tscreen><verb>
869 DX:235:respawn:/bin/su -c "/usr/bin/perl -w /spider/perl/cluster.pl" sysop >/dev/tty7
870 </verb></tscreen>
871
872 <P>
873 The line required for Slackware distributions is slightly different.  My thanks to 
874 Aurelio, PA3EZL for this information.
875
876 <tscreen><verb>
877 DX:23:respawn:/bin/su - sysop -c "/usr/bin/perl -w /spider/perl/cluster.pl" >/dev/tty7
878 </verb></tscreen>
879
880 <P>
881 This will automatically start DXSpider on tty7 (ALT-F7) on bootup and restart 
882 it should it crash for any reason.
883
884 <P>
885 As root type the command <em>telinit q</em>.  DXSpider should start up 
886 immediately.  You will see the output on tty7 and if you login as <em>sysop</em> 
887 you should find everything running nicely.
888
889 <sect>Microsoft Windows Installation
890
891 <sect1>Introduction
892
893 <P>
894 <bf>IMPORTANT:</bf> 
895
896 What you'll be left with once you've followed these instructions
897 is (hopefully) a working DX Spider v1.47 system that is capable
898 of accepting or originating "internet" connections, plus inbound
899 AX.25 and TCP/IP radio connections. If the absence of outbound
900 radio connections is a serious limitation for you, it would be
901 better for you to wait a couple more weeks until this support has
902 been added.
903
904 On the other hand, you may have an enquiring mind, or better yet,
905 may be looking for a useful way of connecting your current
906 (perhaps) AK1A cluster "to the internet" via some networking
907 mechanism (BPQEther, etc) or other. I won't be producing
908 instructions for the latter case, because I don't have an AK1A to
909 play with. But someone might ...
910
911 Whatever, this document is intended to get you started with DX
912 Spider in a Microsoft Windows &trade; environment. It's not
913 intended to teach you anything other than how to perform a
914 minimum configuration of a DX Spider installation and have it
915 able to connect across "the internet" to other DX Clusters, while
916 accepting inbound TELNET and radio connections.
917
918 <sect1>The requirements
919
920 <P>
921 The very first things you're going to need are (in order of
922 importance):-
923
924 <itemize>
925 <item>A cup of good, strong tea
926 <item>A supported Windows platform with an internet connection so you can
927 download the necessary software bits and bobs directly to it. There are other ways, but this is preferable.
928 <item>Another cup of good, strong tea
929 <item>If all goes according to plan, about an hour to spare
930 <item>Plenty of good, strong tea
931 </itemize>
932
933 <sect1>The system
934
935 <P>
936 The platform I used to generate these instructions was a
937 "vanilla" Microsoft Windows Me 4.90.3000 system, with a 700MHz
938 AMD Athlon processor and 96 Mb memory. I've also personally
939 verified that it runs on my laptop (Pentium 266MHz, 32 Mb memory,
940 Windows 98 SE v4.10.2222 A) and a computer that I assembled from
941 a random pile of junk (AMD K6-2 333MHz, 64 Mb memory, Windows 98
942 v4.10.1998). As a result, I have reason to believe that what I'm
943 about to describe will perform equally on any 32-bit MS Windows
944 environment with 32 Mb of memory.
945
946 Because of the changes that have recently been made to the core
947 "cluster.pl" module and the introduction of a very lightweight
948 "winclient.pl", I have a sneaking suspicion that this will now
949 run on any platform that has reasonably complete support for
950 Perl. Is there someone out there with both an enquiring mind and
951 (say) a Macintosh, for instance?
952
953 Please bear in mind, though, that my instructions relate solely
954 to how to get this going under a Microsoft Windows environment,
955 and I have zero intention of trying to make them say otherwise.
956
957 <sect1>Perl
958
959 <P>
960 Install your chosen Perl environment. Unless you have a very good
961 reason for not doing so, I strongly suggest that you use
962 ActivePerl v5.6. For my testing & development, I used build 623.
963 You can get this from:- <htmlurl
964 url="http://www.activestate.com/Products/ActivePerl/Download.html"
965 name="http://www.activestate.com/Products/ActivePerl/Download.html">
966
967 You will need to choose either the MSI or the AS package. My
968 recommendation is that you choose the MSI package and deal with
969 the consequences if your system isn't equipped with support for
970 the latest MS Installer; you'll be better off in the long run.
971 The build 623 download is 7,460 KB, so now is a really good time
972 to have some tea if you're on a slow dial-up connection.
973
974 During installation, please ensure that you do choose the options
975 to "Add Perl to the PATH environment variable" and "Create Perl
976 file extension association"; it will make your life so much
977 easier. Once the installation is finished, be sure to reboot your
978 PC. You probably won't be told anywhere else that this needs to
979 be done now, but it does. Really.
980
981 Once you've rebooted, open a "DOS box" (Start > Run > command
982 might do it, if you can't find it elsewhere) and from wherever it
983 lands, type PERL -v &lt;ENTER&gt; (it's better if that's a lower-case
984 'v', because an upper-case 'V' means something else. You should
985 be rewarded with some interesting information about your Perl
986 installation. If you're not, you must go back to the beginning
987 and discover what went wrong and fix it. It's pointless to
988 proceed unless this simple check is passed. Assuming it did work,
989 you may now move on.
990
991 <sect1>Additional packages
992
993 <P>
994 Some extensions ("packages") need to be added to the base Perl
995 distribution, and we'll do this next. If you're using the Perl I
996 recommended, and don't know any better for yourself, then just
997 blindly following these instructions will work just fine. If that
998 didn't describe you, then you're on your own.
999
1000 Visit the following URL:
1001
1002 <htmlurl url="http://www.activestate.com/PPMPackages/zips/6xx-builds-only/"
1003 name="http://www.activestate.com/PPMPackages/zips/6xx-builds-only/">
1004
1005 and download the following files:-
1006
1007 <tscreen><verb>
1008 Data-Dumper.zip
1009 Net-Telnet.zip
1010 TimeDate.zip
1011 Time-HiRes.zip
1012 DB_File.zip
1013 </verb></tscreen>
1014
1015 Make yourself a convenient directory to unpack all of these zip
1016 files into (I put mine in "D:\ppm>") and do the following (the
1017 bits you type in are blue ). Note that where these files land
1018 will be directly related to where you chose to install your
1019 ActivePerl (mine, as you can probably guess from what follows,
1020 went into "D:\Perl"):-
1021
1022 <tscreen><verb>
1023 D:\ppm>ppm install Data-Dumper.ppd
1024 Installing package 'Data-Dumper.ppd'
1025 Installing D:\Perl\site\lib\auto\Data\Dumper\Dumper.bs
1026 Installing D:\Perl\site\lib\auto\Data\Dumper\Dumper.dll
1027 Installing D:\Perl\site\lib\auto\Data\Dumper\Dumper.exp
1028 Installing D:\Perl\site\lib\auto\Data\Dumper\Dumper.lib
1029 Installing D:\Perl\html\site\lib\auto\Data\Dumper\Dumper.html
1030 Installing D:\Perl\site\lib\Data\Dumper\Dumper.pm
1031 Writing D:\Perl\site\lib\auto\Data\Dumper\Dumper.packlist
1032 D:\ppm>
1033 </verb></tscreen>
1034
1035 I'm not going to bother you with exhaustive details of the rest
1036 of them, but suffice it to say you need to:
1037
1038 <tscreen><verb>
1039 ppm install DB_File.ppd
1040 ppm install Net-Telnet.ppd
1041 ppm install TimeDate.ppd
1042 ppm install Time-HiRes.ppd
1043 </verb></tscreen>
1044
1045 If all that seemed to work OK, time to move along. Before anyone
1046 who is familiar with PPM tells me that we didn't need to download
1047 and keep those files locally, I knew that. I also knew that PPM
1048 is sometimes awkward to configure via firewalls, and that
1049 sometimes the repositories don't always work the way we'd hope. I
1050 do it that way because it suits me.
1051
1052 <sect1>Getting Spider
1053
1054 <P>
1055 Get the current version of the DX Spider distribution. This needs
1056 to be v1.47 or later. You've got two ways (currently) of getting
1057 this; either get a CVS update from sourceforge (if you don't know
1058 what this is, then it isn't for you) or get the latest "official"
1059 release from:-
1060
1061 <htmlurl url="http://www.dxcluster.org/download/index.html" name="http://www.dxcluster.org/download/index.html">
1062
1063 or if you want the lastest snapshot of CVS version (which is produced 
1064 every night):-
1065
1066 <htmlurl url="http://www.dxcluster.org/download/CVSlatest.tgz" name="http://www.dxcluster.org/download/CVSlatest.tgz">
1067
1068 This is generally the best one to go for as it is completely up to
1069 date. However, there is always the very slight chance that it might
1070 unstable. Generally, there will be a note on the website if this is 
1071 the case. 
1072
1073 <p>The only difference between "CVSlatest.tgz" and the latest
1074 "official" release version is that it is more up to date. Don't confuse 
1075 this TGZ file with "Downloading from Sourceforge with CVS" - they are two
1076 quite different things.  
1077
1078 <p>
1079 If you went down the CVS route (ie installed wincvs and downloaded from
1080 sourceforge), then everything will be nicely
1081 set out on your local disk. If you got the TGZ file, unpack it to
1082 somewhere convenient. The following examples assume that you put
1083 it on drive "C:\", for convenience.
1084
1085 <p>You will need <htmlurl url="http://www.winzip.com" name="winzip"> to
1086 manipulate the TGZ files (they are bit like ZIP files) if you are not using CVS.
1087
1088 <sect>Installing the software
1089
1090 <P>
1091 Ensure that your CVS session or your WINunZIPped file have left you with
1092 a directory "C:\spider\local" and C:\spider\local_cmd"; if not, go to
1093 "C:\spider\" and create them. If "C:\spider" is missing, go back and
1094 figure out why, because it shouldn't be.
1095
1096 Now create your own local copy of the DXVars.pm file by:-
1097
1098 <tscreen><verb>
1099 copy c:\spider\perl\DXVars.pm.issue
1100 c:\spider\local\DXVars.pm
1101 </verb></tscreen>
1102
1103 Now you'll need to edit this file using a text editor. If nothing
1104 else, you can simply
1105
1106 <tscreen><verb>
1107 cd \spider\local
1108 </verb></tscreen>
1109
1110 and then
1111
1112 <tscreen><verb>
1113 notepad DXVars.pm
1114 </verb></tscreen>
1115
1116 to bring up an editor window containing the file. As an absolute
1117 minimum you must adjust the following items in DXVars.pm:-
1118
1119 <itemize>
1120 <item> $mycall  - Should hold the callsign of your DX Cluster
1121 <item> $myname  - The SysOp's first name
1122 <item> $myalias - the SysOp's callsign. Cannot be the same as $mycall!
1123 <item> $myqth - The station's geographical location (QTH).
1124 <item> $mylatitude - The station latitude in degrees and decimal fractions
1125 <item> $mylongitude - The station longitude in degrees and decimal fractions
1126 <item> $mylocator - The Maidenhead (or QRA) locator of the station 
1127 </itemize>
1128
1129 You really also ought to update the $myqth and $myemail variables. And
1130 unless you are absolutely certain you know what you're doing, you
1131 should change nothing else in this file. Note that if you use an "@" or 
1132 a "$" character in one of the above strings (typically in $myemail) you must 
1133 write them as "\@" or "\$". 
1134
1135
1136 <sect1>Incoming telnets
1137
1138 <P>
1139 If you want to enable inbound "TELNET" connections (or you are running
1140 Windows NT, 2000 or XP), you've got a little more work to do. From a
1141 handy "DOS box" that's not doing anything else, do the following:-
1142
1143 <tscreen><verb>
1144 copy \spider\perl\Listeners.pm \spider\local
1145 cd \spider\local
1146 notepad listeners.pm
1147 </verb></tscreen>
1148
1149 The following lines need attention:-
1150
1151 <tscreen><verb>
1152 ["0.0.0.0", 7300],
1153 </verb></tscreen>
1154
1155 On my machine, I've simply uncommented the "0.0.0.0" entry by
1156 removing the '#' from the front of the line. 
1157
1158 <bf>You MUST carry out this step if you are
1159 running on a Windows NT, 2000 or XP based system</bf>
1160
1161 If you don't have a static hostname for your machine, and you
1162 intend to allow folk to connect to your machine across the
1163 internet, then I'd suggest you pay a visit to www.dyndns.org and
1164 create one for yourself. While it's free, it will take a modest
1165 an amount of effort on your part to read, understand and
1166 implement what needs to be done to set this up.
1167
1168 <p>If your machine is connected to the internet <bf>and</bf> you don't
1169 want to allow your machine to be visible to the outside world you
1170 should change the "0.0.0.0" to "127.0.0.1" [which is
1171 "localhost"]. This will then only allow connections from inside your
1172 machine. As was said earlier: if you aren't running Win9x (or you want
1173 to use DXTelnet or somesuch), then you need to have the machine
1174 listening at least to "127.0.0.1" ("0.0.0.0" means <bf>all</bf> IP
1175 addresses).
1176
1177 <sect1>The AGW packet engine
1178
1179 <P>
1180 On the assumption that you'll be using the SV2AGW Packet Engine
1181 to interface your radios to the cluster, you should now create
1182 your own local copy of AGWConnect.pm by:-
1183
1184 <tscreen><verb>
1185 copy c:\spider\perl\AGWConnect.pm
1186 c:\spider\local\AGWConnect.pm
1187 </verb></tscreen>
1188
1189 and then
1190
1191 <tscreen><verb>
1192 notepad AGWConnect.pm
1193 </verb></tscreen>
1194
1195 to bring up an editor window containing the file. You must
1196 consider adjusting the following items in AGWConnect.pm:-
1197
1198 <itemize>
1199 <item>$enable - set to '1' to enable AGWPE interface 
1200 <item>$login  - the login ID you chose when you set up the SV2AGW security :-)
1201 <item>$passwd - password that matches $login
1202 </itemize>
1203
1204 <sect1>Setting up the initial user files
1205
1206 <P>
1207 Next you need to create the initial user files, etc. A tool is
1208 supplied which will do this for you. To run the tool:-
1209
1210 <tscreen><verb>
1211 cd \spider\perl
1212 perl create_sysop.pl
1213 </verb></tscreen>
1214
1215 If all goes according to plan, you will see no output from this
1216 program, and after a brief wait, your DOS prompt will be
1217 returned.
1218
1219 Depending on how brave you are, you might now care to try the
1220 following:-
1221
1222 <tscreen><verb>
1223 perl cluster.pl
1224 </verb></tscreen>
1225
1226 If you did everything you were told, your DOS window will now
1227 hold a display which looks something like:-
1228
1229 <tscreen><verb>
1230 DXSpider DX Cluster Version 1.47
1231 Copyright (c) 1998-2001 Dirk Koopman G1TLH
1232 loading prefixes ...
1233 loading band data ...
1234 loading user file system ...
1235 starting listeners ...
1236 Internal port: localhost 27754
1237 load badwords: Ok
1238 reading in duplicate spot and WWV info ...
1239 reading existing message headers ...
1240 load badmsg: Ok
1241 load forward: Ok
1242 load swop: Ok
1243 @msg = 0 before delete
1244 @msg = 0 after delete
1245 reading cron jobs ...v cron: reading /spider/cmd/crontab
1246 cron: adding 1 0 * * 0
1247 DXUser::export("$main::data/user_asc")
1248 reading database descriptors ...
1249 doing local initialisation ...
1250 orft we jolly well go ...
1251 queue msg (0)
1252 </verb></tscreen>
1253
1254 Now, if that's what you've got, you are very nearly home and dry
1255 (in as far as these particular experiments are concerned, anyhow)
1256
1257 If you are running Windows 9x you can access your new cluster (from
1258 the local machine) by finding yourself another "DOS box" and doing the
1259 following:-
1260
1261 <tscreen><verb>
1262 cd \spider\perl
1263 perl winclient.pl
1264 </verb></tscreen>
1265
1266 If you are running Windows NT, 2000 or XP then winclient.pl does not
1267 work. We don't know why other than this seems to be some kind of
1268 incomaptibility in perl. You can achieve the same thing by telnetting
1269 to the port you defined in Listeners.pm (7300 as default), thus:-
1270
1271 <tscreen><verb>
1272 Menu->Start->Run
1273 telnet localhost 7300
1274 </verb></tscreen>
1275
1276 On getting the <bf>login:</bf> prompt, enter your sysop callsign (the one you
1277 put in DXVars.pm as $myalias).
1278
1279 <p>I would recommend <bf>strongly</bf> that you obtain a better telnet
1280 client than that which comes with windows (I use <htmlurl
1281 url="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html"
1282 name="PuTTY">). 
1283
1284 <p>Anyway, if you are rewarded with a display which looks something like:-
1285
1286 <tscreen><verb>
1287 Hello Iain, this is GB7SJP in Amersham, Bucks running DXSpider V1.47
1288 Cluster: 1 nodes, 1 local / 1 total users Max users 2 Uptime 0 00:00
1289 M0ADI de GB7SJP 4-Mar-2001 1511Z >
1290 </verb></tscreen>
1291
1292 You've arrived. Try some commands, and see how they feel. (In
1293 case you were wondering, "Iain", "M0ADI" and "GB7SJP" all came
1294 from the version of DXVars.pm that was on the machine when I
1295 started the winclient.pl)
1296
1297 <p>The interface is very basic. It is a simple command line. There are
1298 better looking interfaces. Most of the "standard" logging and DX
1299 Cluster access programs that are capable of connecting via a TCP or
1300 telnet connection will work as a "Sysop Console" client. You connect
1301 to "localhost" on the port that you defined in Listeners.pm (usually
1302 7300). I recommend packages like <htmlurl
1303 url="http://www.qsl.net/wd4ngb/telnet.htm" name="DXTelnet">.
1304
1305 <sect1>Connecting to other clusters
1306
1307 <P>
1308 If you want to connect this to another cluster, then you'll want to
1309 negotiate a link with someone. For experimental purposes, I'm happy to
1310 allow folk to connect to GB7DXA (spud.ath.cx), on the understanding
1311 that the system may or may not be there and may or may not be
1312 connected to anything particularly useful at any given moment. Contact
1313 me by <htmlurl url="mailto:g0rdi@blacksheep.org" name="Email"> if you
1314 want me to set up a connection for you.
1315
1316 <sect>General Information
1317
1318 <P>
1319 The following relates to all versions of DXSpider and is not platform related.
1320
1321 <sect1>The crontab file
1322
1323 <P>
1324 Login as <em>sysop</em> and create a file in /spider/local_cmd called crontab.  
1325 Edit it with your favourite editor and add a line like this (I have included 
1326 a comment)
1327
1328 <tscreen><verb>
1329 # check every 10 minutes to see if gb7xxx is connected and if not
1330 # start a connect job going
1331
1332 0,10,20,30,40,50 * * * * start_connect('gb7xxx') unless connected('gb7xxx')
1333 </verb></tscreen>
1334
1335 <P>
1336 The callsign involved will be the callsign of the cluster node you are 
1337 going to connect to.  This will now check every 10 minutes to see if 
1338 gb7xxx is connected, if it is then nothing will be done.  If it is not, 
1339 then a connect attempt will be started.
1340
1341 <P>
1342 There are probably lots of other things you could use this crontab file for.  
1343 If you want to know more about it, look at the
1344 <htmlurl url="http://www.dxcluster.org/cron.html" name="DXSpider"> website 
1345 at the cron page where it is explained more fully.
1346
1347 </article>