این مطلب روال کامل تهیه پشتیبان از وب سایتی که روی سرور لینوکس میزبانی شده است و از پایگاه داده MySQL استفاده می‌کند را پوشش می‌دهد.

ابتدا پوشه‌های زیر را ایجاد کنید.

$ mkdir /home/backups
$ mkdir /home/backups/files
$ mkdir /home/backups/databases

تهیه پشتیبان از پایگاه داده ها

اسکریپت زیر را در مسیر home/backups/databases/backup-databases.sh ایجاد کنید:

#! /bin/bash

TIMESTAMP=$(date +"%F")
BACKUP_DIR="/home/backups/databases/$TIMESTAMP"
MYSQL_USER="root"
MYSQL=/usr/bin/mysql
MYSQL_PASSWORD="PASSWORD"
MYSQLDUMP=/usr/bin/mysqldump

mkdir -p "$BACKUP_DIR"

databases=`$MYSQL --user=$MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema)"`

for db in $databases; do
  $MYSQLDUMP --force --opt --user=$MYSQL_USER -p$MYSQL_PASSWORD --databases $db | gzip > "$BACKUP_DIR/$db.gz"
done

در فایل فوق رمز عبرو کاربر root برای mysql را تعیین کنید. همچنین دسترسی اجرا را به فایل فوق بدهید:

$ chmod +x /home/backups/databases/backup-databases.sh

سپس زمانبندی اجرای آن را در cron jobs ست کنید. به عنوان مثال هر شب ساعت 00:00

0 0 * * * /home/backups/databases/backup-databases.sh > /dev/null 2>&1

تهیه پشتیبان از فایل‌ها

در صورتی که نیاز به تهیه پشتیبان از فایل‌ها باشد. اسکریپت زیر را در home/backups/databases/backup-files.sh ایجاد کنید.

#!/bin/bash
TIMESTAMP=$(date +"%F")
BACKUP_DIR="/home/backups/files/$TIMESTAMP"

echo "Backup will save in $BACKUP_DIR" && \
echo "Start backup files ..." && \
mkdir -p "$BACKUP_DIR" && \
cp /var/www/html $BACKUP_DIR -r && \
echo "Backup complited."

دقت کنید که var/www/html را با مسیری که باید از آن پشتیبان تهیه شود عوض کنید. سپس به این فایل نیز دسترسی اجرا میدهید و آن را در cron jobs ست می کنیم.

ارسال فایل ها به سرور دیگر

بعد از تهیه پشتیبان لازم است فایل‌های پشتیبان گرفته شده به سرور دیگری منتقل شوند. برای اینکار از lsync استفاده می کنیم.

برچسب ها: 

افزودن نظر جدید