סקריפט בדיקת אתר ב-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:test@example.com -s ALERT yourmail@yourdomain.com
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

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

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

פתרונות ומאמרים על פיתוח אינטרנט

מדרך מעשי לכתיבת קוד עם AI Agents

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

יסודות בתכנות

איך TCP עובד? מבט מעמיק

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

ממנטו עם גמל אין לי מושג למה אני עושה דברים
יסודות בתכנות

מה זה stateful ו-stateless

מה זה סטייט? למה אנחנו צריכים לדעת מה זה ואיך רואים את זה ממש בעיניים.

יסודות בתכנות

הסבר קל ופשוט על Reinforcement Learning

הסבר פשוט למתכנתים שמסביר על איך למידה מחוזקת עובדת – הרבה יותר פשוט ממה שחשבתם ואפשר גם בג׳אווהסקריפט!

פתרונות ומאמרים על פיתוח אינטרנט

Retry decorator בפייתון

לא מזמן יצא לי לכתוב קוד בפייתון. הקוד משתמש ב-API של openAI ולפעמים ה-API הזה קצת מפשל. הוא מחזיר לי שגיאה ואומר שהגזמתי עם הקריאות,

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