- Автор темы
- Администратор
- Модер.
- Команда форума
- #1
Прежде чем углубиться в сценарий, давайте обрисуем основные задействованные компоненты:
Учетные данные базы данных:
DB_USER: ваше имя пользователя MySQL.
DB_PASSWORD: ваш пароль MySQL.
DB_NAME: имя базы данных, для которой требуется создать резервную копию.
Каталог резервного копирования:
BACKUP_DIR: каталог, в котором будут храниться ваши резервные копии.
Временная метка:
TIMESTAMP: временная метка, добавляемая к имени файла резервной копии, чтобы гарантировать
Автоматизация и планирование
Чтобы автоматизировать этот сценарий, вы можете использовать такие инструменты, как cron, в Unix-подобных системах. Например, чтобы запланировать ежедневное резервное копирование, добавьте в crontab следующую строку:
Учетные данные базы данных:
DB_USER: ваше имя пользователя MySQL.
DB_PASSWORD: ваш пароль MySQL.
DB_NAME: имя базы данных, для которой требуется создать резервную копию.
Каталог резервного копирования:
BACKUP_DIR: каталог, в котором будут храниться ваши резервные копии.
Временная метка:
TIMESTAMP: временная метка, добавляемая к имени файла резервной копии, чтобы гарантировать
Bash:
#!/bin/bash
# Database credentials
DB_USER="your_username"
DB_PASSWORD="your_password"
DB_NAME="your_database_name"
# Backup directory
BACKUP_DIR="/path/to/backup/directory"
# Timestamp (to create unique backup filenames)
TIMESTAMP=$(date +"%Y%m%d%H%M%S")
# Create backup directory if it doesn't exist
mkdir -p $BACKUP_DIR
# Backup the MySQL database
mysqldump -u$DB_USER -p$DB_PASSWORD $DB_NAME > $BACKUP_DIR/$DB_NAME-$TIMESTAMP.sql
# Compress the backup
gzip $BACKUP_DIR/$DB_NAME-$TIMESTAMP.sql
# Optionally, you can remove backups older than a certain period
# find $BACKUP_DIR -type f -name "*.gz" -mtime +7 -exec rm {} \;
echo "Backup completed: $BACKUP_DIR/$DB_NAME-$TIMESTAMP.sql.gz"
Автоматизация и планирование
Чтобы автоматизировать этот сценарий, вы можете использовать такие инструменты, как cron, в Unix-подобных системах. Например, чтобы запланировать ежедневное резервное копирование, добавьте в crontab следующую строку:
0 0 * * * /path/to/your/script.sh