
date_var, שמכיל את התאריך של היום בפורמט קצר, והסיומת .log.touch יוצרת את הקובץ. הסימן > כותב את השורה הראשונה, והסימן >> מוסיף שורות בלי למחוק את הקיים.ls *.html בודקת אם יש קבצים. אם $? שווה 1, אין קבצי HTML: הסקריפט רושם no html found today ויוצא עם exit 1.ls -l *.html | wc -l סופר את הקבצים, והתוצאה נשמרת במשתנה number_html ונרשמת בלוג.cp *.html מעתיק את הקבצים לתיקיית הארכיון. המרצה בודק את התוצאה עם ls -l.ls -1 מציג את שמות הקבצים בארכיון, שורה לכל קובץ, והפלט נכתב ללוג.${date_var}.log.if, exit, פקודות ls, cp ו-wc ורישום ללוג. המרצה ממליץ לכתוב סקריפט דומה בתחום העניין שלכם, כדי לתרגל את כל השלבים יחד.מבנה ושמות דיסקים ומחיצות בלינוקס:

הטקסט המלא של הדקות הראשונות בהרצאה «דוגמאות לסקריפט שימושי» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
בסרטון שלפניכם אני מעוניין שנעשה תרגיל ביחד, והתרגיל הזה איכשהו יסכם את הפרקים ה', ו' וז'. אז אם אתם זוכרים, בפרקים האלה אנחנו הזכרנו משתנים, הזכרנו את השימוש ב-if, then.
הייתי רוצה לעשות תרגיל שהוא מאוד קשור לאדמיניסטרציה היומיומית של לינוקס, והוא טומן בחובו את כל הדברים שעשינו עד עכשיו בעצם.
התבקשנו על ידי הבוס שלנו ליצור את הסקריפט הבא. הסקריפט מחפש אחרי כל הקבצים עם סיומות html בתיקיה מסוימת שנבחר בלבד ומגבה אותם לתיקיית ארכייב שיש לנו בשלב פשוט מעתיק אותם.
הסקריפט חייב לשלוח את הפעולות שבוצעו לקובץ לוג בכדי שנוכל לראות מה קרה במהלך הריצה. אנחנו צריכים שירוץ קובץ טקסט פשוט במקביל שאליו יירשמו כל מה שהוא עושה יירשם לתוך הקובץ הזה.
הסקריפט חייב לספק בקובץ לוג את כמות מספר הקבצים שגובו. כלומר, אחד הדברים, הפרמטרים הנוספים שאנחנו מעוניינים לדעת זה שיהיה כתוב גם את המספר של הקבצים שגובו.
במידה ואין בכלל קבצי html, הסקריפט לא ירוץ ולא ירוץ כמובן בלי, אני מניח שרציתי לכתוב פה, בלי ליצור קובץ לוג עם המידע הנ"ל, אה סליחה, סליחה, סליחה, לא ירוץ, אבל ייצור קובץ לוג עם המידע הנ"ל.
no html files to backup today עוד דבר חשוב אנחנו רוצים שהקובץ לוג השם שלו השם של הקובץ יהיה הדייט שבו הוא נוצר או הדייט והשעה אולי אפילו אוקיי אז הנה סקריפט חמוד וקטן עם המידע שיש לכם עד היום אתם יכולים כבר לעשות סקריפט כזה בואו ניגש לעבודה אנחנו נתייחס לסקריפט
הזה כסקריפט 8 ברשותכם אוקיי אז כמובן מתחילים עם השורה הראשונה בין KSA שאנחנו כותבים ב-K של מה אנחנו הולכים לעשות בסקריפט הזה Descript backs up all HTML files in the folder files נגיד שיש לנו את איקאה שנקראת WebFiles ואותה
כל פעם שיש לנו קבצי HTML שהמפתחים שלנו יצרו קבצי HTML שם הם שמים אותם כל יום ושם אני רוצה לגבות את זה ומשם אני רוצה לגבות את הקבצים האלה אוקיי אני שם לי את כבר מכין לי את הרשימה של אולי variables שאני אשתמש בהם, אני עדיין לא יודע מה אני הולך להשתמש, אתם יודעים, זה יחסית, זה כמו איזשהו
פסל, יש לנו את התמונה בראש, או צייר, יש לנו מה אנחנו רוצים שיקרה, אבל אנחנו עדיין לא יודעים איפה לשים מה, וזה בסדר גמור, אי אפשר להתחיל מהסוף להתחלה, אוקיי? אבל לאט לאט זה יצא לכם מהראש, אבל טיפ שיש לי בשבילכם זה, כמו שאתם כותבים את הסקריפט בשלבים, ככה גם אתם מנסים לחשוב על מה מבקשים ממכם.
אז קודם כל מבקש מכם, מבקשים מכם שהסקריפט יחפש קבצים עם סיומת html. אוקיי. אוטומטית בראש אני אומר לעצמי, אז אוקיי, לא רק שהוא צריך לחפש את הקבצי html, הוא גם צריך בטח לשים אותם איפשהו, את השמות שלהם בצד, כדי שאחרי זה נוכל ללכת ולגבות אותם, מן הסתם, נכון?
מצד שני, אם זה כל הקבצי html וזה לא קבצים מסוימים html, אז אני יכול גם להשתמש במשהו כללי יותר כדי לגבות את כל מה שהוא html בתיקייה.
גם זה אופציה, אוקיי. אז הדבר הראשון שאני רוצה לעשות, אני רוצה לחפש אחרי, לבדוק את מספר הקבצי html שיש לי בתיקייה הזאתי, כי זה גם אחד הדברים שמבקשים ממני.
וגם מבקשים ממני גם ליצור קובץ לוג במקביל עם הדייט. אוקיי. אז מה אתם אומרים? אולי נתחיל ביצירת הקובץ לוג הזה קודם כל, שיהיה לנו קובץ לוג שמחכה לקבל input, ואחרי זה נמשיך עם הפעולה עצמה, כי בכל מקרה אני חייב קובץ לוג, גם אם אין שם שום דבר.
גם זה נכון. בואו נתחיל עם הקובץ לוג, שאלה של הקובץ לוג. מה אני רוצה לעשות? מה ביקשו ממני? רק ברשותכם, אם אתם זוכרים, דיברנו על זה שכדאי שיהיה לכם, שיהיה פתוח עבורכם עוד חלון של ההשערת שלכם, כדי שתוכלי לבדוק שמה, רק אני אשנה פה את הצבעים,
כדי שתוכלו לבדוק שמה את מה שאתם מתכננים לעשות. אז אני רוצה ליצור קובץ לוג עם שם של דייט. איך אני עושה את זה?
אני מן הסתם אצור שם של קובץ, אבל אני אכניס, אני אשלב לתוכו את הדייט של היום. אבל כשאני עושה דייט, הדייט הוא מאוד מאוד ארוך.
אולי הייתי רוצה שהוא יהיה טיפה יותר קצר, למשל רק אוגוסט עשרים וארבע לדוגמה. אז הייתי צריך לחתוך את הדייט הזה, זוכרים? היינו צריכים לחתוך את הדייט. אז דייט, ואז אני חותך.
או קרינט, אני צריך את אוגוסט ועשרים וארבע, זה אומר אני צריך את העמודה השנייה והעמודה השלישית. ואני רוצה גם לחבר אותם עם איזה כזה קו כזה יפה.
אז תיאר רווח, תחליף לי את זה בבקשה למינוס, מגניב, אוגוסט 24, או זה יפה, אהבתי את זה. אני את כל זה עכשיו אקח ואני אדחוף את זה פה לשם של קובץ בעצם, או יותר נכון, סליחה, אני אדחוף את זה לשם של משתנה ואז אני אכניס את זה לשם של הקובץ, אני אראה לכם את זה עכשיו.
אז נקרא לזה date var = הדבר הזה והנה עכשיו יש לי, כבר כשהסקריט מתחיל לעבוד יש לי כבר את ה-date var הזה, בעצם 24 לאוגוסט וכבר עכשיו אני יכול כי אני יודע שיש לי כבר משתנה אחד שחשבתי עליו ועכשיו אני יכול לרשום את המשתנה הזה שלי פה הדי דבר הזה המשתנה הזה אני רוצה להשתמש בו כדי לתת את השם לקובץ לוג עוד רגע מגניב חתכתי את הכל יפה ועכשיו אני אצור את הקובץ לוג איך אני יוצר קובץ לוג מאוד מאוד פשוט
touch ככה יוצרים קובץ touch ושם של קובץ במקום touch אתם יכולים לעשות עוד פעם אם בא לכם אקו זה אולי אפילו יותר נחמד אני חושב את הדבר הבא צריך קצת רווחים בקאפ html פיילס בקאפ html פיילס בוא נשים פה את המשתנה שלנו זה די דבר וכמובן כל זה אנחנו עכשיו כותבים לתוך קובץ שאנחנו יוצרים והקובץ הזה בשמו בישראל יהיה נקודה txt מה
בעצם עשיתי פה אז קודם כל יצרתי משתנה שהתוכן שלו זה חלק מהתאריך 24 לאוגוסט, מגניב. הוספתי את המשתנה החמוד הזה לרשימת המשתנים שלי. כל פעם שאני בונה משתנים חדשים אני מוסיף אותם לרשימת המשתנים כדי שבעתיד כשאני אבוא להסתכל על הסקריפט הזה אני אדע ש-Date var זה נועד לשימוש לשם
ה-Log 5. אה, אוקיי, מגניב. וכן הלאה וכן הלאה וכן הלאה, אוקיי? יש אפילו שחושבים שכדאי לעשות באותה רשימה, ואני ממליץ מאוד, גם files that we used, אוקיי? אז למשל, במקרה שלנו פה, dollar.dat.var.log.txt שווה למה? שווה ל-log.file.
מגניב. אז ככה אני בעצם הכנסתי כבר, אני חושב שזה בעצם שתי ציפורים במכה אחת. הכנסתי שורה ראשונה לתוך הקובץ, בניתי קובץ על ידי הגדול מהווה, נתתי לו גם שם שהבוס שלנו ביקש מאיתנו לעשות.
בואו נכניס ברשותכם ככה בקטנה, אחר כך איזה יופי של כזה קו כזה מגניב יפה, שיהיה כזה אסתטי, והפעם אני משתמש בגדול מגדול מ, ואני שולח את זה לאותו קובץ. למה?
כי אני לא רוצה להרוס את הקובץ הזה עם קו אחד ארוך, אני רוצה להוסיף לו שורה. פה אני יוצר את הקובץ, אין בעיה לעשות קו אחד. זה פשוט יוצר את הקובץ מסקאץ'.
אבל כבר עכשיו אני ממשיך קדימה ואני מוסיף מידע לקובץ על ידי גדול מגדול מגדול. אוקיי? וכמובן אני יכול לעשות את מה שלימדתי אתכם, מה שנקרא do as I do, don't do as I say.
לא, לא. do as I say, don't do as I do. ברשותכם, פארט 1, איי-טינג, די. איזה יופי חברים, אני ממש ממש אוהב את זה. וכבר עכשיו, כבר עכשיו אני מוסיף פה את המילה end. לא חייב v אבל זה בסדר, זה פשוט יותר יפה מול העיניים.
זה פארט אחד, creating the log file as it will be as it will be. בואו נראה אם זה עובד, אוקיי? כמובן, תמיר, אנחנו בודקים את זה לפני שאנחנו ממשיכים קדימה.
קודם כל, זה change mode 774 על הקובץ, script 8, זה התרגיל שלנו. עכשיו בואו נפעיל את הסקריפט ונראה מה הוא יעשה. לפני כן בואו נראה שאין לנו שום קובץ פה, אין לנו את הקובץ log הזה.
בואו נרוץ לסקריפט, יצר את הקובץ log, אין לנו קובץ log. מדברים פה קובץ log? אהה, למה? הוא לא יצר את זה בתיקייה שבה אנחנו עובדים, אוקיי? בואו נראה אם בעצם לזה אנחנו, בואו נראה מה הסיבה שהוא לא יצר לנו את הלוג, בואו נראה.
DateVar, בלה בלה בלה בלה בלה, DateVar.txt, DateVarLog.txt, DateVarLog, זה הכל טוב ויפה, וכן, דווקא הוא היה אמור ליצור את זה.
נו, אני אבדוק מה קורה פה, Echo, תעשה את זה פה, תעשה את זה שם, DateVar. אין לי DateVarLog, אני חייב לעשות ביניהם איזשהו רווח או איזשהו משהו שמפריד בין שניהם.
אוקיי, אני חייב לדאוג לכך שיהיה הפרדה. כי בעצם המחשב חיפש את ה-date var log variable, אוקיי? ומה שאני יכול לעשות זה, משהו מתקדם יותר שעוד לא לימדתי אתכם, וזה לשים את זה בגרשיים מיוחדות כאלה, קוראים לזה גרשיים curly-barricades, אוקיי?
ואז אני מפריד בין הלוג לבין השם עצמו, או שאני הולך ואני פשוט כבר עכשיו יודע שזה הולך להיות לוג, אז למה שלא,