User Rating: 5 / 5

Star ActiveStar ActiveStar ActiveStar ActiveStar Active

Starting with release 0.6.5 of raspiBackup an itelligent rotation strategy of your backups is supported. It's also called GFS (grandfather-father-son backup). raspiBackup retains following backups per default if a daily backup is created:

1) Backup of the current day and the last 6 days

2) Backup of the current week and the last 3 weeks

3) Backup of the current month  and the last 11 months

4) Backup of the current year and the last two years

If weekly backups are created there will be no daily backups kept. Different retention values for daily, weekly, monthly and yearly can be defined with an option, e.g. if you want to retain weekly, monthly and yearly backups. Keep in mind the weekly backup day then will become the day of the weekly and monthly backup: If you configure Monday as the weekly backup day your monthly backup will be the first Monday of every month. Yout yearly backup will be the first Monday of the year. Iy you create a weekly backup every Sunday the monthly backup will be the first Sunday of the month and the yearly backup will be the first Sunday of the year.

User Rating: 4 / 5

Star ActiveStar ActiveStar ActiveStar ActiveStar Inactive

I finally picked myself up and created a video about raspiBackup and published it on Youtube. Topics in the video are

  1. Introduction of raspiBackup
  2. Visit of the most important websites for raspiBackup
  3. Visit of github which is used as a question- and issue handling tool for raspiBackup
  4. Live installation of raspiBackup with the menu driven installer

Slides used in the video can be downloaded here.


User Rating: 2 / 5

Star ActiveStar ActiveStar InactiveStar InactiveStar Inactive

raspiBackup is used in following 61 countries (as of 09/21/2020)

AE United Arab Emirates

AR Argentina

AT Austria

AU Australia 

BA Bosnia and Herzegovina

BE Belgium

BG Bulgaria

BR Brasila

CA Canada

CH Suisse

CM Kamerun

CO Colombia

CN China

CY Cyprus

CZ Czech Republic

DE Germany

DK Denmark

DZ Algeria

EE Estonia

EG Egypt

ES Spain

EU Europe

FI Finland

FR France

GB United Kingdom

GL Greenland

GR Greece

HR Kroata

HU Hungury

ID Indonesia

IE Irland

IL Israel

IN India

IT Italy

JP Japan

KZ Kazakhstan

KR South Corea

LT Lithuania

LU Luxemburg

LV Latvia

MD Moldovia

MT Malta

MX Mexico

NL Netherlands

NO Norway

NZ New Zealand

PL Poland

PT Portugal

RO Romania

RS Serbia

RU Russia

SE Sweden

SG Singapore SI Slowenia

SK Slovakia

TH Thailand

TR Turkey

TW Taiwan

UA Ukraine

US United States of Amerika

ZA Zaire


User Rating: 3 / 5

Star ActiveStar ActiveStar ActiveStar InactiveStar Inactive

In general it's sufficient to backup your raspberryonce a week and keep a given number of backups. If you want to keep a longer history of your backups - i.e. use an intelligent backup strategy - use raspiBackup with a wrapperscript. That way you have the last 7 daily backups of the week, the last 4 weekly backups of the month, the last 12 monthly backups of the year for the last years.

Note: Starting with version raspiBackup supports the smart recycle backup strategy and no helper script is required any more. See here for details.

User Rating: 3 / 5

Star ActiveStar ActiveStar ActiveStar InactiveStar Inactive

pishrink is a useful tool to reduce the size of dd images to it's minimum. When the image is booted the image expands the root partition to it's possible maximum size. You can shrink an image created by raspiBackup by using the helper script Following paragraph describes in detail how to configure raspiBackup to shrink dd backup images with pishrink.


Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive

In general using the installer is the fastest method to install raspiBackup. The installer also can be used to install raspiBackup with it's default configuration via the commandline. If you want to install raspiBackup manually execute the following steps:


User Rating: 5 / 5

Star ActiveStar ActiveStar ActiveStar ActiveStar Active

Following pages describe different usage scenarios and configurations. They should help to find the right usage configuration out of the various configuration options of raspiBackup. Later on these usage scenarios can be customized further. An overview of all option is available here. The different ways to restore a backup are described here.

All configurations which don't use a dd backup save an external rootfilesystem together with the SD boot partition. If the USB bootmode is used and no SD card is used any more the whole rootpartition is also saved.


Usage scenarios described:

1a. A Windows user wants to backup his Raspberry and restore it with windisk32imager on Windows.

1b. A Windows user has a 32GB SD card but uses only 12GB and 12GB should be saved only.

1c. A Windows user wants to use pishrink to create a minimal backup image.

2. Raspberry should be saved very fast. Backuppartition is a nfs mounted EXT4 partition which is provided by a Synology.

3. Raspberry should be saved on a Samba mounted filesystem, which is provided by a Windows box.

4. A snapshot should be saved because there are some major changes planned and it should be possible to revert quickly.

5. A USB boot system backup should include an additional partition.

6. Raspberry should be saved on a local USB stick or a local USB disk.


User Rating: 5 / 5

Star ActiveStar ActiveStar ActiveStar ActiveStar Active

Any regognition of raspiBackup development- and maintenance effort and support of raspiBackup is greatly appreciated. There exist following donation alternatives:

1) Paypal: The eMail listed on the Contact page is known by PayPal and everybody owning a Paypal account can donate.

2) Bitcoins: Address is 32MErztPzuKhN3YFEpmFtVLZTyxZ7zKPPt

3) Neither one: Just contact me per eMail (See Contact page) and we will find an alternative. For example I already got a donation in a good old letter.


Everybody who donates will be listed below. If you don't want this please let me know.


Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive

raspiBackup is developed primarily on a Linux desktop. But finally raspiBackup is tested on a real Raspberry. There exist various raspibian images on disk which are restrored with raspiBackup on a SD card and/or USB stick and then the new or changed functionality of raspiBackup ist tested manually.

At some point in time a new version of raspiBackup has to be published. Initially I tested a lot of different variants by hand which takes a long time and reduces the number of my SD cards.  Therefore I set up a Raspberry simulation environment on Linux. Now every new raspiBackup version is regression tested in the simulation environment. That's much faster and I don't have to buy new SD cards all the time any more.

On the following picture you can see a 3B Raspberry I use for tests together with various SD cards of different size and USB sticks.


User Rating: 5 / 5

Star ActiveStar ActiveStar ActiveStar ActiveStar Active

There exist three types of messages:

1) Informational  - Messagenumber ends with I

2) Warning - Messagenumber ends with W

3) Error - Messagenumber ends with E

Most errormessages of raspiBackup give detailed information about the root cause. Sometimes it's required to get additional information in order to get rid of them. raspiBackup has about 200 errormessages and it's so boring to explain all of them here. If you miss a message first use your search engine and serach for the message number. if you still don't find an answer add the message text in a comment at the end of the page and the message with more detailed explanations will be addded on this page. That way the most common raspiBackup messages will show up on this page.


Messages in the number range from 0-999 are written by raspiBackup. Messages from 1000-1999 are written by sample plugins. All other number ranges are custom plugin messages.

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive

Every new version of raspiBackup is regression tested before it's published. There are a lot of options and hard- and softwareenvironments possible which cannot be regression tested - unfortunately. Following page describes how the regressiontest is executed and which tests are executed.

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive

raspiBackup has some helper scrips which are available on github for download.

1) : Helps to do additional stuff before and after invocation of raspiBackup. The backuppartition is mounted already before starting raspiBackup and unmounted if it wasn't mounted when starting. Some basic bash scripting knowlege is required to customize the script for individual needs.

2) Check if a NFS server is online and start raspiBackup. Don't start raspiBackup if the server is offline. This script can be used out of the box. Some constants regarding the nfs server have to be customized.

3) This script allows to convert a tar or rsync backup which was created in normal backup mode into a dd image. pishrink is used to make sure the image is as small as possible. kmbach suggested to create this script. No customization of the script required.

4) THis script was created by raspiBackup user kmbach. He wanted to get an eMail at the end of eMail configuration is extracted from raspiBackup configuration file.

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive

raspiBackup creates a backup which contains all required information to restore a backup manually. User Micha wanted to restore a backup manually and kindly documented the steps in detail in a comment in German. I transleted his comments into English:

# manuel Restore:
# Manuel creation of partitions
sfdisk /dev/sdb < /backup/pi/pi-rsync-backup-20170812-134552/pi-backup.sfdisk

# MBR restore:
dd of=/dev/sdb if=/backup/pi/pi-rsync-backup-20170812-134552/pi-backup.mbr count=1

# Inform the operating system about partition table changes:
partprobe /dev/sdb

# format and mount Root-Partition
mkfs -t vfat /dev/sdb1
mkfs -t vfat /dev/sdb6
mkfs.ext4 /dev/sdb5
mkfs.ext4 /dev/sdb7

mkdir -p /mnt/sdb1
mkdir -p /mnt/sdb5
mkdir -p /mnt/sdb6
mkdir -p /mnt/sdb7

mount /dev/sdb1 /mnt/sdb1
mount /dev/sdb5 /mnt/sdb5
mount /dev/sdb6 /mnt/sdb6
mount /dev/sdb7 /mnt/sdb7

# udevadm settle waits for udevd to process the device creation events for all hardware devices, thus ensuring that any device nodes have been created successfully before proceeding:
udevadm settle

# rsync-Restore:
rsync --numeric-ids -aAHXv --exclude=/pi-backup.* /backup/pi/pi-rsync-backup-20170812-134552/mmcblk0p1/ /mnt/sdb1
rsync --numeric-ids -aAHXv --exclude=/pi-backup.* /backup/pi/pi-rsync-backup-20170812-134552/mmcblk0p5/ /mnt/sdb5
rsync --numeric-ids -aAHXv --exclude=/pi-backup.* /backup/pi/pi-rsync-backup-20170812-134552/mmcblk0p6/ /mnt/sdb6
rsync --numeric-ids -aAHXv --exclude=/pi-backup.* /backup/pi/pi-rsync-backup-20170812-134552/mmcblk0p7/ /mnt/sdb7

# Fake-HW-Clock patch:
# logItem "Updating hw clock"
echo $(date -u +"%Y-%m-%d %T") > /mnt/sdb7/etc/

# logItem "Syncing filesystems"

# umount all recovery-folders:
umount /mnt/sdb*

# eject SD-card
eject /dev/sdb

# cleanup mounts
rmdir /mnt/sdb*

# Plugin SD-card in Pi and test
# Enjoy :-)