לא מזמן יצא לי לכתוב סקריפט 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 ולו רק בשביל מצבים כאלו.
תגובה אחת
תודה רבה על הסקריפט
כשרוצים לשחזר איך משחזרים?