Skip to content


Subversion checkout URL

You can clone with
Download ZIP
A simple backup for your ftp-share
Tree: f054c05682

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


    ftpbackup - backup from an ftp server

    ftpbackup [Options] *URL*

    ftpbackup allows to backup all files from an FTP server locally or even
    on another ftp server. If no destination is specified, ftpbackup tries
    to save in the current directory.

    When storing, ftpbackup stores all downloaded files below
    YYYYMMDD/servername, so you can create a nice little hierachical
    storage. For each servername, ftpbackup keeps track of a default of 3
    backups, removing old backups if necessary. If you want to keep more
    than 3 backup-version, look at the --keep option.

    Additionally ftpbackup can try to hardlink each backup with the previous
    version similar to how rsync does it (in fact, it uses rsync for
    hardlinking the data). ftpbackup can also encrypt each downloaded file
    using "gpg --symmetric".

    If no username/password is specified, ftpbackup will try to authenticat
    using anonymous logins (this means username=anonymous,

        Use active connection mode. (Default is passive).

        Store the backups below *dir*. Foreach run ftpbackup will create a
        directory in the date format 'YYYYMMDD' (as date +'%Y%m%d' would
        create it) and below that directory a directory of the *server*.
        (e.g. when running on Apr. 4th, 2008 and backing up,
        ftpbackup would create a directory structure *20080404/*)

        You can enter a ftp url here as well. In this case, ftpbackup will
        try to make a direct ftp connection from the source ftp server to
        the destination ftp server and copies all data to the destination
        ftp server directly.

        Turn on Debugging Infos.

        This switch enables symmetric encryption using gpg(1). In order for
        this to work, gpg(1) needs to be installed and available in your
        path and the perl module GnuPG needs to be installed. If the option
        --passfile is not specified, ftpbackup will interactively ask for an
        encryption password.

        Note that --encrypt will not work, when transfering the data to
        another ftp server, since the ftp protocoll does not specify such

        Specify an exclude pattern. You can use perl regular expressions
        (see perlre(1) for details). It is possible to specify this option
        several times and each pattern will be applied to all files and
        directories on the server, skipping each match.

        When storing the data locally, use rsync(1) to store the data.
        Basically this will call rsync(1) --archive --hard-links --sparse
        --link-dest=oldbackup *src/* *dest/* This is handy, when
        automatically downloading regularly, since that will store each
        version of a file only once.

        Note, that hardlinking will not work, when transfering to another
        ftp-server or when trying to encrypt the files. In these cases
        ftpbackup will silently ignore this option.

    -h, --help
        Displays the help screen.

        Only keep *number* version locally, deleting the oldest version. If
        not specified, ftpbackup will keep 3 versions.

        When encryption has been specified using --encrypt, you can instruct
        ftpbackup to read *file* for a password. This file needs only to
        contain the password. ftpbackup will use the whole input as

        Specify the FTP Server Port

        Try to preserve the permissions, as listed by the FTP dir command.
        This option will simply try to set the same permissions as on the
        remote ftp server by parsing the rwxrwxrwx String.

        By default, ftpbackup will recursively download all files below the
        given directory. You can turn off recursive downloading using

        Try to remove the directory on the FTP server when finished. This
        depends on the servers configuration and the permissions you have.
        This happens at the end, after the transfer is finished, so if this
        fails, you still have all data downloaded completely.

        Print a little statistic when finished.

    ftpbackup requires perl(1) of version 5.8 or higher. If you want to make
    use of hardlinking your downloaded backups, ftpbackup needs rsync(1)
    available in your path and the perl module File::Rsync. For encrypting
    the downloaded files you'll need the perl module GnuPG and gpg(1)
    available in your path.

    ftpbackup expects FTP URLs using the following syntax:
    *ftp://username:password@server/directory*. If no password is specified,
    ftpbackup will try to read the users .netrc. If this file does not exist
    it will ask interactively for the password. If both username and
    password are not specified, ftpbackup will use anonymous authentication.
    You can leave out the directory, in which case ftpbackup will simply try
    to download from the server's root level.

    ftpbackup --statistics
        Download all data from using anonymous access.
        When finished print a litte statistic summary.

    ftpbackup --statistics --exclude='\.iso$'
        Download all files, except iso images, when finished print a little

    ftpbackup --statistics --exclude='\.iso$' --encrypt --norecursion
        Download only files in directory knoppix on the kernel server,
        excluding iso images and locally encrypting the files. You will be
        asked for a password when run.

    ftpbackup --destination=ftp://servername/dir --keep=5 --norecursion
        Download all files in directory knoppix on the kernel server and
        transfer them to the ftp server servername. All data will be stored
        in the directory dir. If more than 4 versions exist, the oldest
        versions will be deleted.

    When run several times a day for the same ftp server, ftpbackup will
    happily overwrite already existing files. ftpbackup does not yet take
    care of the permissions on the server. So it will create all files as
    the current user with the default umask.

    Copyright 2008 by Christian Brabandt <>

    Licensed under the GNU GPL.

Something went wrong with that request. Please try again.