10 קלח - סקוניל יצבק לש תויעב ןורתפו טפירקס תפטעמ לש םייסיסב םיטפירקס הדימלו הנבה
.םינוילעה הכימתה יתווצל םיאשונ תאלעהל עגונה לכב המכח תוטלחה תלבק ןכו ,ללוכ חותינו רוטינ דצל ,םילעופה םיתורישו תוכרעמב הכימת תללוכה ,סקוניל תוכרעמב תילועפת הכימת תינוניב דע תיסיסב הכמסה לבק
.Linux Foundation לש הכמסהה תינכותל אובמ ךתוא החנמש אבה ןוטרסה תא קודב
.LFCS לש הכמסהה תניחבל םישרדנ םיאשונה ינש .סקוניל לש םיצבק תוכרעמב תויעב ןורתפבו תפטעמ לש יסיסב טירסתב דקמתנ הז רמאמב .תוכורא תוכרדה 10 תב תיחכונה הרדסה לש (10 קלח) ןורחאה רמאמה והז
םיזגפו םיפוסמ תנבה
.םיגשומ המכ הליחת ריהבנ ואוב
.תדלקמה ללכ ךרדב אוהש ,ולש ליגרה טלקה רישכממ תודוקפ לבקל ליחתהל ןכומ זגפהש ונל תרמוא רשא ,(הדוקפה תרוש םג הנוכמה) הדוקפ תרוש גיצמ אוה ,הנושארל זגפ םיליעפמ ונא רשאכ
.תוישומיש תודוקפ המכ קודבל ידכ (1 קלח - םיצבק להנלו ךורעל ,רוציל ידכ הדוקפב שמתשה) וז הרדסב רחא רמאמל סחייתהל הצרתש ןכתיי
:רתויב תוצופנה ןה תוצופנהו ,תופילקל תויורשפא ןווגמ תקפסמ סקוניל
Bash גציימ Bourne Again SHell טקיורפ לש לדחמה תרירב תפטעמ אוהו GNU. תפטעממ תוישומיש תונוכת בלשמ אוה Korn (ksh) ו- C shell (csh), תכמסהב תוסוכמה תוצפהה תא תשמשמה לדחמה תרי
Bourne SHell ומכ תובר הלעפה תוכרעמ לש לדחמה תרירב תפטעמ איה ןכלו רתויב הקיתעה תפטעמה אוה UNIX תובר םינש הז.
.C זגפ לש תובר תונוכת ללוכו ןרוב זגפ םע רוחאל םאות הז .םינומשה תונש תליחתב לב תודבעמב ןרוק דיווייד ידי לע החתופ רשא סקינוי תפטעמ אוה הפילק ןרוק ה
.הז רחא הזב זגפה ידי לע תועצובמש תודוקפ תבלשמה הלעפה תינכותל ךפהש טסקט ץבוקמ תוחפ אלו רתוי אל אוה זגפ טפירקס
תפטעמ לש םייסיסב םיטפירקס
.ךתויחונל ריבחת תשגדה עיצמש ,(וז הרדסב 2 קלח - vi ךרועב שומישב ןייע) vi/m -ב שמתשהל לוקשל ךל יאדכ .ונילע ףדעומה טסקטה ךרוע תועצמאב ךורעלו רוציל ןתינ ,ךכ .ליגר טסקט ץבוקכ דלונ תפטעמ טפירק
.Enter לע ץחלו myscript.sh םשב ץבוק רוציל ידכ האבה הדוקפה תא דלקה
# vim myscript.sh
.( גנבש םג הנוכמה) ןמקלדכ תויהל תבייח תפטעמ טפירקס לש הנושארה הרושה
#!/bin/bash
.אבה טסקטה תלעפהל וב שמתשהל שיש ןמגרותמה םש תא הלעפהה תכרעמל " רמוא "\הז
.(רבסה תורעה) # הריל ןמיסב תוליחתמה הלא תורושמ תמלעתמ הפילקהש בל םיש .ןכ םג תורעה תפסוה ידי לע ,ולוכ טירסתה תא וא ,הדוקפ לכ תרטמ תא ריהבהל םילוכי ונא .ונלש תודוקפה תא ףיסוהל ןמזה
#!/bin/bash echo This is Part 10 of the 10-article series about the LFCS certification echo Today is $(date +%Y-%m-%d)
.עוציבל ותוא ךופהל ונילע ,ותרימשו טפירקסה תביתכ רחאל
# chmod 755 myscript.sh
,םיצר ונחנא םא . $PATH הביבסה הנתשמ לע םילימ המכ רמול ונילע ,ונלש טפירקסה תלעפה ינפל
echo $PATH
.הנושארל תפטעמה תא םיליעפמ רשאכ דבעמ הלש דליהו תפטעמה רובע הנימזל תכפוהש עדימ תכרעמ - תפטעמה תביבסמ קלח אוהש ןוויכמ הביבס הנתשמ ארקנ הז .הלעפה תינכות לש םש םיניזמ ונחנאשכ םישפחמ התוא תוירפ
,המגוד הארנ ואוב .אצמנש ןושארה עפומה תא תעצבמו $PATH הנתשמב תועיפומה תוירפסה לכב תשפחמ הפילקה ,Enter לע םיצחולו הדוקפ םידילקמ ונא רשאכ
.םלעתי אל רחאה וליאו ,תישאר עצובי הנושארה היירפסב הז ,/usr/bin ב דחאו /usr/local/bin ב דחא ,םש ותוא םע הלעפה יצבק ינש םנשי םא
.הליגר הדוקפב םישוע ונייהש יפכ קוידב ותוא ץירהל םילוכי ונא ,תרחא .ותוא עצבל תנמ לע ץבוקה םשל ./ ףיסוהל ונילע , $PATH הנתשמב תועיפומה תוירפסה תחאב ונלש טפירקסה תא ונרמש אל
# pwd # ./myscript.sh # cp myscript.sh ../bin # cd ../bin # pwd # myscript.sh
:אוה הלש יסיסבה ריבחתה .הלאכ םיאנת רידגהל ידכ םא הנבמב שמתשת ,הדוקפ לש ןולשיכ וא החלצהמ האצותכ ,זגפ טפירקסב עצבל שיש תונוש הלועפ יכרד ןייצל ךירצ התאש םעפ לכב
if CONDITION; then COMMANDS; else OTHER-COMMANDS fi
:רשאכ ןוכנ םתוא םיכירעמו (רתויב םיחיכשה םיאנתה קר ןאכ םיטטוצמ) םיאבהמ דחא תויהל לוכי יאנת ש הפיא
[int1 op int2] םיאבה םיטירפהש דועב ,תמדוקה המישרהמ קלח תויהל רומא (המגודל, -eq -> םא םירומא int1 ל הווש int2 .) תמישר תויהל הכירצ " םידלי " לש
:אוה הלש יסיסבה ריבחתה .םיכרע תמישרב ךרע לכ רובע רתוי וא תחא הדוקפ עצבל תרשפאמ וז האלול
for item in SEQUENCE; do COMMANDS; done
.היצרטיא לכ ךלהמב ףצר -ב ךרע לכ גציימה יללכ הנתשמ אוה טירפ רשאכ
:אוה הלש יסיסבה ריבחתה .(החלצהב) ספאל הוושה האיצי בצמ םע תעצובמ הרקבה תדוקפש דבלבו תורזוח תודוקפ לש הרדס עצבל תרשפאמ וז האלול
while EVALUATION_COMMAND; do EXECUTE_COMMANDS; done
.תורחא תוננוקמ תואלול ללוכ ,תפטעמ תייצקורטסנוק וא טפירקס ,תינכות לכ תויהל לוכי EXECUTE_COMMANDS בצמו (b> 0> טעמל) ןולשיכ וא ( 0 ) החלצהב תאצל הלוכיש (םי) הדוקפ לכ תויהל הלוכי <
.האבה המגודב for -ה תאלולו if -ה הנבמב שומישה תא םיגדנ
.ףוטח טבמב הילע חקפל םיצור ונאש םיתוריש תמישר םע ץבוק רוצינ ואוב
# cat myservices.txt sshd mariadb httpd crond firewalld
.תואריהל רומא ונלש זגפה טפירקס
#!/bin/bash # This script iterates over a list of services and # is used to determine whether they are running or not. for service in $(cat myservices.txt); do systemctl status $service | grep --quiet "running" if [ $? -eq 0 ]; then echo $service "is [ACTIVE]" else echo $service "is [INACTIVE or NOT INSTALLED]" fi done
,לש הקופתב תסלכואמ המישרה .תוריש םשב ירנגה הנתשמה ידי לע ןמוסמ הז דדוב טנמלא .םעפ לכב LIST לש דחא טנמלא myservices.txt ץבוקה תא תארוק for -ה תאלול .(1
# cat myservices.txt
.בוקענ הילעש המישרה תא סלכאל ידכ התוא ךירעהל שיש ןייצל ידכ רלוד ןמיס הל תמדוקו םיירגוסב הלולכ ליעלש הדוקפה .(2
.עצובת האבה הדוקפה ,(תורישה הנתשמ לש עפומ לכ רמולכ) LIST ביכר לכ רובע .(3
# systemctl status $service | grep --quiet "running"
.grep ל רוניצה טלפ ןכמ רחאל .היצרטיא לכב וכרעב שמתשהל שי ןכלו הנתשמ אוהש ןייצל ידכ רלוד ןמיס םע ( LIST ב טנמלא לכ גציימה) ונלש ירנגה הנתשמה תא םידקהל ונילע םעפה
.לעופ תורישהש תמאמ ךכבו ,(if -ה הנבמב $? ידי לע גצוימה) 0 לש האיצי סוטטס הריזחמ הלעמלש הדוקפה ,הרוק הזשכ .לעופ הלימה העיפומ ןהב תורושה תא ךסמל גיצהל grep -מ עו
.ץר וניא תורישהש ןייצמ ( systemctl status $service לש טלפב האצמנ אל תלעופ הלימ ה רמולכ) 0 -מ הנוש האיצי סוטטס
.for -ה תאלול סנכיהל וליפא הסננש ינפל myservices.txt לש ומויק תא קודבלו ףסונ דעצ םדקתהל לכונ
#!/bin/bash # This script iterates over a list of services and # is used to determine whether they are running or not. if [ -f myservices.txt ]; then for service in $(cat myservices.txt); do systemctl status $service | grep --quiet "running" if [ $? -eq 0 ]; then echo $service "is [ACTIVE]" else echo $service "is [INACTIVE or NOT INSTALLED]" fi done else echo "myservices.txt is missing" fi
.( ךמצעב תוסנלו myhosts לש ןכותה תא ףילחהל ססהת לא) אל וא pingable תויהל םילוכי םה םא םעפ ידמ עובקל ידכ טפירקסב שמתשהלו טסקט ץבוקב םיחראמ תמישר לע רומשל הצרתש ןכתיי
. ping הדוקפל רבעומ זאו ,הנתשמ חראמל הרוש לכ לש ןכותה תא הצקמו הרוש רחא הרוש myhosts תא אורקל ןמזה תאלול תרפסמ האירקה תפטעמ לש תינבומה הדוקפה
#!/bin/bash # This script is used to demonstrate the use of a while loop while read host; do ping -c 2 $host done < myhosts
םג ארק :
םיצבקה תכרעמב תויעב ןורתפ
.שדחמ לעפומ סקוניל רשאכ תואיגש תמייק םא תיטמוטוא קדבית ךכו הכלהכ קרופת אל ךלש םיצבקה תוכרעממ (רתוי וא) תחא ,(למשח תקספה בקע לשמל) יהשלכ הביסמ תסרוק איה םא ךא ,דואמ הביצי הלעפה תכרעמ איה סק
.(" םיצבק תכרעמ תקידב " \) fsck םשב ילכ תועצמאב עצבתמ רבדה םירקמה ינשב .הבכרה ינפל םיצבקה תוכרעמ תוניקת תא תקדוב דימת איה ,ליגר לוחתא ךלהמב הליחתמ תכרעמהש םעפ לכב ,ףסונב
fsck קזנה תרמוחל םאתהב .תאז תושעל הארוה ןתנית םא תומוגפ םיצבק תוכרעמ ןקתל הסני םג אלא ,םיצבקה תוכרעמ תוניקת תא קודבי קר אל, fsck היירפסב םימקוממ םיצבק לש םירזחושמ םיקלח ,הרוק הז ר
.הרמוחל קזנל םורגל הלולע ףאו ,וילא תבתוכ ןיידע הלעפהה תכרעמ רשאכ USB ןנוכ ריסהל הסננ םא םג שחרתהל לולע תויבקע רסוח יכ בל םישל ונילע ,ביבח ןורחא
:ןמקלדכ אוה fsck לש יסיסבה ריבחתה
# fsck [options] filesystem
.שדחמ התוא לטבל ונילע תישאר ,fsck םע םיצבק תכרעמ קודבל תנמ לע
# mount | grep sdg1 # umount /mnt # fsck -y /dev/sdg1
.הייקנ תיארנ םיצבקה תכרעמ רשאכ םג הקידבה תא תופכלו ,תולאש לואשל ילבמ םיצבקה תוכרעמ תא יטמוטוא ןפואב ןקתל -a תורשפאב שמתשהל םילוכי ונא , -y לגדה דבלמ
# fsck -af /dev/sdg1
.ליגר טלפל םיצבקה תכרעמ תויעב תא קיפתש , -n תורשפאה םע fsck ץירהל לכונ (התע תעל רבד ןקתל תוסנל ילבמ) רדסב אל המ ררבל קר םיניינועמ ונא םא
# fsck -n /dev/sdg1
.הרמוחה לע תופסונ תוקידב עצבל ידכ הסדנה יתווצל התוא םילסהל וא ונמצעב היעבה תא רותפל תוסנל םילוכי ונא םאה עדנ ,fsck לש טלפב האיגשה תועדוהל םאתהב
םוכיס
. LFCS הניחבה תא רובעל ידכ תושרדנה תויסיסבה ןיימודה תולוכי תא תוסכל וניסינ םש ,וז הרדס םירמאמ b> 10> ףוסל ונעגה
.דומלל ךישמהלו םכמצעב םישדח םירבד תוסנל הנוכנה ךרדה לע םכתא ולעה הלא םירמאמ יכ םיווקמ ונא ןכלו ,תחא הכרדה ףאב וללה םיאשונה לש דחא טביה לכ תוסכל ןתינ אל ,תורורב תוביסמ
!הטמל ספוטה תועצמאב הרוש ונל ריבעהל וססהת לא זא - הכרבב ולבקתי דימת םה ,תורעה וא תולאש ךל שי םא