Man Linux: Main Page and Category List

NAME

       weex - fast WEb EXchanger non-interactive FTP client

SYNOPSIS

       weex [ Options ] HOSTID [HOSTID...]

DESCRIPTION

       weex is a utility designed to automate the task of remotely maintaining
       a web page or other FTP archive. With weex , the maintainer  of  a  web
       site  or  archive that must be administered through FTP interaction can
       largely ignore that process. The archive administrator simply creates a
       local directory that serves as an exact model for the offsite data. All
       modifications and direct interaction is done locally to this  directory
       structure.  When the administrator wishes to coordinate the data on the
       remote site with that of the local model  directory,  simply  executing
       weex  accomplishes this in the most bandwidth-efficient fashion by only
       transferring files that need  updating.  The  program  will  create  or
       remove  (!)  files  or directories as necessary to accurately establish
       the local model on the remote server.

       The mandatory HOSTID argument is the user-defined name that  represents
       a  particular  FTP  account or configuration specified in the ~/.weexrc
       file. This file,  the  contents  of  which  are  described  below,  can
       alternatively  be named ~/.weex/weexrc.  Multiple HOSTID arguments to a
       single weex command  are  supported  to  affect  multiple  archives  or
       configurations  in immediate succession. In addition, the actual HOSTID
       can be substituted with the number representing its relative sequential
       position  in  the ~/.weexrc file (the first HOSTID definition is 1, and
       so on).

OPTIONS

       Options at the command line take precedence over any specified  in  the
       configuration file.

       -d, --debug-config
              Outputs the configuration of each hosts.

       -D, --debug-ftplib
              Outputs messages from/to FTP server.

       -f, --force
              If  the  caching  mechanism is inhibiting the uploading of files
              that should be transferred, this option will  force  the  actual
              transfer to always occur.

       -h, --help
              Outputs a usage summary to stdout.

       -m, --monochrome
              The  default  mode generates a helpful color coding based on the
              operation being performed. This option suppresses that.

       -r, --rebuild-cache
              If cache file is broken, use this to rebuild it.

       -s, --silent
              The default mode outputs  a  helpful  status  message  for  each
              action  taken,  including  file  transfer progress meters.  This
              mode suppresses output.

       -t, --test
              Weex doesn’t modify any remote files/directories.

       -V, --version
              Prints the version of the weex program.

CONFIGURATION FILE

       Because this program is meant to be non-interactive, a properly set  up
       configuration  file  is  essential.  weex looks for this file either in
       ~/.weexrc or ~/.weex/weexrc.

       The general format of the configuration file  is  a  bracketed  section
       heading   followed   by   parameters   that   define   that   section’s
       configuration. This section name is what is provided  to  weex  at  run
       time to indicate the FTP arrangement you wish to update. A parameter is
       only valid for the most recent section heading that  preceded  it.  The
       exception  to  this is the [default] section which creates settings for
       unspecified parameters in every section. In the case of parameters that
       accept  multiple  values, the default section augments any specifically
       designated values.

       Lines that begin with the ’#’ character are safely ignored as comments.
       Neither section names nor parameter variables are case sensitive in any
       way. Section names can not begin with numbers. Some parameters  can  be
       assigned multiple values. Where this is not possible, the last value is
       used. To quote special characters, use  single  quotes  (’)  or  double
       quotes  (").  To  quote a particular quote symbol, use the other quote.
       The general syntax format for the configuration file is:

       [hostid1]
               Parameter1 = Value
               # First method for multiple values
               Parameter2 = Value
               Parameter2 = Value
               ...

       [hostid2]
               Parameter1 = Value
               # Second method for multiple values
               Parameter2 = {
                      Value
                      Value
               }
               ...

       [default]
               Parameter = Value
               ...

       PARAMETER LIST

       These parameters are used to define the properties of a particular host
       configuration  named  in brackets. When specifying directory names, the
       trailing "/" is optional. Also,  both  files  and  directories  (except
       SrcDir  and  DestDir)  can  be  specified  with  shell wildcards.  When
       specifying files, if a file or file pattern is given without a path, it
       is assumed to be available when encountered in any directory.  If it is
       an explicitly specified path/file  combination,  the  configuration  is
       available  in  that  directory.   Files/directories except ‘SrcDir’ and
       ‘DestDir’ can be specified as both absolute path and relative path. But
       you  must  specify  ‘SrcDir’  and ‘DestDir’ as absolute path.  When you
       want to specify  ‘/public_html/ignoreme.html’  as  relative  path,  you
       should  specify  ‘./ignoreme.html’  rather  than ‘ignoreme.html’.  When
       specifying binary states, you may use any of the following: True/False,
       Yes/No, T/F, 1/0. None are case sensitive.

       AsciiFile
              Filename patterns that will be transferred using ASCII mode. The
              default  mode  for  files  not  specified   in   this   way   is
              IMAGE(BINARY) mode.

       AuthorizationName
              If   you   are   using   an   FTP  proxy  server  that  requires
              challenge/response authorization with the nonstandard  AUTHORIZE
              and  RESPONSE commands, set this parameter to your authorization
              user name (or number).  After logging in to the proxy, weex will
              prompt you with the challenge and read back a response.

       ChangePermission
              The access permissions of the files in the directories specified
              with ChangePermissionDir are  changed  to  this  parameter.  The
              format is a three digit octal number.

       ChangePermissionDir
              Files  in directories assigned to this parameter will have their
              access  permissions  changed  after  sending.    Specify   local
              directories.

       ChdirAtConnection
              Set ‘true’ to change remote current working directory to DestDir
              at  connection.   If  remote  current   working   directory   at
              connection  is  DestDir,  weex runs faster a bit by setting this
              parameter to ‘false’.  Default is ‘true’.

       ConvToLower
              If set to ‘true’, the filenames  are  converted  to  lower  case
              before  sending.   This  feature  allows  interaction  with  FTP
              servers that do not  support  case  sensitive  filenames.  If  a
              naming  conflict  arises  due  to  a  lower  case  name  already
              existing, an error occurs. Furthermore,  the  cache  is  totally
              unaware of original uppercase filenames.

       DestDir
              Destination  directory  on  the  remote  FTP  server  where  the
              mirrored information will be sent. This setting  corresponds  to
              the "pwd" command on traditional FTP clients.

       Force  If  the  caching  mechanism is inhibiting the uploading of files
              that should be transferred, this option will  force  the  actual
              transfer to always occur if set to ‘true’.

       FollowSymlinks
              Set  ‘true’  to  follow  symbolic  links.   Default  is ‘false’.
              Symbolic link of directory assumes a file whose size is  0  byte
              at default.

       FtpPassive
              When it is ‘false’, weex uses port mode instead of passive mode.
              If the FTP server doesn’t support passive mode, specify ‘false’.
              (It may make transfer slower) Default is ‘true’.  (See also FAQ)

       HostName
              Hostname to connect  to.  The  "ftp://"  protocol  specifier  is
              implied  and  shouldn’t be used. An IP address is also valid and
              may save lookup time.

       IgnoreLocalDir
              This parameter contains one or more protected local  directories
              that are completely ignored during the transfer process. This is
              useful if you want to have subdirectories that  are  part  of  a
              project but don’t need to be in the final, online version (i.e.,
              old versions).

       IgnoreLocalFile
              This  parameter  contains  one  or  more  protected  local  file
              specifiers  that  will be completely ignored during the transfer
              process.

       IgnoreRemoteDir
              This parameter contains one or more protected remote directories
              that are completely ignored during the transfer process. This is
              useful if you want to have other material on the remote FTP site
              that is not related to the specific project that weex is dealing
              with. This could include, for example, data administered through
              a different FTP client or process.

       IgnoreRemoteFile
              This  parameter  contains  one  or  more  protected  remote file
              specifiers that will be completely ignored during  the  transfer
              process.

       KeepRemoteDir
              In  their  directories,  files  are  not removed when they don’t
              exist in the local directory.

       LogDetailLevel
              It specifis how detail level weex records a log at.   Connection
              and   disconnection   message  and  error  messages  are  always
              recorded.  When  weex  finishes  working  correctly,  it  writes
              ‘Complete’  previous  disconnection  message.   If  1  or  less,
              records each connection.  If 2, records each directory.  If 3 or
              more, records each file manipulated Default is 1.

       LoginName
              Login name of the account on the FTP server.

       MaxRetryToSend
              When  weex  fails  in sending a file, it retry to send the file.
              The maximum times of retrying is this parameter.  Default is  8.
              Specify -1 to stop retrying.

       Monochrome
              The  default  mode generates a helpful color coding based on the
              operation being performed. A ‘true’ setting suppresses that.

       NestSpaces
              An integer that controls the indent spacing of the  output.  The
              default  is  4.   If you want to suppress it, specify -1. If you
              specify 0, weex uses 4. :-)

       OverwriteOK
              If the FTP  server  has  trouble  overwriting  files,  set  this
              parameter to ‘false’, and each file will be deleted before a new
              version is put in place.

       Password
              Plaintext password granting access to  the  account.  Note  that
              this  file  uses  no  special facilities to safeguard passwords.
              Make sure that the file  permissions  of  a  configuration  file
              containing  passwords are set conservatively. If they are not, a
              warning will be issued at execution.  If this parameter  is  not
              found, weex asks for it on the terminal.

       PreservePermissionDir
              The  access  permissions of the files in directories assigned to
              this parameter  will  be  copied  to  remote.   Specify  *local*
              directories.

       RecordLog
              When ‘true’, weex create a log.

       RenameOK
              If  this parameter is set to ‘true’, each file is uploaded under
              the temporary name ‘weex.tmp’, then renamed to its correct  name
              only  if the upload succeeds.  This avoids the problem of a user
              getting an incomplete file if he downloads from  your  Web  site
              while  you  are  uploading  to it, and of incomplete files being
              uploaded if your FTP connection breaks while weex is  running  .
              The  default is ‘false’ since some FTP servers might not support
              renaming.

       ShowHiddenFile
              Set ‘true’ to get hidden files (starting  with  a  dot)  on  FTP
              server  which  doesn’t show hidden files by default.  Default is
              ‘false’.

       Silent The default mode outputs  a  helpful  status  message  for  each
              action  taken, including file transfer progress meters. A ‘true’
              setting suppresses output.

       SrcDir Top of the source directory tree containing the  local  copy  of
              the  information to be mirrored. This setting corresponds to the
              "lcd" command on traditional FTP clients.

EXAMPLES

       Here is an example of what a typical .weexrc file might look like:

        #-=-=-=-=-=Sample Configuration file=-=-=-=-=-
        # My favorite FTP account...
        [Ninja]
        HostName = ftp.ninja-rights.org
        LoginName = chrisxed
        Password = ’"mYsEcReT!"’
        SrcDir = /home/chrisxed/project/weex
        DestDir = /
        ASCIIfile = *.c
        IgnoreLocalDir = /home/chrisxed/project/weex/weex.devel
        IgnoreLocalDir = /home/chrisxed/project/weex/weex.old
        IgnoreLocalFile = notes2myself.txt
        IgnoreRemoteDir = /offsitearchive/

        # Another FTP account...
        [Veggie]
        HostName = ftp.vegetable-advocacy.com
        LoginNAME = waxedbean
        Password = "X’sBean"
        SrcDir = /home/chrisxed/project/legumes
        DestDir = /souppot/

        # Global configuration settings
        [default]
        AsciiFile = {
        *.htm
        *.html
        *.txt
        *.asc
        }
        IgnoreLocalFile = {
        *.bak
        *.tmp
        *.swp
        }

       With a configuration like this, executing:

       $ weex Ninja

       would cause the  file  system  assigned  to  SrcDir  to  be  completely
       mirrored on the remote server.  Executing:

       $ weex ninja veggie

       would  cause  the FTP update to occur for the "Ninja" configuration and
       then for the "Veggie" configuration. This could also be specified  like
       this:

       $ weex 1 2

NOTES

       Timestamp Cache Facility

       weex  implements a cache of file timestamps from Ver 1.6.0.  This makes
       updating much faster when you have a lot of files.  In  addition,  weex
       also  caches  directory  structure  and  file names from Ver 2.5.0.  So
       never slow transfer even if you have many directories and  files.   If,
       however, you change the remote files with another FTP client or running
       weex is killed or weex is terminated by an error, the cache  file  will
       not  be  correct.  The simple solution to this problem is to remove the
       cache file (located in ~/.weex/weex.cache.HOSTNAME ) completely  or  to
       run weex with option --rebuild-cache.

       Tested Operating Systems

         Debian GNU/Linux 2.1
         Red Hat Linux 5.1/5.2/6.0/6.1J
         SuSE Linux 6.1/6.2/6.3
         Linux Mandrake 6.1
         FreeBSD(98) 3.0-RELEASE
         FreeBSD 3.3-RELEASE
         Solaris 2.5.1

AUTHOR

       This very handy program was written by:
              Yuuki NINOMIYA <gm@debian.or.jp>

       The original man page was written by:
              Chris X Edwards <chrisxed@usa.net>

       The  copyright  of  this  software  and  documentation belongs to Yuuki
       NINOMIYA.  It is released under the terms of  the  GNU  General  Public
       License as published by the Free Software Foundation; either version 2,
       or (at your option) any later version.  You can redistribute it  and/or
       modify it under the GPL.

       This  software uses shhopt for parsing command line options.  Shhopt is
       released under the Artistic License. You may use  it  separately  under
       the Artistic License.