From LO-Wiki
(Redirected from Owner Manual: Chapter 7)
[edit] What is the list archive?
The list archive consists of all of the notebook logs for your list. (If your list is coded "Notebook= No", then it does not have a list archive, of course.) Users can find out what notebook logs are available for a specific list by sending the command INDex listname to the appropriate LISTSERV host.
[edit] Setting up and managing archive notebooks
If your list is coded "Notebook= No", you should consult your LISTSERV maintainer before changing the keyword to create list archive notebooks. The LISTSERV maintainer will have to tell you where the notebook should be kept (the second parameter in the "Notebook=" keyword). Also note that depending on local policies, you may or may not be allowed to archive your list, or keep more than a few months' or weeks' worth of archives available at a given time.
[edit] Indexing available archive notebooks
To find out what archive notebooks are available for your list, simply send the INDex listname command to LISTSERV.
[edit] Deleting existing archive notebooks
To delete an existing archive notebook, simply execute a PUT operation for the notebook in question without sending any other text along with the PUT command line. For instance, send an email with the following text as the only content in the body of the message: PUT MYLIST LOG9607 PW=mypersonalpw This command without any other additional text would delete MYLIST LOG9607 from the server. Two important issues:- This command MUST be issued by e-mail. It cannot be issued via the "Execute a LISTSERV command" facility of the web management interface.
- NOTE CAREFULLY that you MUST turn off your signature file (if one is enabled in your mail client) in order to successfully delete files. If you do not, LISTSERV will store your signature file in place of the file you are trying to delete instead of deleting the file.
[edit] Database Functions Overview
This functionality is not available in LISTSERV Lite. In this section, we will detail the basics of a LISTSERV command job and show you a sample database query session. Please note that it is not the purpose of this manual to provide the user with a detailed database function reference. See Section 7.4 for more information. For information on the new database functions available in 1.8c, please see section 7.3.3, below. For non-VM servers running 1.8c, you can skip sections 7.3.1 and 7.3.2 entirely.
[edit] LISTSERV Command Job Language Interpreter
The LISTSERV database command syntax used to access database functions is English-like in structure. This syntax is called LISTSERV Command Job Language Interpreter, or CJLI for short. Database commands are sent to LISTSERV in CJLI "batch jobs". When accessing the database in "batch" mode, you must construct a CJLI job which you must then submit to the appropriate server for execution. This means that you must know in advance what you want to do exactly. If you are not familiar with CJLI, you can use the following "job skeleton" to build up your database search job: // JOB Echo=No Database Search DD=Rules //Rules DD * command 1 command 2 ... /*[edit] 7.1. Sample database job skeleton
This CJLI job is sent in e-mail to the appropriate LISTSERV host. You will then receive by return e-mail a "DATABASE OUTPUT" file containing the results of your search. This file might look like this: > Select * in TEST-L --> Database TEST-L, 4 hits. > Index Item # Date Time Recs Subject ------ ---- ---- ---- ------- 000001 95/10/18 13:09 12 This is a test looking for upcasing 000002 95/08/24 09:18 9 000003 95/10/18 13:09 8 Test - please acknowledge receipt 000004 95/10/18 13:09 7 Does Reply-To=Both work correctly?
Figure 7.2. Sample DATABASE OUTPUT: Each of the commands in the original job is echoed in the output file (unless specifically disabled). If you realize that the items you were interested in are number 1 and 3, you will have to submit a new job to ask for a copy of them. The new job must include the "Select" command, as LISTSERV does not cache CJLI commands in the expectation that you will send another command job.
[edit] A basic database session
(VM servers running 1.8b or earlier only) (See 7.3.3 for VM 1.8c and later, and for non-VM servers) Let's say that you are looking for messages in the LSTOWN-L mailing list that pertain to the list header keyword "Digest=". You set up a very simple CJLI job as follows and mail it to LISTSERV@SEARN.SUNET.SE: // JOB Echo=No Database Search DD=Rules //Rules DD * Search 'Digest=' in LSTOWN-L Index /*[edit] 7.3. Sample CJLI database search job for VM servers
Figure 7.3, when sent to LISTSERV, says: "Look for the string 'Digest=' in all of the archives you have for list LSTOWN-L. Then, send me back an index of all messages in the archives that include that string." LISTSERV at SEARN obligingly searches the LSTOWN-L archives, finds the following, and sends it back to you in an e-mail message: > Search 'Digest=' in LSTOWN-L --> Database LSTOWN-L, 37 hits. > Index Item # Date Time Recs Subject ------ ---- ---- ---- ------- 001215 93/01/06 21:58 50 New feature in 1.7f - automatic digests 001339 93/01/18 02:46 110 New features for 1.7f - "Filter=" and list keyword+ 001375 93/01/28 10:02 19 Initial reports from 1.7f beta tests? 001401 93/02/08 16:39 58 Re: List of LISTSERV header keywords? 001616 93/03/18 13:42 70 DIGEST boilerplate announcement/reference 001727 93/04/04 15:22 916 Changes from release 1.7e to 1.7f ....[edit] 7.4. Part of the LISTSERV response to the CJLI job in Figure 7.3.
The next step is to send a CJLI job to request the specific message(s) you are interested in. Let's say that you are interested in changes from one version of LISTSERV to another, and you therefore would like to see messages 1215, 1339, and 1727. You set up the following CJLI framework: // JOB Echo=No Database Search DD=Rules //Rules DD * Search 'Digest=' in LSTOWN-L Print 1215 1339 1727 /*[edit] 7.5. CJLI job instructing LISTSERV to send specific messages to the requestor.
This example says: "Look for the string 'Digest=' in all of the archives you have for list LSTOWN-L. Then, send me back message numbers 1215, 1339 and 1727." LISTSERV will repeat the search from Figure 7.3 and will package the three messages you have requested into a return mail message and send it back to you.
[edit] A basic database session (All servers running 1.8c or later only)
We'll take a similar situation as described in 7.3.2 and apply it to all servers running LISTSERV 1.8c or later. To search for the term "Digest=" in the EASE-HOME list on HOME.EASE.LSOFT.COM, you would make a new mail message and simply type: Search 'Digest=' in EASE-HOME No CJLI is necessary (in fact, it should not be used). LISTSERV would respond to you with the following: > Search 'Digest=' in EASE-HOME -> 10 matches. Item # Date Time Recs Subject ------ ---- ---- ---- ------- 000058 96/01/26 14:44 41 What happened 000059 96/01/26 18:14 38 Re: What happened 000066 96/02/02 22:51 31 Digest Problem 000074 96/02/03 15:01 75 Re: Digest Problem 000075 96/02/03 18:52 49 Re: Digest Problem 000076 96/02/03 16:27 52 Re: Digest Problem 000112 96/02/13 23:37 29 not receiving mail 000126 96/02/25 20:20 63 error/bounce msg posted to list How? 000172 96/03/13 09:11 12 Digest Mailing Time 000483 96/06/22 17:36 34 Header Info To order a copy of these postings, send the following command: GETPOST EASE-HOME 58-59 66 74-76 112 126 172 483 >>> Item #58 (26 Jan 1996 14:44) - What happened I never touched the Limits= command or the notebook= All I did was try and add: Digest= Yes,Daily ^^^^^^^ I have tryed this several times with the same reply message: >>> Item #59 (26 Jan 1996 18:14) - Re: What happened > I never touched the Limits= command or the notebook= All I did was >try and add: Digest= Yes,Daily ^^^^^^^ (remainder deleted)[edit] 7.6. Sample SEARCH output from non-VM servers
Note that LISTSERV includes excerpts from the indexed postings showing the context of the search term(s). We've deleted all but the first 2 in the example above to save space. You would then use the new GETPOST command to order the specific posts you wanted to read. For instance, we want to read posts numbered 66, 74 through 76, and 126. We would make another new message (or reply to the response from LISTSERV) and type in the body: GETPOST 66 74-76 126 LISTSERV would then respond with the desired postings. For the non-VM servers, GETPOST is analogous to the old database command "PRINT". There is no corresponding command for the old database command INDEX, since the response to a SEARCH command includes the index of matching postings.
[edit] Narrowing the search
(Works on both the VM and non-VM servers) It is possible to add further parameters to your search in order to narrow it. You can limit a search by date with a "since. . . " predicate. Likewise, you can limit by sender and/or by the subject line with a "where . . ." predicate. For instance: Search 'Digest=' in LSTOWN-L since 94/01/01 Search 'Digest=' in LSTOWN-L where sender contains 'Thomas' Search * in LSTOWN-L where sender is ERIC@SEARN Search * in LSTOWN-L since 94/01/01 where subject contains 'Digest' are all valid search commands that will (hopefully) dramatically reduce the number of index or print entries returned to you.
[edit] Where to find more information on Database Functions
You can get more detailed information on database functions and the database command syntax by requesting the file LISTDB MEMO from LISTSERV@LISTSERV.NET . You can send either a "GET LISTDB MEMO" command or an "INFO DATABASE" command to retrieve the file. There is also more information on the database functions in the General User's Guide to LISTSERV, available on L-Soft's WWW site.
