การเขียน script เพื่อ backup mariadb database บน ubuntu

การสร้างสคริปต์เพื่อสำรองฐานข้อมูล MariaDB บน Ubuntu นั้น สามารถทำได้โดยใช้คำสั่ง `mysqldump` ซึ่งเป็นเครื่องมือที่มาพร้อมกับ MariaDB และ MySQL สำหรับการสำรองข้อมูลฐานข้อมูล โดยทั่วไปแล้ว สคริปต์นี้สามารถรันโดยใช้ cron jobs เพื่อทำงานอัตโนมัติในช่วงเวลาที่กำหนด

ด้านล่างนี้คือตัวอย่างสคริปต์ Bash ที่คุณสามารถใช้เพื่อสำรองข้อมูล MariaDB:

1. สร้างไฟล์สคริปต์ใหม่ เช่น `backup_mariadb.sh`

“`bash
#!/bin/bash

# กำหนดค่าวันที่ปัจจุบัน
DATE=$(date +”%Y%m%d%H%M”)

# ตั้งค่าชื่อฐานข้อมูล, ผู้ใช้, และรหัสผ่าน
DB_NAME=”your_database_name”
DB_USER=”your_database_user”
DB_PASS=”your_database_password”

# ตั้งค่าไดเรกทอรีสำหรับเก็บไฟล์สำรอง
BACKUP_DIR=”/path/to/backup/directory”

# ตั้งค่าไฟล์สำรอง
BACKUP_FILE=”$BACKUP_DIR/$DB_NAME-$DATE.sql”

# สร้างไดเรกทอรีสำรองถ้ายังไม่มี
mkdir -p $BACKUP_DIR

# ใช้คำสั่ง mysqldump เพื่อสำรองฐานข้อมูล
mysqldump -u $DB_USER -p$DB_PASS $DB_NAME > $BACKUP_FILE

# ตรวจสอบว่าสำรองข้อมูลสำเร็จหรือไม่
if [ $? -eq 0 ]; then
echo “Database backup successful: $BACKUP_FILE”
else
echo “Database backup failed!”
exit 1
fi

# ลบไฟล์สำรองที่เก่ากว่า 7 วัน
find $BACKUP_DIR -type f -name “*.sql” -mtime +7 -exec rm {} \;

echo “Old backups deleted.”
“`

2. ทำให้ไฟล์สคริปต์นี้สามารถรันได้โดยการตั้งสิทธิ์ให้ไฟล์เป็น executable:

“`bash
chmod +x backup_mariadb.sh
“`

3. ทดสอบการรันสคริปต์เพื่อดูว่าทำงานได้ถูกต้องหรือไม่:

“`bash
./backup_mariadb.sh
“`

4. ตั้งค่า cron job เพื่อรันสคริปต์นี้อัตโนมัติในช่วงเวลาที่ต้องการ ตัวอย่างเช่น เพื่อรันทุกคืนเวลา 2:00 น.:

“`bash
crontab -e
“`

เพิ่มบรรทัดนี้ในไฟล์ crontab:

“`bash
0 2 * * * /path/to/backup_mariadb.sh
“`

ตัวอย่างสคริปต์นี้จะสำรองฐานข้อมูลในรูปแบบไฟล์ `.sql` โดยจะเก็บไว้ในไดเรกทอรีที่กำหนด และจะลบไฟล์สำรองที่เก่ากว่า 7 วันโดยอัตโนมัติ หากต้องการเปลี่ยนแปลงค่าใด ๆ เช่น ชื่อฐานข้อมูลหรือไดเรกทอรีสำรอง คุณสามารถแก้ไขได้ตามความต้องการ