[Ask] Eksekusi Perintah CLI di Bash Script

Discussion in 'Web Hosting' started by root001, 1 May 2014.

Thread Status:
Not open for further replies.
  1. root001

    root001 Poster 1.0

    Messages:
    76
    Likes Received:
    4
    Trophy Points:
    8
    Selamat siang para master dan rekan2 di DWH dan selamat berlibur bagi yang libur
    saya newbie izin bertanya lagi Om perihal bash script.
    Gini Ceritanya.
    saya lagi belajar tentang bash script basicnya dan kebetulan saya ada akses point nah dari akses point ini saya punya ide untuk melakukan perubahan password melalui bash script jadi ini saya jadikan bahan pelajaran saya.

    Jika kita mau rubah passwordnya dari CLI dengan menjalankan perintah berikut :
    [root@coba:/]# uci set wireless.@wifi-iface[0].key="123456789WPA"
    [root@coba:/]# uci commit wireless
    [root@coba:/]# wifi
    Nah jika kita ketik dan jalankan perintah di atas satu persatu melalui console berfungsi dengan baik.
    Kemudian saya mau kembanginnya ke bash script dgn code seperti berikut :
    Code:
    #!/bin/sh
    #
    clear
    echo "Perubahan Password"
    echo ""
    echo "1. Change Password"
    echo "2. Proses New Password"
    echo "3. Done"
    echo "4. Munculkan Password WPA Baru Anda"
    echo "5. Tutup"
    
    echo -n "Silahkan Ketik Nomor Yang Ingin di Atas Untuk Proses Perubahan secara berurut : "
    read command
    case $command in
    
            1)
                    echo ""
                            echo uci set wireless.@wifi-iface[0].key="123456789WPA"
                            echo "Password sudah dirubah Mohon Tekan 2 Untuk proses !!" &&
                            sleep 3 && /bin/pas
                            ;;
    
            2)
                    echo ""
                            echo uci commit wireless
                            echo "Sudah dibantu Proses, Mohon Tekan 3 Untuk Menerapkan Password Baru !!" &&
                            sleep 5 && /bin/pas
                            ;;
            3)
                            echo wifi
                            echo "Selamat anda sudah berhasil merubah password WPA Anda !!" &&
                            sleep 20 && /bin/pas
                            ;;
            4)
                            pass=`cat /etc/config/wireless`
                            echo "$pass"
                            ;;
    
            5)
                    exit
                            ;;
    
            *)
                    echo ""
                    echo "Perintah Yang Anda Masukan Salah !!"
                    sleep 1 && /bin/pas
                            ;;
    
    esac
    
    Saat code di atas dijalankan kurang lebih tampilannya seperti ini :
    http://postimg.org/image/ru9p9939p/
    Namun saat saya coba jalan kan tidak berubah passwordnya sesuai yg disett dan juga tidak memunculkan error.
    Aneh mohon bantuannya rekan2 dan para mastah2 apakah code saya di atas ada yg kurang atau salah.
    Atau ada scriptnya yg lebih pas dan sederhana ?
    Maaf saya baru belajar code diatas juga merupakan hasil comot2 di internet.
    Terimakasih banyak sebelumnya.
     
  2. arieonline

    arieonline Expert 1.0

    Messages:
    885
    Likes Received:
    127
    Trophy Points:
    43
    maksudnya ini apa mas?

    echo uci set wireless.@wifi-iface[0].key="123456789WPA"
     
    root001 likes this.
  3. root001

    root001 Poster 1.0

    Messages:
    76
    Likes Received:
    4
    Trophy Points:
    8
    Terimakasih banyak atas replynya Mas Arie

    Jadi gini Mas, untuk melakukan perubahan passwordnya perintah yg harus dijalankan yaitu :
    [root@coba:/]# uci set wireless.@wifi-iface[0].key="123456789WPA" <<<-------------------Menjalankan perintah ini untuk menset password
    [root@coba:/]# uci commit wireless <<<-------------------Untuk menerapkan password yg barusan kita sett
    [root@coba:/]# wifi <<<-------------------Untuk mengrestart wifi/wlannya agar mengikuti perubahan yg barusan kita sett.
    Nah ketika saya ketik manual satu per satu perintah di atas berfungsi dgn baik.
    Kemudian saya mau coba kembangkan ke bash script untuk bahan2 belajar nah oleh sebab itu saya pakai echo uci set wireless.@wifi-iface[0].key="123456789WPA" untuk menjalankannya melalui bash. nah kenapa saya pakai echo spasi perintah alasan saya menggunakan seperti itu ga ada sich Mas hanya logika saya saja tanpa didasari basic.
    bagusnya perintahnya seperti apa yach mas agar bisa berjalan untuk bash scriptnya.

    123456789WPA = Password/Key WPA yg akan disett

    Terimakasih banyak Mas.
     
  4. mustafaramadhan

    mustafaramadhan Hosting Guru

    Messages:
    3,237
    Likes Received:
    857
    Trophy Points:
    113
    Saya pikir masalahnya ada di 'echo uci set wireless.@wifi-iface[0].key="123456789WPA"' dan 'echo uci commit wireless'. Rasanya tidak perlu 'echo'.
     
    root001 likes this.
  5. root001

    root001 Poster 1.0

    Messages:
    76
    Likes Received:
    4
    Trophy Points:
    8
    Perfect Mas Mustafa, berhasil.
    Terimakasih banyak solusinya.


    Sorry sedikit OOT:
    Mau tanya satu lagi Mas. Kondisi di atas kan password yg akan disett static sudah ditentukan
    Nah jika saya pengen nya berubah2 bisa ga seperti ini kira2 Mas :

    1)
    echo ""
    pass=`cat /etc/random`
    uci set wireless.@wifi-iface[0].key="$pass"
    echo "Password sudah dirubah Mohon Tekan 2 Untuk proses !!" &&
    sleep 3 && /bin/pas
    ;;

    apakah perintah seperti itu bisa Mas?
    dan kira2 isi untuk file randomnya bagaimana Mas intinya agar nilainnya bisa berubah2 setiap dieksekusi.

    Terimakasih banyak.
     
  6. arieonline

    arieonline Expert 1.0

    Messages:
    885
    Likes Received:
    127
    Trophy Points:
    43
    utk random pass, sy pake ini
    Code:
    PASS=`cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 15 | head -n 1`;
     
    root001 likes this.
  7. root001

    root001 Poster 1.0

    Messages:
    76
    Likes Received:
    4
    Trophy Points:
    8
    Apakah seperti ini untuk menerapkannya Mas dgn kondisi yg saya punya ?

    1)
    echo ""
    pwd=`cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 15 | head -n 1`
    uci set wireless.@wifi-iface[0].key="$pwd"
    echo "Password sudah dirubah Mohon Tekan 2 Untuk proses !!" &&
    sleep 3 && /bin/pas
    ;;

    btw, ada cara tanpa menggunakan fold ga Mas? soalnya di system saya ga dikenali foldnya
    /etc/coba: line 3: fold: not found

    Terimakasih banyak Mas atas bantuannya.
     
  8. root001

    root001 Poster 1.0

    Messages:
    76
    Likes Received:
    4
    Trophy Points:
    8
    Untuk generate password secara acak
    Jadinya saya buat seperti ini :

    1)
    echo ""
    pwd=`sh /etc/random`
    uci set wireless.@wifi-iface[0].key="$pwd"
    echo "Password sudah dirubah Mohon Tekan 2 Untuk proses !!" &&
    sleep 3 && /bin/pas
    ;;

    yg mana isi dari /etc/random yaitu :
    #!/bin/sh

    echo
    {
    local l=$1
    [ "$l" == "" ] && l=16
    tr -dc A-Za-z0-9_ < /dev/urandom | head -c ${l} | xargs
    }
    Sumber : http://www.cyberciti.biz/faq/linux-random-password-generator/

    Ketika saya jalankan manual dgn mengetik sh /etc/random berfungsi dgn baik berhasil menggenerate secara acak.
    namun ketika saya gabung dgn script nomor 1 di atas ko tdk jalan yach pesan saat dieksekusi seperti ini : uci: Parse error
    Apakah ada yg salah atau yg krng sesuai codenya ?
     
  9. root001

    root001 Poster 1.0

    Messages:
    76
    Likes Received:
    4
    Trophy Points:
    8
    Clear.
    Case closed, solusinya hanya menghilangkan echo di dalam file /etc/random.

    Untuk Mas Arie dan Mas Mustafa terimakasih banyak atas bantuan solusinya.
     
Loading...
Thread Status:
Not open for further replies.

Share This Page

Loading...