bash backup script

לא מזמן יצא לי לכתוב סקריפט BASH שיעשה גיבוי לאחד ממסדי הנתונים שלי. למי שלא יודע מה זה bash script או bash בכלל, מדובר על shell שנמצאת בכל לינוקס ומקינטוש (אפשר להתקין אותה גם על חלונות למי שבאמת מזוכיסט). ה-shell הזו מאפשרת לכתוב סקריפטים ותוכנות כדי לתחזק את השרת שלהם (בין שאר הדברים).
אני לא sysadmin אבל כמתכנת PHP אני מתמצא היטב בלינוקס ומבצע עבודות IT כשאני צריך. אחת מהעבודות האלו היא לכתוב סקריפט גיבוי לאחד מהאתרים הגדולים שלי. בניגוד למיליוני הסקריפטים שיש ברשת, אני רציתי לכתוב משהו פשוט מאד – רק סקריפט שיעשה גיבוי עם התאריך, זה הכל.

הנה הסקריפט:


#!/bin/bash
myusername="MYSQL USERNAME"
mypassword="MYSQL PASSWORD"
mydatabase="MY SQL DATABASE"
myfilename="mysqlbackup_launchpoker$mydatabase_$(date +%Y_%m_%d).gz"

mysqldump -u$myusername -p$mypassword -f  $mydatabase |gzip  > $myfilename

echo "finished dumping on $(date)"


את הקובץ הזה שומרים בשם כלשהו (כמו למשל backup.sh) לא נשכח לשנות את ההרשאה לקובץ על מנת שנוכל להריץ אותו:


chmod 755 backup.sh

לאחר שהענקנו הרשאת הרצה לקובץ, אנו בודקים אותו באמצעות backup.sh/. הגיבוי נוצר באותה תיקיה שבה הקובץ נשמר.

אחרי כן אפשר לשים את הקריאה לסקריפט ב-crontab. מקלידים


sudo crontab -e

ואז מכניסים את ה-cron, למשל אצלי רציתי גיבוי יומי שיתקיים כל יום בשעה ארבע וחצי בבוקר ולכן הכנסתי את ה-cron הבא:


30 4 * * * /home/ran/backups/backup.sh 2>&1 >> /home/ran/backups/backup.log


הסינטקס הזה גם מדפיס שגיאות/הודעות ב-backup.log שבתיקיה שלי.

אם אתם משתמשים ב-cron מאד חשוב שה-myfilename יכלול את שם הנתיב המלא שבו יש הרשאות לכתיבה.

ישנו מדריך ממש טוב בעברית ב-penguin.co.il לתכנות bash לכל המעוניינים. די שווה לדעת ולו מעט bash ולו רק בשביל מצבים כאלו.

כדאי תמיד להשאר מעודכנים! הרשמו לעדכונים של האתר במייל! - המייל יישלח כל יום ראשון בעשר בבוקר ויכיל אך ורק את המאמרים שהתפרסמו באינטרנט ישראל. ללא ספאם, ללא הצפות, ללא בלגנים. 🙂

אהבתם? לא אהבתם? דרגו!

לא אהבתי בכלללא אהבתיבסדראהבתיאהבתי מאוד (אין הצבעות)


אל תשארו מאחור! יש עוד מה ללמוד!

הצטרפו לעדכונים!

העדכונים נשלחים אך ורק כאשר האתר מתעדכן.

רן בר-זיק

רן בר-זיקכותב כל המאמרים באינטרנט ישראל, מפתח אינטרנט מנוסה במגוון שפות ופלטפורמות.
ניתן ליצור איתי קשר באמצעות:
כתובת המייל שלי: info@internet-israel.com.
פרופיל הלינקדאין שלי

הטוויטר שלי

פרופיל הפייסבוק שלי

אני תמיד שמח לייעץ ולעזור, אך בשל עומס הפניות הרב, אני לא תמיד מצליח לענות במהירות.