מוקדם יותר השבוע, בעלי אתרי אינטרנט עם אתרים שמתארחים בשירות בשם Cornerhost קיבלו פחד גדול: נראה שהשירות נסגר ללא הודעה מוקדמת, וכןהבעלים שלהם לא נמצא בשום מקום. מפחיד, נכון? אלא אם כן אתה מגבה את אתר האינטרנט שלך באופן קבוע, כלומר. הנה איך להגדיר גיבויים אוטומטיים לאתר האינטרנט שלך, כך שאם הגרוע ביותר יגיע, הנתונים שלך יישארו בבטחה בידיים שלך.
אם אתה משלם עבור אירוח אתרים כדי להפעיל כל סוג של יישום מבוסס אינטרנט - מהבלוג שלך בוורדפרס ועד אאתר לוחית שםאֶלשירות שיתוף קבציםאֶלארכיון נתונים של מדיה חברתית-עליך לגבות את נתוני שרת האינטרנט שלך באותו אופן שבו אתה מגבה את נתוני המחשב שלך. באתרי אינטרנט מונעי מסד נתונים, ישנם שני סוגים של נתונים שברצונך לשמר ולשחזר במקרה של אסון: הקבצים המרכיבים את האתר שלך (PHP/Perl/Python, JavaScript, CSS וכו'), והתוכן של מסד הנתונים שלך. יתר על כן, כל מערכת גיבוי טובה צריכה ליצור עותק מקומי וגם עותק מרוחק של הנתונים המגובים.
אני מפעיל כמה אתרים ויישומים מונעי מסד נתונים, כולל הבלוג הזה, כך שמערכת הגיבוי שלי צריכה להיות יציבה. הנה איך אני מגדיר את זה.
שיטה זו מניחה מספר דברים:
אתה מפעיל את אאתר אינטרנט מבוסס LAMP(Linux, Apache, MySQL ו-PHP/Perl/Python).
יש לך גישה בשורת הפקודה לשרת האינטרנט שלך באמצעות SSH.
אתה יודע איך ליצור תיקיות חדשות והרשאות chmod על קבצים.
אתה מרגיש בנוח עם הפעלת סקריפטים של bash בשורת הפקודה בשרת שלך והגדרת משימות cron.
אתה יודע היכן מאוחסנים כל הקבצים של שרת האינטרנט שלך, אילו מסדי נתונים אתה צריך לגבות, באיזה שם משתמש וסיסמה אתה משתמש כדי להיכנס ל-MySQL.
כדי לקבל גיבוי נתונים מרחוק, אתה צריך גישה לשרת אחר הזמין דרך SSH בנוסף לשרת האתר שלך. ביקשתי מחבר שלי חשבון בשרת שלו לאחסון כמה קבצי גיבוי והוא התחייב בחביבות. אם אין לך חבר עם שרת אצל מארח אחר, אתה יכול להפעיל שרת תמידי בבית ולחזור לשם. אני מעדיף שלא יהיה מחשב דלוק כל הזמן בבית שלי, שבו מהירויות רוחב הפס יכולות להיות איטיות, אז אני ממליץ למצוא חבר לגבות אליו (ותוכל להציע לחבר שלך את אותה נימוס).
כל המערכות עוברות? בואו להגדיר את מערכת הגיבוי שלכם.
ראשית: גיבוי מקומי
על מנת לגבות את אתר האינטרנט שלך, הסקריפט שלך צריך לגבות שני דברים: כל הקבצים המרכיבים את האתר וכל הנתונים במסד הנתונים שלך. בסכימה זו אינך מגבה את דפי ה-HTML שסקריפטי ה-PHP או ה-PERL שלך יוצרים; אתה מגבה את קוד המקור PHP או PERL עצמו, הניגש לנתונים במסד הנתונים שלך. בדרך זו אם האתר שלך יתפוצץ, אתה יכול לשחזר אותו על מארח חדש והכל יעבוד כמו שהוא עובד עכשיו.
ראשית, SSH לתוך שרת האינטרנט שלך, ובספריית הבית שלך, צור תיקייה בשםbackups
. בתוך תיקיה זו, צור קובץ בשםbackup.sh
. לאחר מכן, צור שם תיקיהfiles
.
כך אמורה להיראות התוצאה:
your_home_directory/|+ - backups/ | + - backup.sh | + - files/
הקובץ שאכפת לנו ממנו כרגע הואbackup.sh
. קובץ זה יהיה הסקריפט שדוחס את הנתונים שלך ושומר אותם ב-files
.
התסריט שאני מריץ מבוסס במידה רבה על דוגמה שמצאתי עליההוויקי של ה- How-To Geek. הנה קוד המקור שלbackup.sh
שמטפל בקבצים ובבסיס הנתונים של smarterware.org:
#!/bin/shTHESITE="smarterware.org"THEDB="my_database_name"THEDBUSER="my_database_user"THEDBPW="my_database_password"THEDATE=`date +%d%m%y%H%M`mysqldump -u $THEDBUSER -p${THEDBPW} $THEDB | gzip > /var/www/vhosts/$THESITE/backups/files/dbbackup_${THEDB}_${THEDATE}.bak.gztar czf /var/www/vhosts/$THESITE/backups/files/sitebackup_${THESITE}_${THEDATE}.tar -C / var/www/vhosts/$THESITE/httpdocsgzip /var/www/vhosts/$THESITE/backups/files/sitebackup_${THESITE}_${THEDATE}.tarfind /var/www/vhosts/$THESITE/backups/files/site* -mtime +5 -exec rm {} \;find /var/www/vhosts/$THESITE/backups/files/db* -mtime +5 -exec rm {} \;
העתק והדבק את קוד המקור הזה לתוך שלךbackup.sh
קוֹבֶץ. כדי להריץ בהצלחה את הסקריפט הזה בהגדרה דומה לשלי, בשורות 3 עד 7, עליך להחליף את smarterware.org, my_database_name, my_database_user ו-my_database_password בערכים הנכונים עבור אתר האינטרנט שלך.
גרסה זו של הסקריפט מניחה שתי הנחות לגבי מיקומי קבצים. בשרת האינטרנט שלי (ובהרבה, אבל לא כל ההגדרות), ספריית הבית שלי היא נתיב שנראה כך:/var/www/vhosts/example.com/
(כאשר example.com הוא דומיין אתר האינטרנט שלך). כל הקבצים הציבוריים הנגישים לאינטרנט נמצאים ב/var/www/vhosts/example.com/httpdocs/
(כאשר example.com הוא דומיין אתר האינטרנט שלך).
נתיב הקובץ באתר האינטרנט שלך עשוי להשתנות. אם כן, בקוד המקור של הסקריפט, החלף/var/www/vhosts/$THESITE/backups/
עם הנתיב למיקום תיקיית הגיבויים שלך, והחלף/var/www/vhosts/$THESITE/httpdocs/
עם מיקום הקבצים הנגישים לאינטרנט של האתר שלך.
בואו נעבור דרך מה התסריט הזה עושה. לאחר הגדרת כמה משתנים בשורות 3 עד 7, שורה 9 פועלת אmysqldump
של כל הנתונים במסד הנתונים הנקובים בשורה 4, אחסון אותם בארכיון ושמירתם ב-files
ספרייה באמצעות שם קובץ שנראה כמוdbbackup_example.com_1402120101.bak.gz.tar
. שורה 11 ו-12 מאחסנות את קובצי קוד המקור של האתר בארכיוןhttpdocs
ספרייה, ואחסוןם ב-files
ספרייה, באמצעות שם קובץ שנראה כמוsitebackup_example.com_1402120101.tar
. שימו לב ששני שמות הקבצים הללו כוללים את התאריך, כך שתוכלו לראות מתי הגיבוי בוצע.
לבסוף, שורות 14 ו-15 מוחקות כל גיבוי שנעשה לפני יותר מ-5 ימים. אתה הולך להפעיל את סקריפט הגיבוי הזה מדי לילה, והקבצים יתפסו הרבה מקום במהירות. זו הסיבה שהפקודות האחרונות הללו מוחקות גיבויים ישנים יותר. אתה יכול לשנות את המספר 5 לכל מספר ימים שמהם תרצה לשמור גיבויים.
כדי להפעיל את הסקריפט הזה, אתה חייבchmod +x backup.sh
. הפעל אותו באופן ידני כדי לוודא שהוא יוצר את קבצי הגיבוי שאתה מצפה. לבסוף, תזמן אותו לרוץ בתדירות שתרצה ב-crontab שלך. כדי להפעיל אותו בשעה 1:01 בבוקר בכל בוקר, ה-crontab שלך ייראה כך:
1 1 * * * /var/www/vhosts/example.com/backups/backup.sh
ודא שאתה מפעיל את הסקריפט הזה עבור כל אתר אינטרנט ומסד נתונים שאכפת לך מהם.
לאחר שתסריט הגיבוי הזה רץ כמה לילות בזמן שאתה ישן בשקט במיטה שלך, שלךfiles
הספרייה תתמלא בגיבויים של קבצים ותוכן מסד נתונים בשווי של 5 ימים לפחות. עבודה יפה.
אבל עדיין לא סיימת.
הבא: גיבוי מרחוק
גיבויים בשרת האינטרנט שלך יחסוך את הבייקון שלך אם עדכון וורדפרס ישתבש או תמחק בטעות פוסט בבלוג ממסד הנתונים שלך. עם זאת, זה לא עוזר אם שרת האינטרנט שלך כןבלתי ניתן להשגהאו מת בשריפה. זו הסיבה שאתה רוצה לשלוח עותקים של נתונים אלה לשרת מרוחק באופן אוטומטי.
ברגע שיש לך גישה לשרת מרוחק הודות לחבר נדיב או בבית, אתה הולך להגדירrsync
עבודה אשר מעבירה אליו את כל הגיבויים של שרת האינטרנט שלך במקרה של אסון מוחלט. רצתי למטהכיצד לשקף קבצים בין מערכות עם rsyncלפני שנים, אז אני לא אחזור על זה, אבל אתה הולך להשתמש באותה גישה כאן.
בקיצור, בשרת המרוחק, צור תיקייה בשםoffsitebackups
. כדי לסנכרן את קבצי הגיבוי החדשים של אתר האינטרנט שלך למארח המרוחק שלך, SSH לתוך המארח הזה, והעתק עבודה שנראית בערך כמו:
rsync -e ssh -a —delete [email protected]:/var/www/vhosts/example.com/backups/files/ /your/path/to/offsitebackups/
החלף את שם המשתמש, שם אתר האינטרנט והנתיבים במידע שלך.
הפקודה הזו תסנכרן את כל הקבצים במארח שלךbackups
התיקייה לשרת המרוחק שלךoffsitebackups
תיקייה. הפעל אותו כדי לוודא שהוא עובד. זה אמור לבקש ממך את הסיסמה כדי להיכנס לשרת האינטרנט שלך כאשר אתה עושה זאת. בסיום הסנכרון, אתה אמור לראות את קבצי הגיבוי שלך ב-offsitebackups
תיקייה.
הבעיה היא שלא תהיה בסביבה כדי להזין את הסיסמה כל לילה כאשר cron ינסה להפעיל אותה. כדי להפעיל אותו ללא התערבות, תצטרךהגדר התחברות ללא סיסמהלתוך שרת האינטרנט שלך. זֶהמדריך מצוין לאוטומציה של גיבויים עם rsyncיורד גם במדרגות האלה.
הגדרת גיבוי מקומי ומרוחק, מסד נתונים וקבצים של שרת האינטרנט שלך דורש זמן ומאמץ מראש, אך לאחר שתגדיר אותו, אתה יכול לשכוח זאת. באמצעות מערכת זו אתה יכול לפרסם בבלוג, לעדכן את תוכנת הבלוגים שלך ולערוך קבצים באופן ידני ישירות בשרת האינטרנט שלך מבלי שתצטרך לדאוג לאבד שינויים או אי יכולת לשחזר את הנתונים שלך לעולם.
גבה אוטומטית את אתר האינטרנט שלך בכל לילה| Smarterware
רוצה לראות את העבודות שלך כאן? שלח מייל ל[מוגן באימייל]!