These installation instructions can be followed when installing from source:
tar xvzf ascopy-0.0.0.tar.gz
./configure && make && make
install
./configure --help
to view the possibilities.ascopy
binary is in your
PATH
and that the man page can be found through
your MANPATH
environment variable.The documentation below is the user's manual as it is included with the distribution of AScopy. It is always a copy of the documentation included in the latest stable release.
ascopy - web site maintenance utility
ascopy [OPTIONS]... [ACTION] SITENAME
Synchronize files, directories and their permissions between the remote location for a web site and its location on a local machine. Only files and directories that have changed will be transferred. The trans- portation is done using an external SFTP client. Ascopy recognizes files that have been moved or copied to a new loca- tion and does not attempt to send these files to the remote site. It just copies them directly on the remote site.
The options for ascopy can be split into two groups: one option indi- cating the action the program has to take and other options that change the behavior during operation. The possible actions and options are listed below: Actions -l, --list List changes between remote and local sites (default). -v, --view Display a list of the site definitions. By default it shows the definitions as stored in $HOME/.ascopyrc unless another configu- ration file has been specified (see Optional Settings). -i, --init, --initialize Mark all files and directories as not updated. This removes the local stored information for the remote site and makes ascopy think that there are no files on the remote server. The default location for the file that will be removed is: $HOME/.ascopy/<sitename>. See FILES. -f, --fetch Find out what files are on the remote site. This will overwrite the locally stored information on for the remote site. The default location for this data is: $HOME/.ascopy/<sitename>. See FILES. -e, --verify Verify stored state of site matches real remote state. If both the local and the remote site are the same ascopy will exit with a return value of 0, otherwise it will return with a value of 1. -c, --catchup Mark all files and directories as updated. This will take the state of the local site and write it to the file containing the state for the site. Default location: $HOME/.ascopy/<sitename>. See FILES. -s, --synch, --synchronize Update the local site from the remote site. This makes the local copy of the site equal to the remote copy. Local files may be deleted or changed. -u, --up, --update Update the remote site from the local site. -h, --help Display this help message. -V, --version Display version information. Optional settings -r FILE, --rcfile=FILE Use alternate run control file. See FILES for more information on the format of this file. -p PATH, --storepath=PATH Use alternate site storage directory. See FILES. -y, --prompting Request confirmation before making each update. -q, --quiet Be quiet while performing the operation. If confirmation is needed or requested (see the -p or --prompting optional setting) it will not be suppressed. -n, --dry-run Display what will be done but do not carry out the operation.
The program returns 0 if everything went well, 1 otherwise.
ascopy's behavior is affected by the following environment variables: ASCOPY_SITEDATA_DIR This variable holds the path where the data for each site will be stored. Its default value is $HOME/.ascopy and can also be set using the -p or --storepath option. ASCOPY_CONF_FILE Defines the name of the file that holds the configuration data of the remote sites. Its default value is $HOME/.ascopyrc and can also be set using the -r or --rcfile option. See the FILES section for information about the content.
.ascopyrc Default run configuration file that contains the site settings. Other files can be set using ASCOPY_CONF_FILE (see ENVIRONMENT) or the --rcfile command line switch (see OPTIONS). The configuration file is a text file that holds the settings as key- value pairs where the key and value are separated by whitespace. The following keys have to be defined: site sitename Sets the name of the definition for a site. It MUST be the first entry for each definition as aScopy will consider all following entries to belong to this definition. server servername The name of the remote server for the site. username username The username with which to log in to the remote server. local dir The directory where the local copy of the site will be stored. remote dir The directory on the remote system where the site will be stored. exclude pattern Files or directories that can be excluded when building the actual file list from the local machine or the remote system. Beware the files that were once correctly but that are now excluded, will be deleted from the remote server when an update is done. The exclude option can take three forms: To exclude files in any directory that conform to a certain pat- tern, the pattern following exclude is just the general file pattern. The first example excludes all files that end with the 'bak' extension, the second example excludes all files start with a '.' and end with the 'swp' extension (vi temporary files): exclude *.bak exclude .*.swp To exclude files in a specific directory, prefix the pattern with a slash '/'. The example below will exclude all files with a 'txt' extension in the given directory. The directory is rela- tive to the directories specified with local or remote. exclude /personal/*.txt It is even possible to exclude entire directories using the syn- tax shown before. The following example will exclude all files and sub-directories in the personal directory: exclude /personal Example configuration file: site www.yoursite.com username hutch server your.uploadserver.com local /home/hutch/htdocs/www.yoursite.com/ remote /home/who/htdocs/ exclude *.bak exclude .*.swp As stated the configuration file can contain more than one site definition. Whitespace is ignored so it can be used to make the file a bit more readable. Data files. For each site definition in the configuration file a file will be cre- ated that holds the state of that site. The location of these files is by default in the directory $HOME/.ascopy but can be changed by setting ASCOPY_SITEDATA_DIR (see ENVIRONMENT) or using the --storepath switch (see OPTIONS).
Starting from scratch ascopy needs a run control file where the definitions for the sites will be stored and a working directory. Both have to be created manu- ally. Use the following command to create the working directory: mkdir -m 700 $HOME/.ascopy To create an empty run file execute the following commands: touch $HOME/.ascopyrc chmod 600 $HOME/.ascopyrc After this has been done the run file can be edited and the site details can be entered in there. See the FILES section for details. Since ascopy uses SSH and SFTP the user will be asked for a username and a password. This can be a bit cumbersome and SSH allows authentication to be automated using a key pair. The ssh(1) documenta- tion contains information on this. Starting with an existing remote web site It is assumed that the site configuration already has been set (see FILES). First get the information on the remote site: ascopy --fetch sitename Then make the local site equal to the remote site: ascopy --synchronize sitename Beware that might alter and/or destroy files on your local machine. It might be wise to make a backup first. Starting with an existing local web site Make sure that the root directory of the remote site has been created by either you or the administrator. The issue the following command: ascopy --initialize sitename Uploading changes To upload the changes made to a local site use the following command: ascopy --update sitename
ssh(1), sftp(1)
Copyright (C) 2006 Niels Heirbaut <niels@heirbaut.nl>.
There are some annoyances and probably also some bugs. Please report them to <nheirbaut@users.sourceforge.net>.
ascopy 1.0.0 December 2006 ASCOPY(1)