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> ףוסל ונעגה

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

          !הטמל ספוטה תועצמאב הרוש ונל ריבעהל וססהת לא זא - הכרבב ולבקתי דימת םה ,תורעה וא תולאש ךל שי םא


כל הזכויות שמורות. © Linux-Console.net • 2019-2024