Резервное копирование Raspberry Pi
Регулярное резервное копирование Raspberry Pi защищает ваши данные и настройки от потери. Это особенно важно для проектов, над которыми вы работали долгое время, или для производственных систем. В этом руководстве мы рассмотрим различные методы создания резервных копий вашего Raspberry Pi, от простого копирования файлов до создания полных образов SD-карты.
Резервное копирование Raspberry Pi
Описание/Введение: Регулярное резервное копирование Raspberry Pi защищает ваши данные и настройки от потери. Это особенно важно для проектов, над которыми вы работали долгое время, или для производственных систем. В этом руководстве мы рассмотрим различные методы создания резервных копий вашего Raspberry Pi, от простого копирования файлов до создания полных образов SD-карты.
Ручное копирование важных файлов
Самый простой метод резервного копирования важных данных.
- Создайте директорию для резервных копий на внешнем накопителе:
1
sudo mkdir /mnt/backup - Смонтируйте внешний USB-накопитель:
1
sudo mount /dev/sda1 /mnt/backup - Скопируйте важные директории:
1 2
sudo cp -r /home/pi /mnt/backup/ sudo cp -r /etc /mnt/backup/
- Создайте резервную копию установленных пакетов:
1
dpkg --get-selections > /mnt/backup/installed_packages.txt
Создание полного образа SD-карты
Создание полной копии SD-карты для быстрого восстановления.
- Определите устройство SD-карты:
1
lsblk
- Запустите создание образа (замените /dev/sdX на ваше устройство):
1
sudo dd if=/dev/sdX of=/mnt/backup/raspberrypi_backup.img bs=4M status=progress
- Сожмите образ для экономии места:
1
sudo pv /mnt/backup/raspberrypi_backup.img | gzip > /mnt/backup/raspberrypi_backup.img.gz
Использование rsync для инкрементного резервного копирования
Эффективное резервное копирование с сохранением изменений.
- Установите rsync если не установлен:
1
sudo apt install rsync
- Создайте скрипт резервного копирования:
1
nano ~/backup_script.sh
- Добавьте содержимое скрипта:
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
- Создайте файл исключений:
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
Настройка автоматического регулярного резервного копирования.
- Откройте crontab для редактирования:
1
crontab -e - Добавьте задание для ежедневного резервного копирования в 2:00:
1
0 2 * * * /home/pi/backup_script.sh
- Для еженедельного резервного копирования по воскресеньям:
1
0 2 * * 0 /home/pi/full_backup_script.sh
Резервное копирование с использованием tar
Создание сжатых архивов файловой системы.
- Создайте полный бэкап корневой файловой системы:
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 \ /
- Создайте бэкап только домашней директории:
1
tar -czpf /mnt/backup/home_backup_$(date +%Y%m%d).tar.gz /home/pi
Резервное копирование в облако
Настройка резервного копирования в облачные хранилища.
- Установите rclone для работы с облачными хранилищами:
1
sudo apt install rclone
- Настройте подключение к облачному хранилищу:
1
rclone config
- Создайте скрипт для загрузки бэкапа в облако:
1 2
#!/bin/bash rclone copy /mnt/backup/ remote:backups/raspberrypi -P
Резервное копирование базы данных
Специальное резервное копирование для баз данных.
- Резервное копирование MySQL/MariaDB:
1
mysqldump -u root -p --all-databases > /mnt/backup/mysql_backup_$(date +%Y%m%d).sql
- Резервное копирование 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
Проверка целостности резервных копий
Регулярная проверка ваших бэкапов.
- Проверка целостности tar архивов:
1
tar -tzf /mnt/backup/home_backup_20231201.tar.gz > /dev/null
- Проверка целостности образов:
1
md5sum /mnt/backup/raspberrypi_backup.img - Проверка базы данных:
1
head -n 10 /mnt/backup/mysql_backup_20231201.sql
Мониторинг резервного копирования
Настройка уведомлений о статусе бэкапов.
- Модифицируйте скрипт для отправки 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
- Установите почтовый клиент:
1
sudo apt install mailutils
Ротация резервных копий
Автоматическое удаление старых бэкапов.
- Добавьте в скрипт очистку старых файлов:
1 2 3
# Удалить бэкапы старше 30 дней find /mnt/backup/ -name "*.tar.gz" -mtime +30 -delete find /mnt/backup/ -name "*.img" -mtime +30 -delete
Теперь у вас есть надежная система резервного копирования для вашего Raspberry Pi. Регулярное создание бэкапов защитит ваши данные и настройки от непредвиденных ситуаций и позволит быстро восстановить систему в случае сбоя.
