mkls-lR(1) - phpMan

Command: man perldoc info search(apropos)  


mkls-lR(1)                                                                             mkls-lR(1)



NAME
       mkls-lR - make ls-lR files on FTP server for mirror use

SYNOPSIS
       mkls-lR  -d dirpath [-a] [-n basename] [-t tod] [-h] [--help] [-V] [--version] ["] [-Ipath
       ...]  [path ...] ["]


DESCRIPTION
       mkls-lR creates or updates the four  files  timezone,  ls-lR.gz,  ls-lR.patch.gz  amd  ls-
       lR.times  in  the  directory  dirpath.  With the -a option a fifth file ls-lR is included.
       More than the disk space of ls-lR is briefly used in /tmp.

       The command ls -lR >ls-lR stores a long recursive directory listing  in  the  file  ls-lR.
       FTP  servers make these files once a day so a directory listing is ready to download when-
       ever a mirror logs in. For gigabyte servers these files are several megabytes and are usu-
       ally  compressed to ls-lR.gz.  Many mirrors still download ls-lR.gz daily, compare it with
       their own directory and then request the new files they want.

       Many large archives now have ls-lR.gz about a megabyte and the average total size  of  the
       daily  new  files  is  similar. The bandwidth and (horror) charges for downloading the new
       files are increased by the size of the daily ls-lR.gz.

       ls-lR.patch.gz is a compressed unified difference of the previous and  the  current  ls-lR
       file.   Mirror  scripts  and programs can download this file and patch a local copy of the
       remote server's ls-lR daily.  ls-lR.patch.gz is sometimes only 1% of the size of ls-lR.gz.

       ls-lR.times  contains  just  the  modification  times  of  the  previous and current ls-lR
       expressed as decimal seconds since the beginning of 1st January 1970 in the server's  time
       zone. A mirror can download this 20 byte file first to check whether its local copy of the
       server's ls-lR can be patched with the ls-lR.patch.gz currently available  or  whether  it
       needs to download a fresh ls-lR.gz.

       mkls-lR makes the above files with careful attention to preserving and recording names and
       times. Mirrors can check the names and times against their local copy of the server's  ls-
       lR before applying ls-lR.patch.gz as well as checking whether the patch fits. This ensures
       the mirror's ls-lR is aligned with the server's.  mkls-lR does not make  new  ls-lR  files
       unless there is a difference in the directories further saving in unnecessary mirror down-
       loads.


       Heavy server load increases ls runtime delaying ls-lR files until mirrors miss downloading
       them.   mkls-lR  can  store  new ls-lR files in /tmp for up to an hour before release at a
       precise time of day tod set with the -t option.  The time mkls-lR starts should under nor-
       mal  load  allow making of the final file ls-lR.times in the middle of the interval before
       tod.  This prevents mirrors missing ls-lR files when server load is heavy even if  mirror-
       ing starts only 1 minute after tod.  A mirror using the timezone file with tod can set its
       start time precisely when appropriate.

       mkls-lR makes and places the files as follows.  If  the  file  /etc/timezone  is  readable
       mkls-lR  copies  it to timezone in dirpath.  It then makes ls-lR and ls-lR.patch.gz in the
       /tmp directory but relative to dirpath.  If ls-lR is made before time of day tod its modi-
       fication  time is set to tod.  After compressing ls-lR to ls-lR.gz, mkls-lR sets the modi-
       fication time of ls-lR.gz equal to ls-lR.  By default mkls-lR then deletes ls-lR  but  for
       the  -a option it moves ls-lR to dirpath instead.  mkls-lR makes ls-lR.times last.  If tod
       has passed or at is unavailable, mkls-lR moves ls-lR.times,  ls-lR.patch.gz  and  ls-lR.gz
       into dirpath immediately but otherwise asks at to move them at tod precisely.


       mkls-lR is a bash script using GNU utilities intended for use on FTP servers with archives
       over 100 MB in size.


EXAMPLES
       mkls-lR would normally be started by cron shortly before it is desired mirrors should  log
       in.   For  these examples to work cron must have write permission to the dirpath subdirec-
       tory path argument.  If you have more than one of these commands you should put them in  a
       shell script and start the script with cron.


       50 20 * * * /usr/bin/mkls-lR -d /home/ftp/pub -t 21:00
              At  8:50  pm  local  time  start  making  the  ls-lR  files  in /tmp.  Move them to
              /home/ftp/pub where mirrors can download them at 9:00 pm precisely.


       mkls-lR -d /home/ftp/pub "-Ils-lR.*"
              Make the ls-lR files in /home/ftp/pub and do not include them in the listing.  This
              stops any badly configured mirrors from downloading the ls-lR files twice.


       mkls-lR -d /home/ftp/tex-archive "-Ils-lR.* -IFILES.by*"
              Include  in  the  listing neither ls-lR files nor FILES.bydate nor FILES.byname nor
              FILES.bysize.  A common fault of CTAN mirrors is downloading daily  the  12  MB  of
              index files mentioned. A mirror using these ls-lR files cannot make that mistake.


       mkls-lR -d /home/ftp/pub/debian -n ls-lR_stable\ "dists/slink/*"
              The  basename,  ls-lR_stable,  replaces  ls-lR  so  the output filenames become ls-
              lR_stable.gz, ls-lR_stable.patch.gz and  ls-lR_stable.times.   Only  subdirectories
              matching  dists/slink/*  and  their contents are listed so a mirror using the above
              files will only download these.  This example may be obsolete when  you  read  this
              manpage.


OPTIONS
       -a     Move  ls-lR  to  directory  dirpath immediately after compression.  Default: Delete
              after compression.


       -d dirpath
              Copy any /etc/timezone into  directory  dirpath.   Make  the  files  ls-lR.gz,  ls-
              lR.patch.gz and ls-lR.times relative to directory dirpath.  Move them into dirpath.
              Write permission to dirpath is necessary.


       -n basename
              Substitute basename for ls-lR in each of the output file  names  ls-lR  occurs  in.
              Default: ls-lR.


       -t tod Move  ls-lR.times,  ls-lR.patch.gz,  and ls-lR.gz from /tmp to dirpath at a time of
              day tod not more than 1 hour after mkls-lR starts.  The modification times of ls-lR
              and  ls-lR.gz  are  set  to tod.  If -a requires ls-lR, it moves when created.  tod
              must be a single word date understands.  Usually tod is in the  format  hh:mm,  for
              example  21:00.  An example for testing is now+1min.  To release files at 5 minutes
              past midnight tomorrow  use 23:65.  Default: now.


       -h, --help
              Display help message then exit.


       "      expand special pattern characters *, ?, [ and  ]  in  path  relative  to  directory
              dirpath.  Default: Expand relative to current default directory.


       -Ipath path is a shell pattern of files or directories not to appear in ls-lR, ls-lR.gz or
              ls-lR.patch.gz.


       path   path is a shell pattern of files or directories to appear in ls-lR, ls-lR.gz or ls-
              lR.patch.gz.  Default: All files in and below dirpath.


       -V, --version
              Display version and copyright message then exit.


SEE ALSO
       getls-lR(1),  cron(8),  crontab(1),  mirror(1),  ftp(1), ftpd(8), ls(1), diff(1), gzip(1),
       date(1), at(1), tzset(3), wu-ftpd(8).

       mirror-lslR.html describes how programs like Lee McLoughlin's perl script mirror  can  use
       ls-lR.patch.gz and ls-lR.times.


AUTHOR
       Ian Maclaine-cross  31st August 1999



1.38                                    September 23, 2001                             mkls-lR(1)

Generated by $Id: phpMan.php,v 4.49 2006/02/26 13:18:18 chedong Exp $ Author: Che Dong
On Apache
Under GNU General Public License
2012-05-25 23:17 @38.107.179.238 Crawled by CCBot/1.0 (+http://www.commoncrawl.org/bot.html)
Valid XHTML 1.0!Valid CSS!