Пост

Резервное копирование Raspberry Pi

Регулярное резервное копирование Raspberry Pi защищает ваши данные и настройки от потери. Это особенно важно для проектов, над которыми вы работали долгое время, или для производственных систем. В этом руководстве мы рассмотрим различные методы создания резервных копий вашего Raspberry Pi, от простого копирования файлов до создания полных образов SD-карты.

Резервное копирование Raspberry Pi

Описание/Введение: Регулярное резервное копирование Raspberry Pi защищает ваши данные и настройки от потери. Это особенно важно для проектов, над которыми вы работали долгое время, или для производственных систем. В этом руководстве мы рассмотрим различные методы создания резервных копий вашего Raspberry Pi, от простого копирования файлов до создания полных образов SD-карты.

Ручное копирование важных файлов

Самый простой метод резервного копирования важных данных.

  1. Создайте директорию для резервных копий на внешнем накопителе:
    1
    
    sudo mkdir /mnt/backup
    
  2. Смонтируйте внешний USB-накопитель:
    1
    
    sudo mount /dev/sda1 /mnt/backup
    
  3. Скопируйте важные директории:
    1
    2
    
    sudo cp -r /home/pi /mnt/backup/
    sudo cp -r /etc /mnt/backup/
    
  4. Создайте резервную копию установленных пакетов:
    1
    
    dpkg --get-selections > /mnt/backup/installed_packages.txt
    

Создание полного образа SD-карты

Создание полной копии SD-карты для быстрого восстановления.

  1. Определите устройство SD-карты:
    1
    
    lsblk
    

    Результат выполнения команды lsblk с подключенной SD-картой

  2. Запустите создание образа (замените /dev/sdX на ваше устройство):
    1
    
    sudo dd if=/dev/sdX of=/mnt/backup/raspberrypi_backup.img bs=4M status=progress
    
  3. Сожмите образ для экономии места:
    1
    
    sudo pv /mnt/backup/raspberrypi_backup.img | gzip > /mnt/backup/raspberrypi_backup.img.gz
    

Использование rsync для инкрементного резервного копирования

Эффективное резервное копирование с сохранением изменений.

  1. Установите rsync если не установлен:
    1
    
    sudo apt install rsync
    
  2. Создайте скрипт резервного копирования:
    1
    
    nano ~/backup_script.sh
    
  3. Добавьте содержимое скрипта:
    1
    2
    3
    4
    5
    6
    
    #!/bin/bash
    SOURCE="/"
    DESTINATION="/mnt/backup/rsync_backup/"
    EXCLUDE_FILE="/home/pi/backup_exclude.txt"
        
    rsync -avh --progress --delete --exclude-from=$EXCLUDE_FILE $SOURCE $DESTINATION
    
  4. Создайте файл исключений:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    cat > /home/pi/backup_exclude.txt << EOF
    /dev/*
    /proc/*
    /sys/*
    /tmp/*
    /run/*
    /mnt/*
    /media/*
    /lost+found
    EOF
    

Автоматизация резервного копирования с cron

Настройка автоматического регулярного резервного копирования.

  1. Откройте crontab для редактирования:
    1
    
    crontab -e
    
  2. Добавьте задание для ежедневного резервного копирования в 2:00:
    1
    
    0 2 * * * /home/pi/backup_script.sh
    
  3. Для еженедельного резервного копирования по воскресеньям:
    1
    
    0 2 * * 0 /home/pi/full_backup_script.sh
    

Резервное копирование с использованием tar

Создание сжатых архивов файловой системы.

  1. Создайте полный бэкап корневой файловой системы:
    1
    2
    3
    4
    5
    6
    7
    
    sudo tar -czpf /mnt/backup/full_backup_$(date +%Y%m%d).tar.gz \
    --exclude=/mnt/backup \
    --exclude=/proc \
    --exclude=/sys \
    --exclude=/dev \
    --exclude=/tmp \
    /
    
  2. Создайте бэкап только домашней директории:
    1
    
    tar -czpf /mnt/backup/home_backup_$(date +%Y%m%d).tar.gz /home/pi
    

Резервное копирование в облако

Настройка резервного копирования в облачные хранилища.

  1. Установите rclone для работы с облачными хранилищами:
    1
    
    sudo apt install rclone
    
  2. Настройте подключение к облачному хранилищу:
    1
    
    rclone config
    
  3. Создайте скрипт для загрузки бэкапа в облако:
    1
    2
    
    #!/bin/bash
    rclone copy /mnt/backup/ remote:backups/raspberrypi -P
    

Резервное копирование базы данных

Специальное резервное копирование для баз данных.

  1. Резервное копирование MySQL/MariaDB:
    1
    
    mysqldump -u root -p --all-databases > /mnt/backup/mysql_backup_$(date +%Y%m%d).sql
    
  2. Резервное копирование PostgreSQL:
    1
    
    pg_dumpall > /mnt/backup/postgresql_backup_$(date +%Y%m%d).sql
    

Восстановление из резервной копии

Процедуры восстановления данных из бэкапов.

Восстановление отдельных файлов из tar:

1
tar -xzf /mnt/backup/home_backup_20231201.tar.gz -C /tmp/restore

Восстановление полного образа SD-карты:

1
sudo dd if=/mnt/backup/raspberrypi_backup.img of=/dev/sdX bs=4M status=progress

Восстановление базы данных:

1
mysql -u root -p < /mnt/backup/mysql_backup_20231201.sql

Проверка целостности резервных копий

Регулярная проверка ваших бэкапов.

  1. Проверка целостности tar архивов:
    1
    
    tar -tzf /mnt/backup/home_backup_20231201.tar.gz > /dev/null
    
  2. Проверка целостности образов:
    1
    
    md5sum /mnt/backup/raspberrypi_backup.img
    
  3. Проверка базы данных:
    1
    
    head -n 10 /mnt/backup/mysql_backup_20231201.sql
    

Мониторинг резервного копирования

Настройка уведомлений о статусе бэкапов.

  1. Модифицируйте скрипт для отправки email уведомлений:
    1
    2
    3
    4
    5
    6
    7
    
    #!/bin/bash
    backup_script.sh
    if [ $? -eq 0 ]; then
        echo "Backup completed successfully" | mail -s "Backup Status" your@email.com
    else
        echo "Backup failed" | mail -s "Backup Status" your@email.com
    fi
    
  2. Установите почтовый клиент:
    1
    
    sudo apt install mailutils
    

Ротация резервных копий

Автоматическое удаление старых бэкапов.

  1. Добавьте в скрипт очистку старых файлов:
    1
    2
    3
    
    # Удалить бэкапы старше 30 дней
    find /mnt/backup/ -name "*.tar.gz" -mtime +30 -delete
    find /mnt/backup/ -name "*.img" -mtime +30 -delete
    

Теперь у вас есть надежная система резервного копирования для вашего Raspberry Pi. Регулярное создание бэкапов защитит ваши данные и настройки от непредвиденных ситуаций и позволит быстро восстановить систему в случае сбоя.

Авторский пост защищен лицензией CC BY 4.0 .

© evdokimoff. Некоторые права защищены.

Использует тему Chirpy для Jekyll