[Ask] Eksekusi Perintah CLI di Bash Script


Status
Not open for further replies.

root001

Poster 1.0
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.
 
maksudnya ini apa mas?

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

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.
 
Saya pikir masalahnya ada di 'echo uci set wireless.@wifi-iface[0].key="123456789WPA"' dan 'echo uci commit wireless'. Rasanya tidak perlu 'echo'.
 
Saya pikir masalahnya ada di 'echo uci set wireless.@wifi-iface[0].key="123456789WPA"' dan 'echo uci commit wireless'. Rasanya tidak perlu 'echo'.

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.
 
utk random pass, sy pake ini
Code:
PASS=`cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 15 | head -n 1`;

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.
 
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 ?
 
Clear.
Case closed, solusinya hanya menghilangkan echo di dalam file /etc/random.

Untuk Mas Arie dan Mas Mustafa terimakasih banyak atas bantuan solusinya.
 
Status
Not open for further replies.
Back
Top