זהו הפקודה checkbotp שניתן להפעיל בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS
תָכְנִית:
שֵׁם
Checkbot - WWW Link Verifier
תַקצִיר
checkbot [--עוגיות] [--לנפות] [--קוֹבֶץ שם קובץ] [- עזרה]
[--mailto כתובות דואר אלקטרוני] [--נופרוקסי רשימה של דומיינים]
[--מִלוּלִי]
[--כתובת אתר כתובת אתר התחלה]
[--התאמה מחרוזת התאמה] [--לא לכלול אל תכלול מחרוזת]
[--פרוקסי כתובת פרוקסי] [--פנימי בלבד]
[--להתעלם התעלם ממחרוזת]
[--לְסַנֵן ביטוי רגולרי החלפה]
[--סִגְנוֹן כתובת URL של קובץ סגנון]
[--הערה הערה] [--לִישׁוֹן שניות] [--פסק זמן פסק זמן]
[--הַפסָקָה שניות] [--לא להזהיר קודי תגובה של HTTP]
[--הפעל-וירטואלי]
[--שפה קוד שפה]
[--לדכא קובץ דיכוי]
[כתובות אתרים להתחלה]
תיאור
Checkbot מאמת את הקישורים בחלק מסוים של ה-World Wide Web. זה יוצר HTML
דפים עם אבחון.
Checkbot משתמש ב-LWP כדי למצוא כתובות אתרים בדפים ולבדוק אותן. הוא תומך באותן תוכניות כמו
LWP עושה, ומוצא את אותם קישורים ש-HTML::LinkExtor ימצא.
Checkbot מחשיב קישורים כ"פנימיים" או "חיצוניים". קישורים פנימיים הם קישורים
בתוך שטח האינטרנט שצריך לבדוק. אם קישור פנימי מפנה לרשת
מסמך מסמך זה מאוחזר, והקישורים שלו נשלפים ומעובדים. חיצוני
קישורים מסומנים רק כדי שהם עובדים. Checkbot בודק קישורים כפי שהוא מוצא אותם, כל כך פנימי
וקישורים חיצוניים נבדקים בו זמנית, למרות שהם מטופלים בצורה שונה.
האפשרויות עבור Checkbot הן:
--עוגיות
קבל עוגיות מהשרת והצע אותן שוב בבקשות מאוחרות יותר. זה יכול להיות
שימושי עבור שרתים המשתמשים בקובצי Cookie כדי לטפל בהפעלות. כברירת מחדל, Checkbot לא
לקבל כל עוגיות.
--לנפות
הפעל מצב ניפוי באגים. כבר לא ממש נתמך, אבל זה ישמור כמה קבצים
סביב שאם לא כן יימחק.
--קוֹבֶץ
השתמש בקובץ פילה שם כבסיס לשמות הקבצים המסכם. דף הסיכום יהיה
לקבל את פילה שם נתון, ודפי השרת מבוססים על פילה שם בלי ה
סיומת .html. לדוגמה, הגדרת אפשרות זו ל-"index.html" תיצור א
דף סיכום בשם index.html ודפי שרת בשם index-server1.html ו
index-server2.html.
ערך ברירת המחדל עבור אפשרות זו הוא "checkbot.html".
- עזרה
מציג הודעת עזרה קצרה בפלט הסטנדרטי.
--mailto [, ]
שלח דואר ל אמייל כתובת כאשר Checkbot מסיים לבדוק. אתה יכול לתת יותר מ
כתובת אחת מופרדת בפסיקים. הודעת האימייל כוללת סיכום קטן של
התוצאות. החל מ-Checkbot 1.76 דוא"ל נשלח רק אם נמצאו בעיות במהלך
הרצה של Checkbot.
--נופרוקסי
אל תבצע בקשות פרוקסי לדומיינים הנתונים. רשימת הדומיינים חייבת להיות פסיק-
רשימה מופרדת. לדוגמה, אז הימנע משימוש ב-proxy עבור localhost ו
someserver.xyz, אתה יכול להשתמש ב-"--noproxy localhost,someserver.xyz".
--מִלוּלִי
הצג פלט מילולי תוך כדי ריצה. כולל את כל הקישורים שנבדקו, תוצאות מה-
צ'קים וכו'.
--כתובת אתר
הגדר את כתובת האתר להתחלה. Checkbot מתחיל לבדוק בכתובת האתר הזו, ולאחר מכן בודק באופן רקורסיבי
כל הקישורים שנמצאים בדף זה. כתובת האתר להתחלה עדיפה על פני כתובות אתרים נוספות
שצוין בשורת הפקודה.
אם לא צוינה סכמה עבור כתובת האתר, ההנחה היא פרוטוקול הקובץ.
--התאמה
אפשרות זו בוחרת באילו דפים Checkbot מחשיב מקומיים. אם ה להתאים מחרוזת is
הכלולים בכתובת האתר, ואז Checkbot מחשיב את הדף מקומי, מאחזר אותו ו
יבדוק את כל הקישורים הכלולים בו. אחרת הדף נחשב חיצוני
וזה נבדק רק עם בקשת HEAD.
אם לא מפורש להתאים מחרוזת נתון, ייעשה שימוש בכתובות ה-URL להתחלה (ראה אפשרות "--url")
כמחרוזת גפרורים במקום זאת. במקרה זה, שם העמוד האחרון, אם קיים, ייחתך.
לדוגמה, כתובת אתר התחלה כמו "http://some.site/index.html" יגרום לברירת מחדל
להתאים מחרוזת של "http://some.site/".
השמיים להתאים מחרוזת יכול להיות ביטוי רגולרי של perl. לדוגמה, כדי לבדוק את הראשי
עמוד השרת וכל דפי ה-HTML ישירות מתחתיו, אך לא דפי ה-HTML ב-
ספריות משנה של השרת, ה להתאים מחרוזת יהיה
"www.someserver.xyz/($|[^/]+.html)".
--לא לכלול
כתובות אתרים התואמות את להוציא מחרוזת נחשבים חיצוניים, גם אם הם במקרה
להתאים את להתאים מחרוזת (ראה אפשרות "--התאמה"). כתובות URL התואמות למחרוזת --exclude הן
עדיין נבדק וידווח אם יימצאו בעיות, אך הן לא יהיו
בדקו קישורים נוספים לאתר.
השמיים להוציא מחרוזת יכול להיות ביטוי רגולרי של perl. לדוגמה, לשקול את כל כתובות האתרים
עם מחרוזת שאילתה חיצונית, השתמש ב-"[=\?]". זה יכול להיות שימושי כאשר כתובת אתר עם שאילתה
מחרוזת פותחת את הנתיב למסד נתונים ענק שייבדק.
--לְסַנֵן
אפשרות זו מגדירה את א לסנן מחרוזת, שהוא ביטוי רגיל של perl. המסנן הזה
מופעל בכל כתובת אתר שנמצאה, ובכך משכתב את כתובת האתר לפני שהיא נכנסת לתור להיות
בָּדוּק. ניתן להשתמש בו כדי להסיר אלמנטים מכתובת אתר. אפשרות זו יכולה להיות שימושית כאשר
קישורים סמליים מצביעים לאותה ספרייה, או כאשר מתווספת מערכת ניהול תוכן
מזהי הפעלה לכתובות URL.
לדוגמה "/old/new/" יחליף מופעים של 'ישן' ב-'new' בכל כתובת אתר.
--להתעלם
כתובות אתרים התואמות את להתעלם מחרוזת אינם נבדקים כלל, הם מתעלמים לחלוטין על ידי
Checkbot. זה יכול להיות שימושי כדי להתעלם מקישורים בעייתיים ידועים, או כדי להתעלם מקישורים מובילים
לתוך מסדי נתונים. ה להתעלם מחרוזת מותאם לאחר ה לסנן מחרוזת הוחל.
השמיים להתעלם מחרוזת יכול להיות ביטוי רגולרי של perl.
לדוגמה "www.server.com\/(one|two)" יתאים לכל כתובות האתרים שמתחילות באחת מהן
www.server.com/one או www.server.com/two.
--פרוקסי
תכונה זו מציינת את כתובת האתר של שרת proxy. רק בקשות HTTP ו-FTP
יישלח לאותו שרת פרוקסי.
--פנימי בלבד
דלג על בדיקת הקישורים החיצוניים בסוף הרצה של Checkbot. רק התאמה
קישורים נבדקים. שים לב שחלק מההפניות מחדש עלולות לגרום לקישורים חיצוניים
בָּדוּק.
--הערה
השמיים הערות נכלל מילה במילה בהודעת הדואר (ראה אפשרות "--mailto"). זה יכול להיות
שימושי לכלול את כתובת האתר של דף ה-HTML המסכם לעיון קל, למשל.
משמעותי רק בשילוב עם אפשרות "--mailto".
--לִישׁוֹן
המספר שניות לישון בין בקשות. ברירת המחדל היא 0 שניות, כלומר לא
לישון בכלל בין בקשות. הגדרת אפשרות זו יכולה להיות שימושית כדי לשמור על העומס
שרת האינטרנט מושבת בזמן הפעלת Checkbot. ניתן להגדיר אפשרות זו גם ל-a
מספר שבר, כלומר ערך של 0.1 יישן עשירית שנייה ביניהם
בקשות.
--פסק זמן
פסק זמן ברירת מחדל עבור הבקשות, צוין בשניות. ברירת המחדל היא 2 דקות.
--הַפסָקָה
המרווח המרבי בין עדכונים של דפי האינטרנט של התוצאות בשניות. ברירת המחדל היא 3
שעות (10800 שניות). Checkbot יתחיל את המרווח בדקה אחת, ובהדרגה
להרחיב אותו לכיוון המרווח המרבי.
--סִגְנוֹן
כאשר נעשה שימוש באפשרות זו, Checkbot מטמיע כתובת URL זו כקישור לקובץ סגנון בכל אחת מהן
עמוד זה כותב. זה מקל על התאמה אישית של פריסת הדפים שנוצרו על ידי
Checkbot.
--לא להזהיר
אל תכלול אזהרות בדפי התוצאות עבור קודי תגובת HTTP שתואמים
הביטוי הרגולרי. לדוגמה, --dontwarn "(301|404)" לא יכלול 301 ו-
404 קודי תגובה.
Checkbot משתמש בקודי התגובה שנוצרו על ידי השרת, גם אם קוד תגובה זה
אינו מוגדר ב-RFC 2616 (HTTP/1.1). בנוסף לקוד תגובת HTTP הרגיל,
Checkbot מגדיר כמה קודי תגובה למצבים שאינם מבחינה טכנית א
בעיה, אבל מה שגורם לבעיות במקרים רבים בכל מקרה. הקודים האלה הם:
901 שם מארח צפוי אך לא נמצא
במקרה זה כתובת האתר תומכת בשם מארח, אך לא נמצאה
בכתובת האתר. זה בדרך כלל מצביע על טעות בכתובת האתר. א
יוצא מן הכלל הוא שבדיקה זו אינה חלה על חדשות: כתובות אתרים.
902 נמצא שם מארח לא מוסמך
במקרה זה שם המארח אינו מכיל את החלק של הדומיין.
זה בדרך כלל אומר שהדפים עובדים מצוין כשהם צופים בפנים
התחום המקורי, אך לא במבט מחוצה לו.
903 לוכסן כפול בנתיב כתובת האתר
כתובת האתר כוללת לוכסן כפול. זה חוקי, אבל קצת אינטרנט
שרתים לא יכולים להתמודד עם זה בצורה טובה ועלולים לגרום ל-Checkbot לעשות זאת
לברוח. ראה גם את ההערות למטה.
904 סכמה לא ידועה ב-URL
כתובת האתר מתחילה בסכימה ש-Checkbot לא מכיר
על אודות. זה נגרם לרוב מהקלדה שגויה של סכימת כתובת האתר,
אבל התוכנית יכולה להיות גם חוקית. במקרה כזה בבקשה תן
אני יודע כדי שניתן יהיה להוסיף אותו ל-Checkbot.
--הפעל-וירטואלי
אפשרות זו מאפשרת התמודדות עם שרתים וירטואליים. לאחר מכן, Checkbot מניח שהכל
שמות מארחים עבור שרתים פנימיים הם ייחודיים, למרות שכתובות ה-IP שלהם עשויות להיות
אותו. בדרך כלל, Checkbot משתמש בכתובת ה-IP כדי להבחין בין שרתים. יש לזה את
יתרון שאם לשרת יש שני שמות (למשל www ו-bamboozle) הדפים שלו מקבלים רק
נבדק פעם אחת. כאשר אתה רוצה לבדוק מספר שרתים וירטואליים זה גורם לבעיות,
אשר תכונה זו פועלת על ידי שימוש בשם המארח כדי להבחין בין השרת.
--שפה
הארגומנט לאפשרות זו הוא קוד שפה בן שתי אותיות. Checkbot ישתמש בשפה
משא ומתן לבקשת קבצים בשפה זו. ברירת המחדל היא לבקש אנגלית
שפה (קוד שפה 'en').
--לדכא
הארגומנט עבור אפשרות זו הוא קובץ המכיל שילובים של קודי שגיאה ו
כתובות אתרים שעבורן יש לדכא אזהרות. זה יכול לשמש כדי להימנע מדיווח על ידוע ו
שגיאות או אזהרות של כתובת URL בלתי ניתנות לתיקון.
הפורמט של קובץ ההדחקה הוא פורמט פשוט מופרד עם רווח לבן, ראשית
רשום את קוד השגיאה ואחריו כתובת האתר. כל שילוב קוד שגיאה וכתובת אתר הוא
רשום בשורה חדשה. ניתן להוסיף הערות לקובץ על ידי התחלת השורה ב-a
"#" אופי.
# 301 הועבר לצמיתות
301 http://www.w3.org/P3P
# איסור 403
403 http://www.herring.com/
לגמישות נוספת ניתן להשתמש בביטוי רגולרי במקום כתובת URL רגילה. ה
הביטוי הרגולרי חייב להיות מוקף באלכסונים קדימה. למשל, לדכא הכל
שגיאות 403 בויקיפדיה:
403 /http:\/\/wikipedia.org/.*/
אפשרויות שהוצאו משימוש שייעלמו במהדורה עתידית:
--allow-simple-hosts (הוצא משימוש)
אפשרות זו מכבה אזהרות לגבי כתובות אתרים המכילות שמות מארחים לא מתאימים. זֶה
שימושי עבור אתרי אינטרא-נט המשתמשים לעתים קרובות רק בשם מארח פשוט או אפילו
"מארח מקומי" בקישורים שלהם.
השימוש באפשרות זו הוצא משימוש. אנא השתמש במנגנון --dontwarn לשגיאה 902
במקום.
הצבעים ו טיפים
בעיות בבדיקת קישורי FTP
חלק מהמשתמשים עלולים להיתקל בבעיות עקביות בבדיקת קישורי FTP. במקרים אלו
זה עשוי להיות שימושי להורות ל-Net::FTP להשתמש במצב FTP פסיבי כדי לבדוק קבצים. זה יכול
להיעשות על ידי הגדרת משתנה הסביבה FTP_PASSIVE ל-1. לדוגמה, שימוש ב-
bash shell: "FTP_PASSIVE=1 checkbot ...". עיין בתיעוד Net::FTP למידע נוסף
פרטים.
בורח Checkbot
במקרים מסוימים Checkbot ממש לוקח נצח לסיים. ישנן שתי סיבות נפוצות
לבעיה זו.
ראשית, ייתכן שיש יישום מסד נתונים כחלק מאתר האינטרנט אשר יוצר א
דף חדש המבוסס על קישורים בדף אחר. מאז צ'קבוט מנסה לנסוע בכל
קישורים זה יצור מספר אינסופי של דפים. סוג זה של אפקט בריחה הוא
בדרך כלל צפוי. ניתן להימנע מכך על ידי שימוש באפשרות --exclude.
שנית, בעיית תצורת שרת עלולה לגרום ללולאה ביצירת כתובות URL לדפים
שבאמת לא קיים. זה יביא לכתובות אתרים של הטופס
http://some.server/images/images/images/logo.png, עם יותר ויותר 'תמונות' כלולות.
Checkbot לא יכול לבדוק זאת מכיוון שהשרת היה צריך לציין שה-
הדפים המבוקשים אינם קיימים. אין דרך קלה לפתור את זה מלבד תיקון
שרת אינטרנט פוגע או הקישורים השבורים.
בעיות עם קישורי https://
הודעת השגיאה
לא ניתן לאתר את שיטת האובייקט "חדש" באמצעות החבילה "LWP::Protocol::https::Socket"
בדרך כלל אומר שההתקנה הנוכחית של LWP אינה תומכת בבדיקת SSL
קישורים (כלומר קישורים שמתחילים ב-https://). ניתן לפתור בעיה זו על ידי התקנה
מודול Crypt::SSLeay.
דוגמאות
השימוש הפשוט ביותר ב-Checkbot הוא לבדוק סט של דפים בשרת. כדי לבדוק את שלי
דפי checkbot שהייתי משתמש בהם:
צ'ק בוט http://degraaff.org/checkbot/
ריצות Checkbot עשויות להימשך זמן מה, כך ש-Checkbot יכול לשלוח הודעת דואר כאשר ההרצה
נעשה:
checkbot --mailto hans@degraaff.org http://degraaff.org/checkbot/
אפשר לבדוק סט של קבצים מקומיים מבלי להשתמש בשרת אינטרנט. זה עובד רק
עבור קבצים סטטיים אך עשוי להיות שימושי במקרים מסוימים.
checkbot file:///var/www/documents/
דרישות קדם
סקריפט זה משתמש במודולים "LWP".
דרישות יסוד
סקריפט זה יכול לשלוח דואר כאשר "Mail::Send" קיים.
השתמש ב-checkbotp באינטרנט באמצעות שירותי onworks.net