איך לבצע גיבוי אוטומטי לדאטבייסים ישירות ל-S3 בענן של amazon .

במדריך הקצר הזה, אני מראה צורה פשוטה באמצעות cron  יחד עם סקריפט bash שבה אפשר להעלות אוטומטית גיבוי של כל הדאטאבייסים אל s3 של אמזון.

אני מניח ש :

אז הנה הסקריפט :

שימו לב שאתם מחליפים את הקטעים הרלוונטים (שמות משתמשים, סיסמאות, שם ה-Bucket ב-s3 וכדומה)

לא לשכוח להפוך את הקובץ לפעיל.


#!/bin/bash
DB_BACKUP="/home/eyal/db_backups/`date +%Y-%m-%d`"
DB_USER="YourMySqlAdminUserName"
DB_PASSWD="YourMySqlAdminPassword"
HN=`hostname | awk -F. '{print $1}'`
# Create the backup directory
mkdir -p $DB_BACKUP
# Remove backups older than 10 days
find /home/YOUR_FOLDER/db_backups/ -maxdepth 1 -type d -mtime +10 -exec rm -rf {} \;
# Backup each database on the system
for db in $(mysql --user=$DB_USER --password=$DB_PASSWD -e 'show databases' -s $
do mysqldump --user=YourMySqlAdminUserName --password=YourMySqlAdminPassword --events --opt --single-trans$
done
sudo aws s3 sync /home/YOUR_FOLDER/db_backups s3://YOUR_S3_BUCKET_NAME/ --delete

והנה ההגדרה של ה-cron job :

 

SHELL=/bin/bash
HOME=/home/eyal
0 4 * * * /bin/bash BackupMyDBs.sh >> db_backup_log.log

 

בהצלחה!

3 תגובות בנושא “איך לבצע גיבוי אוטומטי לדאטבייסים ישירות ל-S3 בענן של amazon .”

  1. נראה שחסר חלק בסקריפט שעושה משהו עם הפלט של mysqldump.
    אולי כדאי להוסיף שם הפניה של הפלט לקובץ.

    או יותר טוב, pipe ל gzip ואז הפניה לקובץ.

    עמי

    1. שלום

      בזמן שהעתקתי לאתר את הסקריפט, מחקתי את המשתנים משם, אתה צודק.

      לגבי ההערה עם הפלט – הפלט של ה-MysqlDump יוצר את קבצי הגיבוי – קבצי sql.
      וכיוון שהשורה האחרונה בסקריפט היא sync של aws – אזי זה בדיוק מה שנרצה שיקרה עם הפלט – שהוא יעלה אוטומטית ל-S3

סגור לתגובות.