Skip to content

acavalin/ribs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 

Repository files navigation

Ruby incremental backup system

With this script you can take incremental backups of a specific folder.

It creates its backup files within the repository-folder by comparing file type, size, modification time and permissions.

It stores all files stats and archives only modified files (type/size/mtime).

USAGE: ribs [switches] <repository-folder> <target-folder/device/image_file>
    -l, --list-ts                    show available restorable versions
    -b, --backup                     update the incremental backup repo
    -r, --restore                    restores the last backup version
    -R, --restore-ts TIMESTAMP       restores the specified backup version
    -g, --gzip                       use gzip instead of xz
    -G, --pigz                       use parallel gzip instead of xz
    -x, --[no-]one-file-system       don't cross filesystem boundaries        Def. true
    -p, --[no-]permissions           store files permissions (gid/uid/modes)  Def. true
    -h, --help                       display this help

Some files are automatically excluded, you can insert any additional GLOBs patterns
by wrinting them in repo_dir/exclude.yml. This is the default list:
  - /var/tmp/*
  - /var/log/*.?.gz
  - /var/backups/*.?.gz

Examples:

# backup a single partition system
sudo ribs -b /mnt/usb-hd/my-pc.ribs /

# backup a raspberry pi sdcard
sudo ribs -b --no-p /mnt/usb-hd/raspi.ribs/p1 /mnt/sdcard/boot
sudo ribs -b        /mnt/usb-hd/raspi.ribs/p2 /mnt/sdcard/

# restore
sudo ribs -r /mnt/usb-hd/my-pc.ribs /mnt/anothed-hd/