

                                   AutoPurge


                     Automatic cleaning of NetWare servers








  DISCLAIMER

     THIS PRODUCT IS SUPPLIED "AS IS". THE AUTHOR DISCLAIMS ALL WARRANTIES,
     EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, THE WARRANTIES OF
     MERCHANTABILITY AND OF FITNESS FOR ANY PURPOSE. THE AUTHOR ASSUMES NO
     LIABILITY FOR DAMAGES, DIRECT OR CONSEQUENTIAL, WHICH MAY RESULT FROM
     THE USE OF THIS PRODUCT.










































                                                                            I

  Acknowledgments

     This program could not have been developed without the help and
     dedication of many people. I would like to express my thanks to the
     following persons:

     Isolution B.V.: Ruud van Tol, Joke Meijer

     Design consultant: Gerard Zonjee

     Beta Testers: Rob Plas, Roel van Bueren

     These programs and utilities have been used for the development of
     AutoPurge:

       Compiler:           Watcom C/C++ 9.5

       Libraries:          Novell NLM SDK 3.0
                           Stealth Bomber version 2.2 (Kevin Dean)

       Editor:             Brief 3.1 (SDC Software Partners)

       Documentation:      Microsoft Word for Windows v7.0

     I would also like to thank the members of the Netwerk Gebruikersgroep
     Nederland (The Dutch NetWare Usergroup) for the definition of the idea.

     My special thanks go to Tawni, Thomas en Robin. They made it possible
     for me to spend all my time on the development of AutoPurge. On top of
     that, they forgave me for my moods, which, because of a substantial lack
     of sleep, were quite frequent.


  License

     The software and this documentation are subject to license agreements.
     You may only use the software in compliance with these agreements.


  Copyright

     Copyright 1994-1997 WvW.

     All rights reserved.

     It is not allowed to copy this documentation, or parts of it, without
     the written consent of Wouter van Wageningen (WvW).


  Trademarks

     AutoPurge and WvW are trademarks of Wouter van Wageningen.

     The product and company names used in this documentation are the
     trademarks of their respective owners.





                                                                           II
  Contents

  DISCLAIMER...........................................I

  ACKNOWLEDGMENTS.....................................II
    LICENSE                                           II
    COPYRIGHT                                         II
    TRADEMARKS                                        II

  CONTENTS...........................................III

  INTRODUCTION.........................................1

  AUTOPURGE............................................2
    NETWARE AND DELETED FILES                          2
    TEMPORARY FILES                                    3
    AUTOPURGE HELPS                                    3
      FLAGGING                                         3
      PURGING                                          4
      DELETING                                         4

  JOBS.................................................5
    EXAMPLES                                           5
      TEMPORARY FILES                                  5
      OLD, DELETED USER FILES                          7
      UPDATES OF PROGRAMS                              7

  INITIALIZATION FILE..................................8
    HOW DOES IT WORK?                                  8
    SECTIONS                                           8
    GENERAL                                            8
      [AUTOPURGE]                                      9
      [LOGGING]                                       10
    JOBS                                              12
      [FLAG]                                          14
      [PURGE]                                         14
      [DELETE]                                        15

  SYSTEM REQUIREMENTS.................................17
    RESOURCE USAGE                                    17

  STARTING AND STOPPING...............................18
    TEMPORARILY SUSPENDING                            18

  COMMANDS............................................19
    COMMAND LIST                                      19

  MESSAGES............................................21
    MESSAGE LIST                                      21
      DOS ERROR CODES                                 30

  TROUBLESHOOTING.....................................31
    RUNNING INTO PROBLEMS                             31
      PROBLEMS BEFORE AUTOPURGE IS STARTED            31
      PROBLEMS WHILE STARTING                         31
      PROBLEMS WHILE EXECUTING JOBS                   32
    TECHNICAL SUPPORT                                 32

  APPENDIX A..........................................33
    SCREENS                                           33

  APPENDIX B..........................................35
    LOG-FILES                                         35
                                                                          III

  Introduction

     Welcome to the documentation of the AutoPurge program. This program is
     written to help reduce the harddisk use of NetWare file-servers. It is a
     program capable of removing and purging files selectively and
     automatically.

     The are many types of files on file-servers. Each type requires its own
     way of removal. For example, data-files should not be removed too soon,
     temporary files should be discarded as soon as possible, confidential
     information should be completely destroyed. File-servers don't offer
     this type of functionality as standard, so the need for a program that
     could provide this was born.

     AutoPurge focuses on the timely and permanent removal of unneeded files.
     The program offers three methods for accomplishing this:

     1. Files can get a `Purgeable' flag at the moment of creation. These
        files will, after being deleted (either manually or by another
        program) be removed from the file-server completely, and can not be
        salvaged by the SALVAGE command.

     2. Deleted files can be automatically removed from the harddisk at
        preset times. These files can be selected through a wide array of
        attributes.

     3. Files can be deleted at preset times. They can optionally be
        overwritten prior to deletion, or be completely removed from the
        harddisk.

     When the AutoPurge program is loaded on a NetWare file-server, it will
     run continuously in the background. The actions of AutoPurge can be
     monitored through log-files and e-mail. A status-screen can be switched
     on on the file-server, giving insight in the execution.

     AutoPurge is written so that it can do all his work without interference
     of an operator. This way it becomes an extension of the file-server.

     We are in a constant process of improving our products. If you have any
     suggestions for improvements or extensions, we would be very pleased if
     you would inform us of these. During the development of this version,
     many aspects were changed and additions were made after consulting with
     field-testing administrators. We would like to keep using your special
     knowledge to make our products as complete and easy as possible.
















  AutoPurge Reference manual                                                1

  AutoPurge

     AutoPurge is in essence a NetWare Loadable Module (NLM) that helps
     NetWare with maintaining the file-system. It focuses on the removal of
     files that are no longer of interest to the users.


  NetWare and deleted files

     The NetWare file-system stores and guards your files. To protect users
     against themselves, it does this even with deleted files. To NetWare, a
     deleted file is like any other, only containing an indication that it is
     not a normal file. NetWare will keep these files until the harddisk is
     completely filled. Then NetWare will overwrite the space they are
     occupying in chronological order. The files that were deleted the first,
     will be overwritten with new, normal files.

     In the event that you need a file that is already deleted, you can use
     the SALVAGE command to see if the file is still stored. If this is so, a
     mere press of a button is sufficient to restore the file. Even if the
     same file is created and deleted over and over again, all these files
     can be retrieved in an easy way. And even if the directory that
     contained the files is removed, NetWare keeps the files in a reserved
     area of the volume. In many cases, this is an indispensable function of
     NetWare file-servers.

     This function seems to come at no expense. As a user, you don't notice
     that NetWare is doing this for you. You can just keep on creating files
     until the volume is completely filled. That files have been deleted does
     not make a difference. The file-server will always inform you of all the
     free space, including the space taken up by deleted files.

     There is a downside to this function. NetWare saves all files in the
     Directory Entry Table (DET). This table will be read into the file-
     server's memory as part of the startup process. During normal operation,
     the file-server will use this memory to cache the table, thereby
     speeding up the file-operations. The size of the table is dictated by
     the number of files on the file-server. The more files, the larger the
     table is. This is apparent when a volume is mounted. A sparsely
     populated volume will mount quickly; one with a lot of files can take
     minutes. A large DET will also take up a larger amount of file-server
     memory, so less is available for file-caching. When NetWare needs more
     space in the DET, it creates new entries. But, although NetWare reuses
     them, the old, empty ones are never removed. In other words, the DET
     only grows, never shrinks. If, at any time, a lot of files were stored
     on a volume, the DET has grown to a certain size. This space will be
     taken up by the DET, even if all files are removed from the volume.

     NetWare gives us some tools to manipulate the deleted files:

     -  The whole function of maintaining deleted files can be switched off
        at the file-server. This is a somewhat drastic method. No file will
        be salvageable after being deleted. This is enabled for all volumes
        at one time. For a recovery of a deleted file, a restore from a
        backup-medium is required.

     -  Deleted files can be physically removed with the PURGE command.
        This is a manual solution, and not very selective.


  AutoPurge Reference manual                                                2

     -  Directories can be flagged `Purgeable'. Files in these directories
        will be removed immediately after being deleted. This flag will
        influence all files in these directories. It is not possible to
        activate it for a sub-set of files.

     -  Files can be flagged `Purgeable'. These files will be removed
        immediately after being deleted. This is a very labor intensive
        option. Applications that create files will not do this flagging
        automatically. The user, or the system operator, must do this
        manually.



     NetWare is not selective when it comes to deleted files. It will not
     look at the name or extension of a file, or at how long the deleted file
     is kept. You know that the file NONSENSE.OLD does not need to be saved
     for two years after being deleted. NetWare doesn't have that knowledge.
     And that is a pity, because an important file might be removed, due to
     shortage of space, while a completely useless file is kept active.


  Temporary files

     Programs create files. And that is a good thing, for otherwise we would
     have to recreate everything each time we want to use them. Programs also
     create many files that you can't use. These files are used to store
     information while the program is running. In most of the cases, these
     files are removed when the application is closed. Therefore the name
     `temporary files'. But these files will take up storage space in the
     file-system, even if they are deleted. It is not space that we will
     directly see, but there are some pitfalls. Say, you have space for ten
     more files on your volume. The users delete and create ten files a day
     on average. All the files that were deleted the day before can than be
     recovered with the SALVAGE command. But if you use a program that
     creates a temporary file for each file that you create, you will have
     five real files and five temporary ones. You can now only recover five
     normal files. The other five files contain, to you, irrelevant
     information. In practice, many temporary files are created, which
     worsens the problem.

     In certain cases, temporary files will not be deleted. This will happen,
     for instance, if the program is not closed normally. The user could have
     run into a bug in the program, rebooted, or just switched off his
     computer. The temporary files will remain until you remove them by hand.
     Finding these files can be a real ordeal.


  AutoPurge helps

     AutoPurge is, as the name suggests, a program that removes files for you
     automatically. This can be done in three different ways: Flagging,
     Purging and Deleting.


  Flagging
     Files can be flagged `Purgeable' upon creation. These files will then be
     removed completely when they are deleted. Until they are deleted, there
     behavior will remain the same. After deletion though, they can no longer
     be recovered by the SALVAGE command, and they will free their space in
     the tables of NetWare.

  AutoPurge Reference manual                                                3

     As long as they are not deleted, the `Purgeable' flag can be removed
     with the FLAG <FileName> -P command. The file is then the same as any
     other on the file-server, and can be recovered after deletion.

     The AutoPurge Flag-method is best suited for the automatic removal of
     temporary files and print-jobs. Because an application creates and
     deletes files by itself, the removal would only free space that was
     already allocated. The `Purgeable' flag will make sure that extra space
     is never allocated.

     AutoPurge will have to look at the creation of every file with this
     method. To make this process as speedy as possible, a subset of the
     normal options can be used to select files. This subset is explained in
     Jobs, page 12.


  Purging
     The Purging-method will actually remove deleted files from the harddisk.
     Volumes will be scanned for files that meet the given criteria. If a
     file fulfills these requirements, it will be removed from the volume.
     This will have the same effect as when you would have typed PURGE
     <FileName>.

     This action can be initiated at certain intervals. You can specify at
     what time and on which days this process must be started.

     The requirements for a file to be removed can be specified through a
     large number of options. You can specify, for instance, the file-name,
     directory, size, the number of days after deletion, the number of copies
     of the deleted file, etc.

     The Purging-method is used to keep volumes free of unwanted files.


  Deleting
     This is the most destructive method. Here, files will be deleted, and
     optionally overwritten or purged (or both). The Flagging- and Purging-
     methods handle files that were already deleted. Through the Deleting-
     method, AutoPurge removes unwanted files.

     The selection of files can be done with the same options as with the
     Purging-method. This makes it possible to accurately specify the files
     that should be deleted.

     Optionally, it is possible to overwrite the file just before it is
     deleted. The information is then lost forever. Normally, even after a
     file is completely removed from the file-system, the information that it
     contained can still be recovered with special techniques. After being
     overwritten, just a random pattern will remain.

     If you enable the immediate purge option, AutoPurge will add the
     `Purgeable' flag to the file prior to deleting it. When NetWare removes
     the file, it will not be put on the deleted files list, but will be
     removed immediately. No extra space in the NetWare tables is used.

     This method is best suited to remove temporary files that are not
     cleaned up by the creating application. Other good candidates are old
     backup-files and log-files.



  AutoPurge Reference manual                                                4

  Jobs

     AutoPurge can perform different operations on groups of files. For each
     operation, on a group of files, you define a job for AutoPurge. The
     group of files that an operation works on can be very broad, like all
     the files on a volume, or very narrow, like only the files with named
     CONSOLE.LOG that the SUPERVISOR created and deleted more that 3 days ago
     on the SYS: volume.

     AutoPurge carries out these operations at preset times. Each job has its
     own execution time, which is set by the operator. This makes it possible
     to schedule small jobs daily, while keeping complex ones for the
     weekend. The execution time setting can be omitted, thereby ensuring
     that the job is not started automatically. These manual jobs can be
     started from the file-server console. The exception to this are the Flag
     jobs. These jobs run continuously, so execution time is irrelevant. You
     can specify on which days these jobs should run.

     To make AutoPurge work right for you, you need to decide first on which
     files you want AutoPurge to operate. With this information, you can
     create a job and let AutoPurge run this for you automatically. Once you
     defined the jobs, and AutoPurge is loaded, it will keep performing these
     actions without the need for any manual action. If enabled, AutoPurge
     will report to you of the actions it performed.


  Examples

     To make the defining of jobs easier, we'll take a look at some scenarios
     and their accompanying jobs definitions.


  Temporary files
     Many applications create temporary files. These files are only used
     while the applications run, and the information in these files is not
     useful for anything else. As soon as the application is ended, these
     files will be deleted. But these, deleted, files do take up space that
     could be used for more important files.

     These files are the perfect candidates to receive a `Purgeable' flag
     upon creation. Not all applications will do this themselves, but
     AutoPurge can do it for them. A lot of these files have the extension
     .TMP, or the filename starts with a ~.

















  AutoPurge Reference manual                                                5

     To accomplish this action, we can create the following job:

       [Flag1]                       # Temporary files
       FileSpec       *.TMP, ~*.*    # MS Word uses '~' files
       Dir            \              # All directories
       Recursive      Yes
       Volume         *



     The Path, Recursive and Volume options in this job could have been
     omitted. They have the same value as their default. For clarity, they
     were put in just the same.












































  AutoPurge Reference manual                                                6

  Old, deleted user files
     We want to keep the files that were created by users, even after they
     were deleted. If someone changes his mind, we can recover the lost file
     easily with the SALVAGE command. But the files that were deleted 4 weeks
     ago will probably not be so interesting anymore. To remove these files
     from the volume, we can create the following job:

       [Purge1]
       Time      22:00                         # After the backup
       DOW       Mon, Tue, Wed, Thu, Fri       # Each day
       FileSpec  *.*
       Dir       \USR                          # Clean user files
       Volume    DATA:
       Age       28                            # Older tha 4 weeks


  Updates of programs
     The applications that are stored on a file-server will be updated now
     and then. The old files will be removed, and the new ones installed. It
     is very nice to be able to recover the old files easily. The second time
     we do an update, 2 deleted copies of the files will exist. The oldest it
     not interesting anymore, but the most recent one we like to keep. We
     could create a job like this to do that:

       [Purge2]
       Time      22:00
       DOW       Saturday       # In the weekend, intensive job
       FileSpec  *.*
       Dir       \
       Volume    PROG:          # On the PROG volume
       Copies    1              # Do not keep more than one copy


















  AutoPurge Reference manual                                                7

  Initialization file


  How does it work?

     AutoPurge will be loaded at the file-server console, or through the
     AUTOEXEC.NCF file, and reads its jobs from the AUTOPURG.INI file. This
     file must reside in the directory where AUTOPURG.NLM is loaded from, or
     in the SYS:SYSTEM directory.

     The jobs are defined in the same way as in the MS-Windows INI-files.
     These files comply to the following set of rules:

     1. A file is divided into sections. Each section starts with a title,
        surrounded by square brackets, and is located at the start of a line.
     2. A section contains instructions, mostly in the following form:

        Keyword=value or Keyword    value

     3. Any line starting with a # or ; character will be interpreted as
        remarks. AutoPurge also allows remarks to be added as the last part
        of a line. These must also start with a # or a ;.
     4. Empty lines are discarded.

     You can create different sections, each with its own options. This file
     will be read at startup, or through a console command.

     If a problem is encountered while loading the initialization file, a
     message will be displayed on the console, explaining the nature of the
     problem. AutoPurge will then unload itself. This precaution is taken
     because of the nature of AutoPurge. A typing error might instruct
     AutoPurge to remove the wrong files. The initialization file can also be
     loaded in the APDEMO.NLM for testing purposes. This version has the
     operational code disabled but is further identical to AutoPurge.


  Sections

     AutoPurge recognizes five different sections. These are: [AutoPurge],
     [Logging], [Flagx], [Purgex] and [Deletex]. The Flag, Purge and Delete
     sections require a number at the end, now marked with an x. [Flag2] or
     [Delete01] are both examples of these sections. No spaces are allowed
     between the section name and the number.

     Each section covers a different aspect of AutoPurge. They can be divided
     into two types; the ones that control the jobs, and the ones that
     control aspects of the jobs in general.




  General

     The following sections, [AutoPurge] and [Logging], influence the
     behavior of AutoPurge as a whole, including the jobs that run.






  AutoPurge Reference manual                                                8

  [AutoPurge]
     This section contains general instructions like which parts to load, how
     much load can be put on the files-server, etc. The following
     instructions can be specified:


  SystemLoad
     This instruction lets you control the amount of load AutoPurge puts on
     the file-server. A higher load will result in a fast execution of the
     jobs, but may interrupt the normal operation of other processes that are
     running. A lower setting will hardly stress even the slowest servers.
     There are four different settings possible; `lazy', `low', `normal' and
     `heavy', where `lazy' hardly stresses the file-server. As a default,
     `normal' is used. The load of AutoPurge on the file-server depends on
     many different factors, like the amount of files, the speed of the file-
     server, other NLM's, etc. On slow or performance-critical file-servers,
     new jobs can best be tested with this instruction set to `lazy'. If the
     observed load is low, the setting can be increased to make the
     operations speedier. A setting that is too low, may result in long
     execution times.


  StatusScreen
     This option indicates whether the AutoPurge Status Screen, showing the
     actions, is available. The option accepts a `Yes' or `No'. Information
     on which jobs have are ready to be executed, the amount of files purged,
     etc. is shown on this screen. If the screen is enabled, [<Alt><Esc>] or
     [<Ctrl><Esc>] can be used to switch to it. The default for this option
     is `No'. (see Figure 1, AutoPurge Status Screen, page 33)


  RunOldJobs
     When you start AutoPurge, the specified time for a job can be passed
     already. By specifying `Yes' for this option, AutoPurge will execute
     them immediately. So if a job was scheduled for 15:00, but AutoPurge is
     started at 16:00, the job will be executed if `Yes' was specified,
     otherwise it will wait for its next scheduled day. This option only
     works on jobs that were scheduled for the same day that AutoPurge was
     started. The default for this option is `No'.


  UserName, License, Key
     These three options are always used in conjunction. They specify your
     license data. If these are not specified, or cannot be verified,
     AutoPurge will run in demo mode. All actions are reported, but not
     actually executed.


  Beep
     Normally, AutoPurge will generate a beep when writing messages on the
     system-console. If you don't like this behavior, you can disable it by
     specifying `No' for this option. Messages will still be generated, by
     the accompanying beep will be omitted.








  AutoPurge Reference manual                                                9

     Here is an example of an [AutoPurge] section:

       [AutoPurge]
       SystemLoad     Normal         # A not to high load
       StatusScreen   Yes            # Show the progress
       Beep           No

       # License information:
       UserName       NetWork_International
       License        AP.B1.12313245
       Key            7F50532376F96




  [logging]
     This section determines how actions are reported. There are three
     different modes:

     1. Messages can be placed in a log-file. The directory path for these
        log-files can be specified by the administrator.

     2. Messages can be sent to the administrator through e-mail. To use this
        option, the administrator must use Pegasus Mail. This is an
        excellent, free, e-mail program.

     3. Messages can be sent to a printer.

     A combination of these options is possible too. The actions of Flag-jobs
     will not be included in the log-options. Because of the speed that is
     needed when handling Flag-jobs, all actions must be kept to a minimum.
     Storing the performed actions would slow the creation of files too much.


  File
     This option, when set to `Yes', will tell AutoPurge to write all
     messages to the log-file. Specifying `No', or omitting the option will
     disable it. De default is `No'. The filename that AutoPurge uses to
     write the messages to looks like this:

       APyymmdd.jxx
       yymmdd        The date the job was executed.
       j             The jobtype; (P)urge, (D)elete or (F)lag.
       xx            The jobnumber.

       (see Log-files, page 35)


  Path
     When you enable the log-file option, by specifying `File = Yes', you can
     use this option to tell AutoPurge where to create the file. You can
     specify any directory on the file-server. AutoPurge expects this setting

  AutoPurge Reference manual                                               10

     to contain a NetWare directory, made out of a volume, a colon and a
     path, like SYS:ETC. By default, AutoPurge will store the log-files in
     the same directory as where the initialization file was read from.


  Overwrite
     With `Yes' or `No', you can indicate whether old log-files must be
     overwritten, or not. With `Yes', AutoPurge will remove the old log-file
     for a job before creating a new one, even if the filenames are
     different. The log-files will be flagged `Purgeable' before they are
     removed, thus preserving valuable space on disk. If this option is
     omitted, AutoPurge will overwrite the old log-files. Because AutoPurge
     focuses on keeping the server clean of unwanted files, the log-files are
     overwritten by default.


  pMail
     This option will enable the Pegasus Mail function. You can specify one,
     or more login-names of users, separated by commas or spaces, to send the
     log-file to. A specially formatted message will be written to the
     user(s) mailbox in the SYS:MAIL directory.


  Queue
     To print a log-file, the name of a queue on the file-server can be
     specified here. The queue must reside on the server that AutoPurge is
     loaded on. A queue on a different server is not supported, but that
     limitation can be easily overcome by creating a local queue, serviced by
     a remote print-server.


  Screen
     AutoPurge can create the AutoPurge Logging Screen, on which all log-
     messages can be shown. You can specify `Yes' to enable, and `No' to
     disable this. Default is `No'.


  Level
     With this option, you can change the amount of detail that AutoPurge
     reports in its log-files. There are four different levels:

      1. Summary     This gives a short report with the
                     statistics and totals, not the individual
                     actions. This is also the default.
      2. Actions     This will do the previous, plus the files
                     acted on.
      3. Full        This will add the date and file-size of the
                     files.
      4. Debug       This will show all the files, even the ones
                     that didn't comply to the selection
                     criteria.

     Below you will find an example of a [Logging] section. This section
     specifies that the log-messages should be sent to the email-account of
     Mike, written to the file SYS:ETC\AUTOPURG.LOG and printed through the
     LASER4 queue. The log-files will be overwritten and no screen will be
     created. Al actions will be included in the log.




  AutoPurge Reference manual                                               11

       [Logging]
       pmail          mike           # Send the log-file to Mike
       queue          laser4
       file           yes
       path           sys:etc\
       overwrite      yes
       level          actions        # Show everything that happens
       screen         no




  Jobs

     The [Flagx], [Purgex] and [Deletex] sections have some options that have
     an identical, or at least equivalent, meaning. The following options can
     be found in all three sections:


  Dow
     This is the first date option. It means Day Of Week, and indicates that
     you want the job to be execute on certain days in the week. You can
     specify either a number to indicate the days (Sunday is 0 and Saturday
     is 6), or the name of the day (Sunday, Monday, Tuesday, Wednesday,
     Thursday, Friday, Saturday), or the first three letters of the name.
     More than one day can be used, separated by commas or spaces.


  Day
     This is the second date option. It specifies that you want the job to be
     executed on one, or more, specific days in a month. A number between 1
     and 31 must be entered.


  Wdom
     This is the third date option. It means WeekDay Of Month, and indicates
     that the job must be executed on the first day in a month. Specifying
     `Monday' will make AutoPurge handle the job on every first Monday of a
     month. The same rules apply as with specifying `Dow'

     Each job can only have one of the date options. Different jobs can have
     different date options though.


  Month
     With this option you can set the months in which the job should be
     handled. You can enter any, or more of: January, February, March, April,
     May, June, July, August, September, October, November, December.
     Shortening these to three letters, or using the number 1 to 12 (January
     is 1, December is 12) is allowed.




  AutoPurge Reference manual                                               12

  Time
     This option is only available with Purge and Delete jobs. Flag jobs are
     handled throughout the day.

     With the Purge and Delete jobs, that can purge or delete a lot of files,
     it is important to choose a good time to run the job at. This can be
     done at night, for instance, when there are no users that could be
     influenced.

     The time must be specified in the 24 hour format (hh:mm).

     If the time option is omitted in a job, that job will become a manual
     job. These jobs are not handled automatically, but must be started from
     the file-server console, by using AUTOPURGE EXECUTE <Job>.


  FileSpec
     Here you can enter the filename specification. You can only enter the
     filename part of the files. The rest of the path and volume must be
     entered separately. The normal DOS wildcard characters (`*' and `?') can
     be used. You can enter more than one specification in one job, which
     must be separated by comma's or spaces. The default is `*.*', so every
     file is selected.


  Volume
     You can enter the volume you want to be handled for this job. Again,
     more than one volume can be used for a job. Entering a `*' indicates
     that you want all volumes to be handled. This is the default. No other
     wildcards are allowed.


  Dir
     You can enter here one, or more, directories that must be handled for
     this job. The default is the root directory, or `\'.



  Recursive
     This option can be set to `Yes' indicating that any sub-directory in the
     one specified will be handled as well, or to `No' to handle only the
     specified. The default is `No'.


  Age
     You can use this option to select aged files. With Delete-jobs, you can
     select files that have been created a specified amount of days ago. With
     Purge-jobs, you can select files that have been deleted earlier than the
     specified amount of days. This option expects its setting to be entered
     in days.

     With Flag-jobs, this option is not available. Flag-jobs work just before
     the creation of files, which then, theoretically, have no age.


  LessThan
     This option is used to select files that are smaller than the amount of
     bytes specified.

     Flag-jobs don't support this option.

  AutoPurge Reference manual                                               13

  MoreThan
     This option is used to select files that are larger than the amount of
     bytes specified. It can be used in conjunction with the `LessThan'
     option, to select files who's sizes are within a range.

     Flag-jobs don't support this option.



  [Flag]
     Flag arranges the definitive removal of a file, at the moment it is
     deleted. It does so by giving the file a `Purgeable' flag the moment it
     is created. NetWare will remove this file completely when deleted. The
     file will not be recoverable with SALVAGE, for it never existed as a
     deleted file. Until the file is deleted, however, you can always remove
     the flag manually.

     This method is very useful on files with a temporary character. A good
     example are work-files (files ending on .TMP for instance) and Queue-
     files that are created for printjobs. Both these types of files can be
     created and removed in a rapid manner, while they don't contain any
     valuable information, therefore being excellent candidates for Flag-
     jobs.

     The Flag section can contain options for the file-specification (what
     should be flagged), and the scheduling information (when should the
     flagging occur). These options are listed above. The extra options that
     are supported with Purge- and Delete-jobs, are not available for Flag-
     jobs for performance reasons.

     Below you can find an example of a Flag-job. The example shows how to
     Flag all the files that are created on workdays, so they will be purged
     automatically.

       [Flag1]
       filespec       *.TMP
       dow            Mon, Tue, Wed, Thu, Fri


  [Purge]
     Purge jobs react a bit milder when it comes to definitively removing
     files than Flag-jobs. With Flag-jobs, a file would be purged instantly,
     with Purge-jobs you have to specify a time when the files need to be
     searched. Files will exist in the `deleted' state, but will be removed
     from the harddisk periodically. The operation can be thought of as
     manually, periodically, starting the PURGE.EXE, but with better file
     selecting options.

     Where Flag-jobs are best used for files of a temporary nature, Purge-
     jobs can be useful for any type of file. Every deleted file will lose
     its significance after time. The time at which this can be done can be
     different for different files though. Files that are not changed for
     days can still have meaning after a long time, but frequently changing
     files can loose their information quickly. For each type of file, a
     special section, or job, can be created.



  AutoPurge Reference manual                                               14

  Copies
     With this option you can set the amount of deleted copies of a file
     should be kept. Mostly one copy would be sufficient. This option will
     add a some processing to the operation. These jobs will therefore
     execute relatively slowly.


  Owner
     Here you can specify the login-name of the user who's files you want to
     be purged. You can specify more than one user, but wildcards are not
     supported.


  OwnerGroup
     This option will enable you to specify a group of file-owners. Files
     that are owned by these users, will be purged. More than one group can
     be specified, but wildcards are not allowed.


  Remover
     With this option, you can select files that have been deleted by a
     specific user. If you never want to save the deleted files of the
     SUPERVISOR, you can enter his login-name here and AutoPurge will
     automatically cleanup after him. The same rules apply as with `Owner'.


  RemoverGroup
     Here you can enter a group of removers, so you have a convenient method
     of specifying who does not need to keep his deleted files.


  DeletedDir
     This option accepts either `Yes', or `No'. When the option is set to
     `Yes', AutoPurge will also scan the deleted files for which the original
     directory does no longer exist. The default is `No'.


     Below you will find an example of a Purge section. In this example, we
     will purge all the files with the extension .BK!, that are have been
     deleted more that 3 days ago, by either the SUPERVISOR, or SUPERUSER.

       [Purge1]
       dow            Friday
       time           23:55
       filespec       *.BK!
       age            3
       remover        SUPERVISOR, SUPERUSER



  [Delete]
     Delete goes even further than Flag or Purge. The latter two are used to
     remove files that were already deleted. But Delete-jobs will delete, and
     optionally purge, files for you. This enables you to automate some of
     the regular maintenance of your file-server. One option could be to

  AutoPurge Reference manual                                               15

     remove backup-files, created by applications. These files are extremely
     useful on short term, the files can also clog up your file-server if
     they are kept indefinitely. A well thought out Delete-job can handle
     this for you automatically. The Delete-jobs support some extra options:


  Purge
     If a Delete-job has removed a file from the file-server, it can still be
     recovered with SALVAGE. It can be very useful to purge these files
     immediately, which can be done by setting this option to `Yes', while
     `No' disables this function. AutoPurge will not actually purge the file,
     but it will assign it the `Purgeable' flag prior to deleting it. This
     will further reduce the space occupied in the NetWare tables. By
     default, files are not flagged `Purgeable'.


  Owner
     Here you can specify the login-name of the user who's files you want to
     be deleted. You can specify more than one user, but wildcards are not
     supported.


  OwnerGroup
     This option will enable you to specify a group of file-owners. Files
     that are owned by these users, will be deleted. More than one group can
     be specified, but wildcards are not allowed.


  Wipe
     You can assign `Yes' or `No' to this option. `Yes' will enable a special
     security option in AutoPurge. Before the file is removed, AutoPurge will
     overwrite the contents with a random pattern. Normally, when a file is
     deleted and purged, its contents will still reside on the physical
     harddisk. An expert, or hacker might still be able to retrieve that
     information. When this option is enabled, the information in the file
     cannot be retrieved that easily, which, for security issues, can be
     desirable. The default is `No', for this option amount for a slower
     execution of the job.


     Below is an example of a Delete-job. It will remove all the backup-files
     with the extension .BAK and .BK! during workdays, and will purge the
     files immediately:

       [Delete1]
       dow            Mon, Tue, Wed, Thu, Fri
       time           23:55
       filespec       *.BAK, *.BK!
       purge          yes








  AutoPurge Reference manual                                               16

  System requirements

     To use AutoPurge, a file-server running NetWare 3.11, 3.12 or 4.1x is
     required. On NetWare 3.1x, a CLIB.NLM is required of version 3.12 or
     higher. To use the Flag-jobs, a version of 3.12G or higher is required.


  Resource usage

     AutoPurge will use 64Kb of memory, plus about 4 times the size of the
     initialization file for its internal buffers. The logging options can
     add another 16Kb.
















































  AutoPurge Reference manual                                               17

  Starting and Stopping

     AutoPurge can be started by entering the command:

       LOAD AUTOPURG

     on the file-server console. AutoPurge can be stopped by entering the
     command:

       UNLOAD AUTOPURGE or AUTOPURGE EXIT

     on the file-server console.


  Temporarily suspending

     If you want to stop AutoPurge from handling the jobs temporarily, you
     can enter the command AUTOPURGE SLEEP on the file-server console.
     AutoPurge will free all the memory that was reserved for the jobs, and
     will enter a stand-by mode. AutoPurge will remain in this mode until
     AUTOPURGE WAKEUP is entered.







































  AutoPurge Reference manual                                               18

  Commands

     When AutoPurge is loaded, some commands will become available on the
     file-server. These commands must be entered on the system-console and
     can be used to make alterations to, or get status information on, the
     operation of AutoPurge. All commands begin with AUTOPURGE and a space.
     With the demo-version of AutoPurge, APDEMO.NLM the commands begin with
     APDEMO. The following commands are supported:


  Command list

     Command:                Description:

     AUTOPURGE LIST          Creates a screen on the file-server,
                             showing all the loaded jobs. It will
                             also show whether a job has been
                             handled or not. (see Figure 2,
                             AutoPurge List Screen, page 33)

     AUTOPURGE HELP          Shows all the commands that AutoPurge
                             supports. (see Figure 3, AutoPurge Help
                             Screen, page 34)

     AUTOPURGE STATUS ON     Switches the AutoPurge Status Screen
                             on.

     AUTOPURGE STATUS OFF    Switches the AutoPurge Status Screen
                             off.

     AUTOPURGE STATUS        Shows the status of the AutoPurge
                             Status Screen.

     AUTOPURGE DISPLAY ON    Switches the AutoPurge Logging Screen
                             on.

     AUTOPURGE DISPLAY OFF   Switches the AutoPurge Logging Screen
                             off.

     AUTOPURGE DISPLAY       Shows the status of the AutoPurge
                             Logging Screen.

     AUTOPURGE DISABLE <job> Disables a job temporarily. The job
                             must be specified as Flag1, Purge5 or
                             Delete2. For short, the first letter of
                             the job-type and its number can be
                             used, like F1, P5 and D2.

                             The jobnumber can be found on the
                             AutoPurge Status Screen, or by entering
                             AUTOPURGE LIST on the file-server
                             console. (see Figure 2, AutoPurge List
                             Screen, page 33)

     AUTOPURGE ENABLE <Job>  Enables a job that was temporarily
                             disabled.




  AutoPurge Reference manual                                               19

     Command:                Description:

     AUTOPURGE SKIP <Job>    Skips a job once. It must be a job that
                             was scheduled to be executed this day.
                             After that, the job will be scheduled
                             as normal.

     AUTOPURGE EXECUTE <Job> Executes a job immediately. After the
                             job has completed, it will not run
                             again on the same day, if that was
                             scheduled. The next day, the job will
                             be scheduled as normal.

                             This command must be used to execute
                             manual jobs. Manual jobs do not have a
                             time-specification and are not handled
                             automatically.

     AUTOPURGE REREAD        Makes AutoPurge to read the
                             initialization file again. Prior to
                             reading the file, AutoPurge will
                             release all the loaded jobs, and create
                             a new table of jobs. The new jobs will
                             become effective immediately. It will
                             enable you to make changes to AutoPurge
                             jobs, without the need to reload the
                             NLM.

     AUTOPURGE SLEEP         Pauses all processing of AutoPurge and
                             all jobs are removed from memory.

     AUTOPURGE WAKEUP        Re-enables the operation of AutoPurge
                             after it has been paused with the SLEEP
                             command. The command will reread the
                             initialization file.

     AUTOPURGE EXIT          Stops all operations and unload
                             AutoPurge.


     There are several commands that can influence the handling of a job.
     These commands are DISABLE, SKIP, REREAD, SLEEP and EXIT. When one of
     these commands is issued, and AutoPurge is handling a job, a screen will
     be shown with information on the current job. From this screen, you can
     disable the command, stop the current job, or wait for the job to end,
     after which the issued command will be executed. (see Figure 4,
     AutoPurge Stop Screen, page 34)

     When the file-server is DOWNed, and AutoPurge is handling a job, a
     similar procedure will be started. If no action is taken, the file-
     server will continue going DOWN after AutoPurge has finished the current
     job. No other jobs will be started after the current, even if they were
     scheduled for the same time.








  AutoPurge Reference manual                                               20

  Messages

     AutoPurge can display several messages on the file-server console. These
     messages can inform you on the operation of AutoPurge, or on detected
     errors. The detail-setting of the Logging section has no influence on
     these messages. You can suppress the beep that normally accompanies
     these messages. This is done by entering `Beep = No' in the [AutoPurge]
     section.


  Message list

     The messages are listed in alphabetical order.


  Another day specification was used previously
     This message is generated when there is more than one day specification
     within one job. A job can only be started on any day in the week, a
     specific day in the month, or the first weekday in a month. Not on a
     combination of these. It is a message that is generated when the
     initialization file is read and indicates a problem with the contents of
     the file.


  Authentication could not be verified. Running in demo mode.
     AutoPurge has two modes of operation, the demo mode which only shows the
     actions but does not actually execute them, and the normal operation. To
     enable the normal operation, AutoPurge must be able to verify the
     UserName, License and Key settings. If it does not find these settings,
     or if the key does not correspond to the UserName or license, this
     message will indicate that no alterations are made to the file-system.
     You can correct the settings, and use the REREAD command to load it
     again.


  Could not open a local semaphore!
     An elementary part of AutoPurge could not be initialized. Contact
     technical support (see Technical support, page 32).


  Couldn't install command parser!
     The routine which handles the commands from the file-server console
     could not be initialized properly. This most often indicates a lack of
     memory.


  CRC error on file AUTOPURG.NLM.
     While loading the program file of AutoPurge (AUTOPURG.NLM), an
     alteration to the program was detected. This will invalidate the
     program, and the loading process is aborted. Please check the program
     file and replace it if it differs from the original.


  Error accessing AUTOPURG.NLM for CRC check.
     The program file of AutoPurge could not be opened for validation.
     Because the internal validation was not possible, AutoPurge will unload
     itself immediately. In most cases, this is caused by another user who
     has opened the AUTOPURG.NLM file.


  AutoPurge Reference manual                                               21

  Error allocating resource tag
     This error occurs when AutoPurge cannot initialize its command handling
     routine. Mostly this is caused by a lack of available memory. AutoPurge
     will continue its operation, but commands cannot be entered on the file-
     server console.


  Error closing job in queue yyy (xx)
     This message indicates that something went wrong when closing a print-
     job. Check the status of the queue with PCONSOLE. It can happen that the
     last print-job of AutoPurge still has the status `Adding'. In that case,
     remove the print-job by pressing the <Del> key.


  Error closing log-file AP........... (xx)
     When this message is generated, the log-file AutoPurge was using could
     not be closed. This is mostly due to an internal error. The xx indicate
     the error code. This is a DOS error code (see DOS error codes, page 30).


  Error closing old pMail-file AUTOPURG.BAK (xx)
     When this message is generated, the old email-file AutoPurge was using
     could not be closed. This is mostly due to an internal error. The xx
     indicate the error code. This is a DOS error code (see DOS error codes,
     page 30).


  Error closing pMail-file AUTOPURG.CNM (xx)
     When this message is generated, the email-file AutoPurge was using could
     not be closed. This is mostly due to an internal error. The xx indicate
     the error code. This is a DOS error code (see DOS error codes, page 30).


  Error creating help screen
     This message indicates that no extra screen could be created on the
     file-server to show the commands. This can be a lack of available memory
     in the file-server.


  Error creating job in queue yyy (xx)
     This indicates that AutoPurge could not create a job in the queue to
     print to. Check the status of the queue with PCONSOLE. A lack of
     diskspace could cause the same message.


  Error creating logging screen
     This message indicates that no extra screen could be created on the
     file-server to show the commands. This can be a lack of available memory
     in the file-server.


  Error creating status screen
     This message indicates that no extra screen could be created on the
     file-server to show the commands. This can be a lack of available memory
     in the file-server.






  AutoPurge Reference manual                                               22

  Error destroying logging screen! xx
     This is an internal error of NetWare. If this message is displayed,
     please note down the number (xx) and contact technical support (see
     Technical support, page 32).


  Error destroying status screen! xx
     This is an internal error of NetWare. If this message is displayed,
     please note down the number (xx) and contact technical support (see
     Technical support, page 32).


  Error in queue xxx
     When this message is generated, something went wrong while sending
     logging data to the print-queue. If this happens, check the print-queue
     with PCONSOLE. If you can send data to this queue from a PC, but the
     message keeps popping up, note down the error-number, and contact
     technical support (see Technical support, page 32).


  Error initializing (AUTOPURG.INI does not exist)
     The initialization file (AUTOPURG.INI) could not be opened. This file
     must reside in the same directory as the AUTOPURG.NLM, or in the
     SYS:SYSTEM directory. When the initialization file cannot be found,
     AutoPurge will enter the stand-by mode. This is the same mode as when
     AUTOPURGE SLEEP was entered on the file-server console. After the file
     has been stored in the correct directory, AutoPurge can reload the file
     with the WAKEUP command.


  Error initializing (AUTOPURG.INI is too large)
     The initialization file is larger than the available memory in the file-
     server. The operation of the file-server will already be severely
     hampered.


  Error initializing (nn)
     A general error occurred while reading the initialization file. Note
     down the number that is displayed, and contact technical support (see
     Technical support, page 32).


  Error initializing (Read error occurred while reading AUTOPURG.INI)
     An error occurred while reading the initialization file. Check if the
     file can be accessed from a PC, and see if there are no strange
     characters in it. Recreate the file if necessary.


  Error initializing (Syntax Error in AUTOPURG.INI)
     This message indicates that a serious error was found in the
     initialization file. This could be a `half' section header ([Purge1
     without the closing `]'). Correct the syntax, and reread the file.


  Error initializing (Unexpected End-Of-File detected in AUTOPURG.INI)
     AutoPurge has reached the end of the initialization file, while it
     expected more data to be present. This can happen when a option is
     specified, but its value is omitted.



  AutoPurge Reference manual                                               23

  Error opening log-file AP.......... (xx)
     This message indicates that something went wrong while creating the log-
     file. This can happen when a file with the same name already exists, and
     is flagged read-only. AutoPurge will continue working, except for the
     logging option. The (xx) is the error-code. This is a DOS error-code
     (see DOS error codes, page 30).


  Error opening old pMail-file AUTOPURG.BAK (xx)
     Something went wrong with a file that was necessary for the email
     function. When AutoPurge needs to add data to the email, the old email
     file will be renamed from AUTOPURG.CNM to AUTOPURG.BAK. It will then
     read this file and create a new one with the added log information. If
     the .BAK file cannot be opened, probably because the file could not be
     renamed, this message will be generated. The (xx) is the error-code.
     This is a DOS error-code (see DOS error codes, page 30).


  Error opening pMail-file AUTOPURG.CNM (xx)
     A new email file could not be created. This can happen when a file with
     the same name already exists, and is flagged read-only. The (xx) is the
     error-code. This is a DOS error-code (see DOS error codes, page 30).


  Error reading to file (xx)
     This message indicates that something went wrong while reading a file.
     This is most likely an internal error. The (xx) is the error-code. This
     is a DOS error-code (see DOS error codes, page 30).


  Error writing to file (xx)
     This message indicates that something went wrong while writing to a
     file. This is most likely an internal error. The (xx) is the error-code.
     This is a DOS error-code (see DOS error codes, page 30).


  Finished Delete job 1 at Monday June 19 1995, 22:31:05
     This message is generated when a job is completed.


  FLAG jobs cannot be executed
     This message appears when the command AUTOPURGE EXECUTE FLAGx is entered
     on the file-server console. Flag job run continuously, and cannot be
     executed explicitly.


  FLAG jobs cannot be skipped
     This message appears when the command AUTOPURGE SKIP FLAGx is entered on
     the file-server console. Flag job run continuously, and cannot be
     skipped. To prevent AutoPurge from handling a Flag-job, AUTOPURGE
     DISABLE FLAGx can be used instead.


  Flagging is not possible, FileSystem hooks are not available. This is
  probably due to an old version of CLIB.NLM
     The message indicates that one of the support modules of NetWare is too
     old. The flagging option requires copy of CLIB.NLM version 3.12G or
     higher. When this message appears, the Flagging option is not available.
     Purge- and Delete-jobs will be handled as normally. The newest version


  AutoPurge Reference manual                                               24

     of CLIB.NLM can be obtained from Novell's NetWire (CompuServe) or
     ftp.novell.com (Internet).


  Hook Create failed, Hook Create & Open failed
     This message indicates that an error has occurred while initializing the
     Flag-jobs. When this message appears, the Flagging option is not
     available. Purge- and Delete-jobs will be handled as normally. This
     error can occur when another NLM looks at the creation of files, but
     does not use NetWare's standard tools. These are mostly virus-checkers
     and license-usage-auditors.


  Illegal day: xxx (line nn)
     This message appears when the wrong value is assigned to a date option.
     This can be a spelling error with the DOW and WDOM options, or a value
     that is out of range with the DAY option.


  Illegal Group for RemoverGroup: xxx (line nn)
     When this message appears, a groupname was specified in the
     initialization file, but this group does not exist on this server.
     AutoPurge expects the groups to exist when it is loaded. This can occur
     with NetWare 4.x servers when bindery-emulation is not enabled, or is
     not set to the correct Organizational Unit.

     RemoverGroup in the above mentioned message can be replaced with
     OwnerGroup.


  Illegal Logging level: xxx (line nn)
     This message indicates that a mistake was made while specifying the
     logging-level option in the initialization file. The value can be a
     number between 0 and 4, or can be one of the following words: Minimal,
     Summary, Actions, Full and Debug. A frequent mistake is `Logging = Yes'.


  Illegal month: xxx (line nn)
     This message indicates that the month value of a job in the
     initialization file is invalid. In most cases, this occurs when a month
     name is misspelled.


  Illegal numeric value for YYY: xxx (line nn)
     This message indicates that an option in the initialization file, which
     expects a numerical value is assigned something else. For example `Age =
     No', which is illegal.


  Illegal Path for log file
     This message will be generated if a directory for the log-file is
     specified in the initialization file, which does not exist. AutoPurge
     does not create directories itself, so the defined directories must
     exist before AutoPurge is loaded.


  Illegal PrintQueue for Queue: xxx (line nn)
     When this message appears, a print-queue was specified in the
     initialization file, but this print-queue does not exist on this server.
     AutoPurge expects the print-queue to exist when it is loaded. This can

  AutoPurge Reference manual                                               25

     occur with NetWare 4.x servers when bindery-emulation is not enabled, or
     is not set to the correct Organizational Unit.


  Illegal SystemLoad level: xxx (line nn)
     This message indicates that a mistake was made while specifying the
     SystemLoad option in the initialization file. The value can be a number
     between 0 and 3, or can be one of the following words: Lazy, Low, Normal
     and Heavy. A frequent mistake is `SystemLoad = High'.


  Illegal time value: hh:mm (line nn)
     This message is generated if the value assigned to the Time option is
     wrong. AutoPurge expects this value to be in hh:mm format, with a 24
     hour clock. Omitting the colon, or adding a.m. or p.m., will result in
     this message.


  Illegal UserID for Remover: xxx (line nn)
     When this message appears, a loginname was specified in the
     initialization file, but that loginname does not exist on this server.
     AutoPurge expects the users to exist when it is loaded. This can occur
     with NetWare 4.x servers when bindery-emulation is not enabled, or is
     not set to the correct Organizational Unit.

     Remover in the above mentioned message can be replaced with Owner.


  Illegal value for YYY: xxx (line nn)
     This message is generated if the wrong value is assigned to an option.
     This could be assigning a numeric value when a Yes/No is expected.


  Insufficient memory to run CRC check on file AUTOPURG.NLM.
     There is not enough free memory available for AutoPurge to do a self-
     validation. AutoPurge will unload itself.


  Job [Purge1] is a manual job
     This message is generated if you try to disable, or skip a manual job.
     Manual jobs are not handled automatically, and not starting them is the
     same as skipping or disabling.


  Job [Purge1] is active
     This message is generated if you want to manually execute a job that is
     handled at the time.


  Job [Purge1] is already disabled
     This message indicates that the job you tried to disable was already
     disabled.


  Job [Purge1] is already handled
     This message indicates that the job you tried to skip was already
     handled. A job that has been handled cannot be skipped until the next
     day it is scheduled for.



  AutoPurge Reference manual                                               26

  Job [Purge1] is already marked for execution
     This message is generated when you use the EXECUTE command on a job that
     is scheduled to be executed next. Jobs are handled one by one, so if you
     manually start a job, it will wait for any other job that is handled at
     that time.


  Job [Purge1] is already waiting
     When you enter the SKIP command on a job that is waiting for the next
     scheduled day, this message will appear. It can be that you already
     entered the SKIP command for this job, or the job was scheduled to be
     executed before AutoPurge was loaded.


  Job [Purge1] is disabled
     When you enter the SKIP command on a job that is disabled, this message
     will appear. A disabled job will not be handled, and can therefore not
     be skipped.


  Job [Purge1] is not disabled
     This messages is displayed if you try to enable a job that was not
     disabled. The job is waiting for its next scheduled execution time. If
     you want the job to be handled straight away, you can use the EXECUTE
     command.


  Job number must be specified or Job type must be specified
     This message indicates that you entered a command for a job without
     specifying the job number or job-type. The command can be any of the
     following: ENABLE, DISABLE, SKIP or EXECUTE. These commands, entered on
     the file-server console, need the job-type and job-number to be
     specified, for instance: AUTOPURGE EXECUTE PURGE1.


  Jobs are being processed
     This message appears if a request is done to stop a job (AUTOPURGE EXIT,
     REREAD or SLEEP), or when AutoPurge is unloaded while a job is executed.
     A separate screen will show the details on the job, and offer some
     options of handling the stopping of the job.


  License AP.01.23456789 is already in use on server xxx
     This message is generated when AutoPurge is loaded on more than one
     server with the same license number. This can occur when a
     initialization file is copied from one file-server to another. AutoPurge
     requires each file-server to have its own license number. AutoPurge will
     unload itself on the server it was last loaded.


  Logging display is switched on/off
     This message informs you on the status of the Logging Screen.


  No rights in queue xxx
     This message informs you that AutoPurge has not enough rights to use a
     print-queue. This is most likely caused by an error in the queue. You
     can check this by printing something from a PC to this queue. PCONSOLE
     can be used to correct errors.


  AutoPurge Reference manual                                               27

  On server xxx is a different version active
     This message is generated when AutoPurge detects that two different
     versions of AutoPurge are running on the same network. This is an
     informational message and does not influence the operation of either
     version.


  Out of memory
     During the initialization of the jobs, a lack of available memory was
     detected. The initialization is stopped.


  (Prematurely) Finished Delete job 1 at Monday June 19 1995, 22:31:05
     This messages will be generated when a job is stopped before it normally
     ended its operation. The message will only be generated if the job was
     stopped, not waiting for it to finish. The stopping or unloading of
     AutoPurge, while it is busy with a job will generate this message.


  Queue xxx is full
     This message is generated when AutoPurge tries to print to a queue,
     while the queue is full. This can occur when the volume containing the
     queue is full, or there are to many jobs in the queue. The status of the
     queue can be checked with PCONSOLE.


  Queue xxx is not active
     This message indicates that AutoPurge cannot print to a queue because
     the queue is not active. You can use PCONSOLE to correct this.


  Screen logging is already switched off
     You typed `AUTOPURGE DISPLAY OFF' at the file-server console while the
     Logging Screen was not enabled.


  Screen logging is already switched on
     You typed `AUTOPURGE DISPLAY ON' at the file-server console while the
     Logging Screen was already enabled. You can use the <Alt><Esc> key
     combination to go to the screen.


  Screen logging switched off
     This message informs you that the Logging Screen has been removed.


  Screen logging switched on
     This message informs you that the Logging Screen has been created.


  Starting Purge job 2 at Monday June 19 1995, 22:30:00
     This message is displayed at the start of the execution of a job.


  Status display is already switched off
     You typed `AUTOPURGE STATUS OFF' at the file-server console while the
     Status Screen was not enabled.




  AutoPurge Reference manual                                               28

  Status display is already switched on
     You typed `AUTOPURGE STATUS ON' at the file-server console while the
     Status Screen was already enabled. You can use the <Alt><Esc> key
     combination to go to the screen.


  Status display is switched on/off
     This message informs you on the status of the Status Screen.


  Status display switched off
     This message informs you that the Status Screen has been removed.


  Status display switched on
     This message informs you that the Status Screen has been created.


  Stopping Purge job 1, moment please.
     This message is displayed when AutoPurge received the request to stop a
     job. Stopping a job must be done gradually, so operations of the file-
     server are not influenced in any way. To indicate that AutoPurge is
     doing this, this message is displayed.


  The key does not correspond to the UserName and license specified. Please
  correct!
     This message indicates that AutoPurge could not verify the license
     number and key. This is mostly due to a misspelling of the key. Check
     the values with the originals.


  Too large value for xxx (line nn)
     This message is displayed when a value for an option is supplied that is
     to large for the option. All options like FileSpec, Path, etc. have a
     maximum length. A Path value can contain no more than 255 characters,
     FileSpec 12 (8 for the name, a dot, 3 for the extension). If a value is
     specified that is to long, the job is not loaded. AutoPurge does not yet
     support long filenames.


  Unable to open log file SYS:AP960616.D01 (xx)
     This message indicates that a log-file could not be opened. This can
     caused by someone having opened the file. The (xx) is the error-code.
     This is a DOS error-code (see DOS error codes, page 30).


  Unable to start AUTOPURG. A copy of APDEMO is running.
     AutoPurge cannot run together with APDEMO on the same server. To start
     AutoPurge, APDEMO must be unloaded.


  Unexpected EOF in AUTOPURG.INI
     This message indicates that AutoPurge reached the end of the
     initialization file, while it was not expecting this. This can happen
     when an option is specified, but no value was assigned to it, for
     instance `FileSpec ='.




  AutoPurge Reference manual                                               29

  Unknown item for Delete: xxx (line nn)
     This message is displayed if an option is specified for a Delete-job
     that is not supported by AutoPurge. Misspellings are the primary cause
     for these problems.


  Unknown item for Flag: xxx (line nn)
     This message is displayed if an option is specified for a Flag-job that
     is not supported by AutoPurge. Misspellings are the primary cause for
     these problems.


  Unknown item for Purge: xxx (line nn)
     This message is displayed if an option is specified for a Purge-job that
     is not supported by AutoPurge. Misspellings are the primary cause for
     these problems.


  Unknown item in AutoPurge (line nn)
     This message is displayed if an option is specified in the [AutoPurge]
     section, that is not supported by AutoPurge. Misspellings are the
     primary cause for these problems.


  Unknown item in logging (line nn)
     This message is displayed if an option is specified in the [Logging]
     section, that is not supported by AutoPurge. Misspellings are the
     primary cause for these problems.


  Unknown item: xxx (line nn)
     This message is displayed if an option is specified if an option is
     found that is not supported by AutoPurge. Misspellings are the primary
     cause for these problems.


  Warning, unable to ascertain address for ........
     This message indicates that another AutoPurge was found on the network,
     but its address could not be retrieved. This is an informal message
     only, it will not influence the operations.


  Warning, unable to open IPX socket
     This message indicates that AutoPurge could not communicate with other
     servers running AutoPurge. This is caused by to many processes on the
     file-server that need to send or receive information from the network.
     This is an informal message only, it will not influence the operations.

  DOS error codes
     The most occurring error-codes are:

     2 - File not found
     3 - Path not found
     4 - Too many files open
     5 - Access denied
     8 - Insufficient memory





  AutoPurge Reference manual                                               30

  Troubleshooting


  Running into problems

     There are three different categories of problems with AutoPurge:
     problems before AutoPurge has started, problems while starting and
     problems while executing jobs. Some potential problems and their
     solutions for these categories follow below:


  Problems before AutoPurge is started
     - I type LOAD AUTOPURG, but all I get is the message `Unable to find
       load file AUTOPURG.NLM'.

       With this message, NetWare informs you that it cannot find the
       AutoPurge NLM file. By default, NetWare will search the SYS:SYSTEM
       directory for NLM's. If you copy AUTOPURG.NLM to this directory,
       NetWare will always be able to find it. If you prefer to keep
       AutoPurge in another directory, you can still load AutoPurge by
       supplying the full path name. For instance:

       LOAD SYS:SYSTEM\AUTOPURG\AUTOPURG.NLM

       Another option is to expand the NetWare search path. This can be done
       with the SEARCH ADD command, like:

       SEARCH ADD SYS:SYSTEM\AUTOPURG

       After this command, you can type `LOAD AUTOPURG', and NetWare will
       first search in SYS:SYSTEM, followed by SYS:SYSTEM\AUTOPURG.


  Problems while starting
     - I get a message that the initialization file cannot be found.

       AutoPurge will first look in the directory from which it was loaded
       for the initialization file. If it cannot find it there, it will look
       in the SYS:SYSTEM directory. If it still cannot be found, this message
       will be displayed.
       Check if the file is in the right directory, and correct this if
       necessary.

     - I receive a message that there is an error in AUTOPURG.INI

       During initialization, AutoPurge checks the AUTOPURG.INI for syntax
       errors. AutoPurge will always inform you of the offending line. Check
       the line and correct any misspellings. After the error has been
       corrected, it can be reloaded by entering AUTOPURGE REREAD on the
       file-server console. You can always use APDEMO.NLM to check new
       initialization files without the jobs actually changing the file-
       system.

     - I get a message that there is not enough memory.

       The best solution to these kind of problems is to add more memory.
       When AutoPurge reports of a lack of memory, the available memory to
       other processes is also limited. This will show dramatically in the
       overall performance of the file-server. If it is not possible to

  AutoPurge Reference manual                                               31

       increase the amount of memory, another NLM may be unloaded to
       accommodate AutoPurge.


  Problems while executing jobs
     - Every time I look at the `AutoPurge Status Screen' the `purged today'
       and `deleted today' show only 0.

       AutoPurge starts these counters at the start of each day. If you look
       at these values before any jobs have been executed, these will always
       show 0.


  Technical support

     Technical support is offered through CompuServe and the Internet. To be
     able to handle your request well, it is recommended to send all the
     relevant information. Below are some that can be helpful when searching
     for solutions:

     - Version numbers of AutoPurge and NetWare

     - The initialization file (AUTOPURG.INI)

     - Other loaded NLM's, and their version numbers

     - Copies of the STARTUP.NCF and AUTOEXEC.NCF files, after you removed
       any confidential information like passwords etc.

     Technical support can be reached at:

     Homepage:        http://www.euronet.nl/users/rovabu/wvw

     E-mail  :        wvw@isolution.nl



























  AutoPurge Reference manual                                               32

  APPENDIX A

  Screens

Ŀ
 System Load: Normal                               Logging to: file (Actions) 
                 NET_INTERNATIONAL (AP.01.12345678)on NW410                   

First to be serviced:[Purge3]ͻ
 Time = 21:10 ; Dow = Mon, Tue, Wed, Thu, Fri ;                               
 Recursive = Yes ; LessThan = 1 ; DeletedDir = Yes ;                          
                                                                              
                                                                              
                                                                              
PurgeDeleteFlagĶ
  3    21:10  *.*              1    21:15  *.TMP,*.BAK      1  *.TMP        
  2 20/09/96  *.*                                           2  APPLOG       
  1 21/09/96  *.*                                           3  AD}AD{.*     
                                                                            
                                                                            
                                                                            
                                                                            
                                                                            
Ķ
         Today:  Waiting:  Purged today:  15 files, 6139 KBytes.             
 Purge:      1        2    Purged total:  15 files, 6139 KBytes.             
 Delete:     1        0    Deleted today: 0 files, 0 KBytes.                 
 Flag:       3        0    Deleted total: 0 files, 0 KBytes.                 
ͼ

             Figure 1, AutoPurge Status Screen



Purge jobs:
[Purge1]
Time = 21:00 ; Dow = Sat ;
Recursive = Yes ; Copies = 1 ; DeletedDir = Yes ;
[Purge2]
Time = 21:05 ; Dow = Mon, Tue, Wed, Thu, Fri ;
Recursive = Yes ; Age = 182 ; DeletedDir = Yes ;
[Purge3]
Time = 21:10 ; Dow = Mon, Tue, Wed, Thu, Fri ;
Recursive = Yes ; LessThan = 1 ; DeletedDir = Yes ;

Delete jobs:
[Delete1]
Time = 21:15 ; Dow = Mon, Tue, Wed, Thu, Fri ; Month = All ;
Volume = VOL1, USER, PROG, MAIL, SYS ; FileSpec = *.TMP, *.BAK, *.BK! ; Recursiv
e = Yes ; Purge = Yes ;

Flag jobs:
[Flag1]

Volume = USER ; FileSpec = *.TMP ; Recursive = Yes ;
Press any key to continue...


             Figure 2, AutoPurge List Screen

  AutoPurge Reference manual                                               33

AutoPurge is a program that automaticaly purges,
deletes & flags files.

The following keywords are supported:

   HELP          - This help screen
   LIST          - List all loaded jobs
   STATUS ON     - Turn on the status screen
   STATUS OFF    - Turn off the status screen
   STATUS        - Show state of the status screen
   DISPLAY ON    - Turn on the logging screen
   DISPLAY OFF   - Turn off the logging screen
   DISPLAY       - Show state of the logging screen
   DISABLE       - Temporarily disable a job
   ENABLE        - Re-enable a disabled job
   SKIP          - Skip a job once
   EXECUTE       - Execute a job now
   REREAD        - Close current jobs & reread INI file
   SLEEP         - Tell AutoPurge to stop processing
   WAKEUP        - Wake-up after SLEEP & reread INI file
   EXIT          - Unload AutoPurge

All keywords must be preceeded by 'AUTOPURGE '

Press any key to continue...


             Figure 3, AutoPurge Help Screen


AutoPurge is currently busy with:

[Purge1]
# This job deletes all multiple copies of a deleted
file
Time               = 21:00
Dow                = Saturday
Recursive          = Yes
Copies             = 1
DeletedDir         = Yes

Do you wish to cancel this job? (y/N)

(Or just wait for it to finish)



             Figure 4, AutoPurge Stop Screen







  AutoPurge Reference manual                                               34

  APPENDIX B

  Log-files

     Here is an example of an AutoPurge log-file:

     Starting Purge job 2 at Thursday September 19 1996, 10:14:16
     SYS:              193.462.272 bytes total
     SYS:               83.755.008 bytes available (43%)
     SYS:               15.794.176 bytes purgable  (8%)
     Purged SYS:\SYSTEM\NLS\4\ADSP.MSG
     Purged SYS:\SYSTEM\NLS\4\AURP.MSG
     Purged SYS:\SYSTEM\NLS\4\DSI.MSG
     Purged SYS:\SYSTEM\NLS\4\ICMD.MSG
     Purged SYS:\SYSTEM\NLS\4\ATCON.MSG
     Purged SYS:\SYSTEM\NLS\4\APPLETLK.MSG
     Purged SYS:\SYSTEM\NLS\4\SMSDI.MSG
     Purged SYS:\SYSTEM\NLS\4\TSA410.MSG
     Purged SYS:\SYSTEM\NLS\4\TSA312.MSG
     Purged SYS:\SYSTEM\NLS\4\TSA400.MSG
     Purged SYS:\SYSTEM\NLS\4\SMDR.MSG
     Purged SYS:\SYSTEM\NLS\4\TSADOS.MSG
     Purged SYS:\SYSTEM\NLS\4\TSANDS.MSG
     Purged SYS:\SYSTEM\NLS\4\SPXS.MSG
     Purged SYS:\OLDFILES.ZIP
     SYS:              193.462.272 bytes total
     SYS:               90.112.000 bytes available (46%)
     SYS:                9.633.792 bytes purgable  (4%)
     VOL1:              242.941.952 bytes total
     VOL1:              156.991.488 bytes available (64%)
     VOL1:                        0 bytes purgable  (0%)
     Purged 15 files, freeing up 6.286.336 bytes
     Finished Purge job 2 at Thursday September 19 1996, 10:19:49






















  AutoPurge Reference manual                                               35