סקריפט בדיקת אתר ב-BASH

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

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

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

אני מצרף את הסקריפט כאן:


#!/bin/bash
pushd /YOUR_DIRECTORY_FULL_PATH
myfilename="FILE_NAME_$(date +"_%d_%H:%M").html"

wget -O $myfilename http://www.example.com

grep_output=`grep 'WELCOME' $myfilename`
if [ "$grep_output" == "" ]; then
   echo "test was OK. tested at $(date +"day: %d hour: %H:%M:%S"). file name created is $myfilename";
else
    echo "ALERT ALERT found at $myfilename. test conducted at $(date +"%d %H:%M:%S")" | mail -aFrom:[email protected] -s ALERT [email protected]
fi

את הסקריפט יש להעתיק לקובץ כלשהו (למשל check.sh), ולשנות את הפרמטרים השונים – כמו שם האתר, שם התיקיה שאליה אנו רוצים לשמור את הקבצים וכן את כתובת המייל ואת המילה שאותה מחפשים (בסקריפט הדוגמא היא WELCOME, אבל זה יכולה להיות כל מחרוזת טקסט כולל HTML).

לאחר השמירה, ניתן לקובץ הרשאות ריצה באמצעות:


chmod 775 check.sh

ניתן לבדוק את הקובץ באמצעות:


./check.sh

אם הכל תקין, הוא ישמור קובץ בתיקיה. אם אנו רוצים שהסקריפט ירוץ מדי פעם, אפשר להכניס אותו אל ה-Cron. למי שלא יודע, Cron זה Daemon קטן בלינוקס שמסוגל להריץ סקריפטים בזמן קצוב. על מנת להריץ את הסקריפט כל דקה, מה שעלינו לעשות זה לכתוב:


crontab -e

ייפתח לנו עורך טקסט דיפולטיבי (בדרך כלל nano) כזה:

Cron
Cron

אנו נוסיף את השורה הזו:


* * * * *       /YOUR_PATH/check.sh

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


* * * * *        /YOUR_PATH/check.sh  >>  /YOUR_PATH/check.log

לא לשכוח לבדוק שיש הרשאת כתיבה לקובץ הלוג.

פוסטים נוספים שכדאי לקרוא

גלילה לראש העמוד