CRONOPETE 4.0.1

The Apple's TimeMachine clone for Linux

Cronopete is a backup program, designed to mimic Apple's TimeMachine as close as possible.

The name comes from anacronopete (who flies through time), which is a time machine featured in the novel from Enrique Gaspar y Rimbaud, and published in 1887 (eight years before than H.G. Wells' Time Machine.

Cronopete is distributed under GPL v3 license.

How does it work?

Cronopete makes a full copy of the local hard disk each hour, storing it as-is in an external hard disk. To save space and speed up the copy proccess, only modified files are copied, while non-modified files are linked to the previous backup. That way, if a file of 4GB is not modified, it won't occupy 4GB in each backup, but only in the first one.

Cronopete is designed to be able to use several backends for doing the backups. Currently there are two backends available, both using rsync. The first one can do backups only to external hard disks, and is the default one. The second backend allows to do backups to any folder, but by default is disabled.

To save even more disk space, cronopete keeps only hourly copies for the last 24 hours. In the past month stores a daily copy. Finally, keeps a weekly copy until the hard disk is full.

To ensure the integrity of the backups, cronopete follows these steps:

This procedure ensures that a backup, when successful, will remain correct even in the case of power failure or other problems.

After doing a backup, old backups are deleted. To ensure data integrity, the backup folders to be deleted are first renamed, then the disk is synced, and finally the renamed folders are deleted. This ensures that, in case the delete process is interrupted, an incomplete backup won't be used as the basis for a new one.

Cronopete creates in the external disk a folder, called cronopete, and inside it creates one folder for each user using it. The name of these folders are the user login name. Then, inside each user's folder, cronopete creates one folder for each backup. The name of that folder follows the format:

YYYY_MM_DD_hh:mm:ss_unixtime

Being YYYY the year, MM the month, DD the day, hh the hour, mm the minutes, ss the seconds, all of them in local time; and unixtime the UTC time in UNIX format (seconds since Jan, 1, 1970). If the folder begins with a B letter, is a temporal backup (one that is still being made).

Installing Cronopete

Cronopete is written in Vala, so you need to install it:

After installing all the dependencies, you can type this to install cronopete in your system and get it ready to be automatically launched each time you log into your session:

mkdir Build
cd Build
cmake ..
make
sudo make install

Now, in order to run it, just type

cronopete &

Using Cronopete

After a delay of 2 seconds, you should see this orange icon in your system tray:

This icon shows the current status of Cronopete. If it's red, then there's a critical problem that prevents backups to be done (like if there's no external disk configured or connected, or the backups are disabled). If it's orange, then there was some problem during backup (like when one file wouldn't be backed up, or can't access into a folder). If it's green or white, all is working fine.

When cronopete is doing a backup, the icon is animated, like a green backward-moving clock. When it stops, the backup ended.

If your system doesn't show the icon, you can still use Cronopete with the options in the launcher: in the Other section, you will find two programs: Restore backed up files, and Setup Cronopete.

Now it's time to configure cronopete. If you click on the icon, you will see this menu:

By clicking on Open cronopete preferences... (or choosing the Setup Cronopete option in the application menu) you will see the main window:

Here are two tabs: the main, with all the configuration options, and the Log tab, where you can check if a backup ended fine, or there were errors.

In the main tab, you can see the currently active disk, the available disk space, when the first and last backups were made and when will be done the next backup, the current status, and, in the switch under the anaCRONOPETE name, the ON/OFF status of cronopete.

The first thing to do is to choose the external hard disk to use to do the backups. By clicking the Change destination button a windows with the currently mounted USB hard disks will be shown. By default only the USB drives will be shown, but if the option Show all disks (except /home) is marked, all other hard disks in the system will be shown, except the one where the /home personal folder is. This is because Cronopete is a backup program, and a backup never should be in the same physical disk than the data to be backed up, because in case the disk fails, both the original data and the backup would be lost.

Cronopete preffers Ext3/Ext4, but also supports ReiserFS and BTRFS. If Cronopete formats a drive, will do it in Ext4 format.

It is possible to use other backends instead the default one by choosing them in the selector located in the window upper zone.

By clicking in the Options button, you will be able to choose the folders to backup. This window will be shown:

The first list contains the folders to be backed up. By default it backs up the HOME folder only, but you can add other folders if you like.

The second list contains the folders to be skipped. By default is empty. You can add here folders like aMule's Incoming folder, or similar.

Then, the checkbutton at the bottom allows you to avoid to back up the hidden files and folders in your HOME directory. By unchecking it, cronopete will not backup them (but hidden files/folders in other folders will always be copied).

Finally, you can choose the time interval between backups. By default it is one hour, but you can set it to up 12 hours (but I strongly recommend to keep it to one backup each hour).

Restoring files

To restore a file from your backups, just click on cronopete's icon and choose Restore files (or choose Restore backed up files in your applications menu). You will see this interface:

Now you can navigate through the folders as usual, until you reach the place where the file you want to restore is/was. You can also go back and forward through time, so you can restore a file from any of the currently available backups. To do this you can use the mouse wheel, the two arrows in the screen, or the PgUp and PdDown keys.

Let's say that you erased a file two weeks ago, and now you need it: just go to the folder where it was, and then, using the mouse wheel, go back in time two weeks (checking the time/date in the upper clock), until the desired file appears. Then, click on it to mark it, and then click on the Restore button. You can mark several files and folders also, restoring all of them in one single step.

The file/s and folder/s will be restored to your hard disk with a .restored suffix added, to avoid overwritting currently existing files (if there's already a file/folder with that name and suffix, cronopete will add .1, .2, and so on, when needed, so you also can restore the same file from several dates).

The timeline at the left of the screen allows to know where we are relative to the first and last backup, and also shows the granularity of the backups. It clearly shows that the most recent backups are kept for 24 hours (top); then it jumps to one backup per day during a month (middle); finally it stores only one backup per week (bottom).

Using Dbus to control Cronopete

Dbus remote control can be used to control Cronopete in systems without system tray. It offers the following four methods in com.rastersoft.cronopete, path /com/backup/cronopete:

Contacting the author

Sergio Costas Rodriguez
raster@rastersoft.com
http://www.rastersoft.com