OnWorks favicon

expire_backups - Online in the Cloud

Run expire_backups in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command expire_backups that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator



expire_backups - Intelligently expire old backups


expire_backups [options] <age> [<age> ...]


The expire_backups command intelligently remove old backups that are no longer needed.

To define what backups you want to keep for how long, you define a number of age ranges.
expire_backups ensures that you will have at least one backup in each age range at all
times. It will keep exactly as many backups as are required for that and delete any
backups that become redundant.

Age ranges are specified by giving a list of range boundaries in terms of backup cycles.
Every time you create a new backup, the existing backups age by one cycle.

Example: when expire_backups is called with the age range definition 1 3 7 14 31, it will
guarantee that you always have the following backups available:

1. A backup that is 0 to 1 cycles old (i.e, the most recent backup)

2. A backup that is 1 to 3 cycles old

3. A backup that is 3 to 7 cycles old

4. A backup that is 7 to 14 cycles old

5. A backup that is 14 to 31 cycles old

If you do backups in fixed intervals, then one cycle will be equivalent to the backup
interval. The advantage of specifying the age ranges in terms of backup cycles rather
than days or weeks is that it allows you to gracefully handle irregular backup
intervals. Imagine that for some reason you do not turn on your computer for one
month. Now all your backups are at least a month old, and if you had specified the
above backup strategy in terms of absolute ages, they would all be deleted! Specifying
age ranges in terms of backup cycles avoids these sort of problems.

expire_backups usage is simple. It requires backups to be stored in directories of the
form year-month-day_hour:minute:seconds (YYYY-MM-DD_HH:mm:ss) and works on all backups in
the current directory. So for the above backup strategy, the correct invocation would be:

expire_backups.py 1 3 7 14 31

When storing your backups on an S3QL file system, you probably want to specify the
--use-s3qlrm option as well. This tells expire_backups to use the s3qlrm command to delete

expire_backups uses a "state file" to keep track which backups are how many cycles old
(since this cannot be inferred from the dates contained in the directory names). The
standard name for this state file is .expire_backups.dat. If this file gets damaged or
deleted, expire_backups no longer knows the ages of the backups and refuses to work. In
this case you can use the --reconstruct-state option to try to reconstruct the state from
the backup dates. However, the accuracy of this reconstruction depends strongly on how
rigorous you have been with making backups (it is only completely correct if the time
between subsequent backups has always been exactly the same), so it's generally a good
idea not to tamper with the state file.


The expire_backups command accepts the following options:

be really quiet

--debug-modules <modules>
Activate debugging output from specified modules (use commas to separate
multiple modules). Debug messages will be written to the target specified by the
--log option.

Activate debugging output from all S3QL modules. Debug messages will be written
to the target specified by the --log option.

just print program version and exit

--state <file>
File to save state information in (default: ".expire_backups.dat")

-n Dry run. Just show which backups would be deleted.

Try to reconstruct a missing state file from backup dates.

Use s3qlrm command to delete backups.


expire_backups may terminate with the following exit codes:

0 Everything went well.

1 An unexpected error occured. This may indicate a bug in the program.

2 Invalid command line argument.

Use expire_backups online using onworks.net services

Free Servers & Workstations

Download Windows & Linux apps

  • 1
    OpenFOAM - The Open Source CFD Toolbox.
    OpenFOAM is a generic, programmable
    software tool for Computational Fluid
    Dynamics (CFD). For more information,
    see: - ...
    Download OpenFOAM
  • 2
    PostInstallerF will install all the
    software that Fedora Linux and others
    doesn't include by default, after
    running Fedora for the first time. Its
    easy for...
    Download PostInstallerF
  • 3
    The strace project has been moved to
    https://strace.io. strace is a
    diagnostic, debugging and instructional
    userspace tracer for Linux. It is used
    to monitor a...
    Download strace
  • 4
    JasperReports Library
    JasperReports Library
    JasperReports Library is the
    world's most popular open source
    business intelligence and reporting
    engine. It is entirely written in Java
    and it is able to ...
    Download JasperReports Library
  • 5
    Numerical Python
    Numerical Python
    NEWS: NumPy 1.11.2 is the last release
    that will be made on sourceforge. Wheels
    for Windows, Mac, and Linux as well as
    archived source distributions can be fou...
    Download Numerical Python
  • 6
    CMU Sphinx
    CMU Sphinx
    CMUSphinx is a speaker-independent large
    vocabulary continuous speech recognizer
    released under BSD style license. It is
    also a collection of open source tools ...
    Download CMU Sphinx
  • 7
    Old Feren OS Repositories
    Old Feren OS Repositories
    This was the Official Repository for
    Feren OS. To add the latest one, run
    this command: (16.04-based) echo
    "deb ...
    Download Old Feren OS Repositories
  • More »

Linux commands