النتائج 1 إلى 7 من 7

الموضوع: ممكن مساعدة في bash shell scripting

  1. #1
    عضو نشيط
    تاريخ التسجيل
    Jul 2003
    المشاركات
    53

    ممكن مساعدة في bash shell scripting



    السلام عليكم

    اريد مساعدتكم ....

    عندما اريد تشغيل سكربت ... بهذا الكود
    كود:
    bash filename
    عندما استخدم الامر echo ... يعمل
    لكن عندما استخدم for loop ... يظهر خطء !!!

    مثلاً في هذا الكود
    كود:
    #!/bin/bash
    for X in red green blue
    do
    	echo $X
    done
    كود:
    root@ns [/db]# bash tst
    'st: line 3: syntax error near unexpected token `do
    'st: line 3: `do
    ما الخطء في عملي





    __________________
    إستخدم ملفك الخاص لكتابة توقيعك


  2. #2
    عضو فعال
    تاريخ التسجيل
    Jul 2001
    المشاركات
    1,852


    عزيزي هذا الكود خطاء

    @myNames = ('Larry', 'Curly', 'Moe');
    print "Who's on the list:\n"; foreach (@myNames) {
    print $_ . "\n";
    }

    طريقة اضمن بحيث انك تحط المتغيرات بمصفوفة و بعدين تسوي اللوب





    __________________
    مرحبا بكم في مدونتي
    http://www.abdullah.cc

    معا لنشر المعلومه في سوالف

  3. #3
    عضو نشيط
    تاريخ التسجيل
    Jul 2003
    المشاركات
    53


    شكراً اخ Sn3s على الرد

    لكن للاسف نفس المشكلة
    كود:
    root@ns [/db]# bash tst.sh
    tst.sh: line 2: syntax error near unexpected token `('
    'st.sh: line 2: `@myNames = ('Larry', 'Curly', 'Moe');
    وكما اعتقد ان ال foreach ... تستخدم في csh !!

    أعتقد ان في خطء في كيفية تشغيل السكربت لا في السكربت ... !!!





    __________________
    إستخدم ملفك الخاص لكتابة توقيعك

  4. #4
    عضو فعال جدا
    تاريخ التسجيل
    Nov 2003
    المشاركات
    2,197


    السلام عليكم

    1- عزيزي لا يوجد اي خطأ بالكود ويعمل بدون مشكله

    root@cobra [/home/admin]# pico test.sh
    root@cobra [/home/admin]# chmod 755 test.sh
    root@cobra [/home/admin]# ./test.sh
    red
    green
    blue

    وبالتأكيد يمكن استخدام wildcard -* -

    بحيث مثلا يقرأ من ملف او عدة ملفات

    for x in *.txt

    وبخصوص foreach فنعم لا تستخدم الا بـ tcsh + csh

    ماذا ترغب ان تفعل تحديدا ربما توضيح سؤالك او الشيء الذي ترغب عمله يساعد في ايجاد حلول متعدده لك هنا





    __________________
    سيكـــيوريتي واي لخدمات وأمن الانترنت
    http://securityway.net

    admin@securityway.net

  5. #5
    عضو نشيط
    تاريخ التسجيل
    Jul 2003
    المشاركات
    53


    شكراً اخ SecurityWay .. جزاك الله خير

    اعتقد اني اكتشفت الخطء في عملي ... وهو اني في السابق كنت اكتب السكربت على الكمبيوتر ثم ارفعه إلى السيرفر
    عندما كتبته في السيرفر مباشرة اشتغل !!!

    اخي انا عندي cpanel ... والمعروف ان البكب اما يومي او اسبوعي او شهري
    انا كنت اريد ان يكون لدي بكب لقواعد البيانات لثلاثة ايام للخلف ... (اليوم ، قبله ، وما قبله)
    فعملت هذا لأخذ بكب قواعد البيانات فقط
    كود:
     
    #!/bin/bash
    # MYSQL Backup Script
    for i in user1 user2 user3
    do
      cp $i.tar.gz /backup/cpbackup/temp/
      tar -xzf /backup/cpbackup/temp/$i.tar.gz
      cp /backup/cpbackup/temp/$i/mysql/*.* /backup/cpbackup/alldb
      rm -rf /backup/cpbackup/temp/$i
      rm $x.tar.gz
    done
    اعتقد ان هناك الافضل :con2:

    انا وجدت هذا السكربت لاخذ بكب لقواعد البيانات لكن لم افهم بعض الجزئيات منه
    كود:
    #!/bin/bash
    MYSQL=\"$(which mysql)\"
    MYSQLDUMP=\"$(which mysqldump)\"
    CHOWN=\"$(which chown)\"
    CHMOD=\"$(which chmod)\"
    TAR=\"$(which tar)\"
    DATE=$(date +\"%Y-%m-%d\")
    BACKUP_PATH=\"(which path)"
    	
    #Create database dump directory and go there
    mkdir -p $BACKUP_PATH/$DATE
    pushd $BACKUP_PATH >> /dev/null
    	
    # Loop through each database
    for database in `echo \"show databases\"  | $MYSQL | grep -v Database`;
    do
            mkdir -p $DATE/$database
    	
            # Dump database
            $MYSQLDUMP --defaults-file=/root/.my.cnf --add-drop-table --allow-keywords -a -a -c $database > $DATE/$database.sql
    	
            # Loop through each table
            for table in `echo \"use $database; show tables\" | $MYSQL $database | grep -v Tables_in_`;
            do
    	
                    # Dumping table
                    $MYSQLDUMP --defaults-file=/root/.my.cnf --add-drop-table --allow-keywords -q -a -c $database $table > $DATE/$database/$table.sql
    	
            done
    	
    done
    	
    # Create daily archive
    $TAR jcf $DATE.tar.bz $DATE
    	
    # Ensure only root can access these files
    $CHOWN 0.0 -R $DATE
    $CHOWN 0.0 $DATE.tar.bz
    $CHMOD go-rwx $DATE
    $CHMOD go-rwx $DATE.tar.bz
    $CHMOD go-rwx -R $DATE/*
    	
    # Back to start directory
    popd >> /dev/null

    وشكراً
    ،،،





    __________________
    إستخدم ملفك الخاص لكتابة توقيعك

  6. #6
    عضو فعال جدا
    تاريخ التسجيل
    Nov 2003
    المشاركات
    2,197


    كود:
    DATE=`date +%m%d%y`
    THISMONTH=`date +%b-%y`
    BACKMONTH=/backup/sql/$THISMONTH/
    BACKDEST=$BACKMONTH/$DATE
    if [ ! -d $BACKMONTH ];then
    mkdir $BACKMONTH
    fi
    if [ ! -d $BACKDEST ];then
    mkdir $BACKDEST
    fi
    
    for var in `find /var/lib/mysql/ -type d | \
    sed -e "s/\/var\/lib\/mysql\///"`; do
    mysqldump  --add-drop-table  $var >> $BACKDEST/$var.sql
    done
    ضع الكود مثلا في ملف باسم back.sh ضعه مثلا في /etc

    وقم باعطائه الترخيص 755

    وقم بالتحكم باوقات تنفيذه من خلال cron jobs

    وسوف يقوم بضغط جميع القواعد في ملف .sql مرتبا بتاريخ يوم اخذ الباك اب وكل شهر سوف يكون بمجلد منفصل مرقم برقم الشهر والسنه وبداخله ملفات الباك اب الخاصه بهذا الشهر مرقمه بتاريخ ايام الباك اب





    __________________
    سيكـــيوريتي واي لخدمات وأمن الانترنت
    http://securityway.net

    admin@securityway.net

  7. #7
    عضو نشيط
    تاريخ التسجيل
    Jul 2003
    المشاركات
    53


    شكراً اخي SecurityWay ........ جزاك الله خير

    اطلت البحث عن مثل هذا السكربت .... حتى google استمل مني

    آمل ان يكون هناك دروس تعلم bash shell !!





    __________________
    إستخدم ملفك الخاص لكتابة توقيعك





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض