Powrót do bloga
Styczeń 13, 2026Poradniki

Jak skonfigurować automatyczne kopie zapasowe na serwerze Linux

Poradnik krok po kroku dotyczący ustawiania automatycznych skryptów kopii zapasowych przy użyciu zadań cron dla plików i baz danych.

Jak skonfigurować automatyczne kopie zapasowe na serwerze Linux

Regularne kopie zapasowe są niezbędne do ochrony Twoich danych. Ten poradnik pokaże Ci, jak skonfigurować automatyczne kopie zapasowe dla plików i baz danych przy użyciu skryptów shell i zadań cron na serwerze Hiddence.

Tworzenie skryptu kopii zapasowej

Utwórz skrypt kopii zapasowej dla swoich plików:

bash
sudo nano /usr/local/bin/backup.sh
#!/bin/bash
BACKUP_DIR="/backups"
SOURCE_DIR="/var/www"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/backup_$DATE.tar.gz $SOURCE_DIR
find $BACKUP_DIR -name "backup_*.tar.gz" -mtime +7 -delete
sudo chmod +x /usr/local/bin/backup.sh

Konfiguracja zadania Cron

Harmonogram automatycznych kopii zapasowych przy użyciu cron:

bash
sudo crontab -e
# Dodaj tę linię, aby uruchamiać kopię zapasową codziennie o 2 rano
0 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1

Skrypt kopii zapasowej bazy danych

Utwórz skrypt dla kopii zapasowych bazy danych MySQL:

bash
sudo nano /usr/local/bin/db_backup.sh
#!/bin/bash
BACKUP_DIR="/backups/db"
DB_NAME="your_database"
DB_USER="root"
DB_PASS="your_password"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
mysqldump -u $DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/db_backup_$DATE.sql
gzip $BACKUP_DIR/db_backup_$DATE.sql
find $BACKUP_DIR -name "db_backup_*.sql.gz" -mtime +7 -delete
sudo chmod +x /usr/local/bin/db_backup.sh

Zdalne przechowywanie kopii zapasowych

Kopiuj kopie zapasowe na zdalny serwer przy użyciu rsync lub SCP:

bash
#!/bin/bash
BACKUP_DIR="/backups"
REMOTE_HOST="backup-server.com"
REMOTE_USER="backup"
REMOTE_DIR="/backups"
rsync -avz -e ssh $BACKUP_DIR/ $REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/

Polityka przechowywania kopii zapasowych

Skonfiguruj retencję, aby przechowywać kopie zapasowe przez określony czas:

bash
# Przechowuj codzienne kopie przez 7 dni
find /backups -name "backup_*.tar.gz" -mtime +7 -delete

# Przechowuj tygodniowe kopie przez 4 tygodnie
find /backups/weekly -name "backup_*.tar.gz" -mtime +28 -delete

# Przechowuj miesięczne kopie przez 12 miesięcy
find /backups/monthly -name "backup_*.tar.gz" -mtime +365 -delete

Najlepsze praktyki tworzenia kopii zapasowych

  • Regularnie testuj przywracanie kopii zapasowych
  • Przechowuj kopie zapasowe w wielu lokalizacjach
  • Szyfruj wrażliwe dane w kopiach zapasowych
  • Monitoruj logi kopii zapasowych pod kątem błędów
  • Dokumentuj swoje procedury tworzenia kopii zapasowych
  • Skonfiguruj powiadomienia o niepowodzeniach kopii zapasowych