Thursday, November 26, 2009

Perangkat untuk PTAPB Yogyakarta

Untuk mendukung pengoperasian Sistem dan Jaringan Komputer, Bidang SJK secara terus menerus mengganti perangkat yang mengalami kerusakan. Tahun Nopember 2009, perangkat yang diberikan adalah 4 unit switch 3Com Baseline Switch 2024 3C16471, 4 unit transceiver AT-MC101XL-20 dan 2 unit Wireless Access Point WRT350N-SG. Meskipun nomor inventaris swicth 2003, namun perangkat tersebut adalah perangkat pengadaan 2009. Bertahun 2003 karena menggunakan mata anggaran penambahan nilai.

Adapun rincian perangkat tersebut adalah :
  1. Switch 3Com Baseline Switch 2024 3C16471, S/N : AC 9N3QA00083159, No. Inventaris : 080.01.00.450304.000.2003 - 2.12.02.04.999.032. Lokasi penempatan : .....
  2. Switch 3Com Baseline Switch 2024 3C16471, S/N : AC 9N3QA00083128, No. Inventaris : 080.01.00.450304.000.2003 - 2.12.02.04.999.037. Lokasi penempatan : .....
  3. Switch 3Com Baseline Switch 2024 3C16471, S/N : AC 9N3QA00083776, No. Inventaris : 080.01.00.450304.000.2003 - 2.12.02.04.999.039. Lokasi penempatan : .....
  4. Switch 3Com Baseline Switch 2024 3C16471, S/N : AC 9N3QA00083149, No. Inventaris : 080.01.00.450304.000.2003 - 2.12.02.04.999.040. Lokasi penempatan : .....
  5. Transceiver AT-MC101XL-20, S/N : A03157G082001630 C, No. Inventaris : 080.01.00.450304.000.2008 - 2.12.02.04.006.006. Lokasi penempatan : .....
  6. Transceiver AT-MC101XL-20, S/N : A03157G082001586 C, No. Inventaris : 080.01.00.450304.000.2008 - 2.12.02.04.006.007. Lokasi penempatan : .....
  7. Transceiver AT-MC101XL-20, S/N : A03157G082001431 C, No. Inventaris : 080.01.00.450304.000.2008 - 2.12.02.04.006.008. Lokasi penempatan : .....
  8. Transceiver AT-MC101XL-20, S/N : A03157G082001588 C, No. Inventaris : 080.01.00.450304.000.2008 - 2.12.02.04.006.010. Lokasi penempatan : .....
  9. Wireless Access Point WRT350N-SG, S/N : CNQ01H400108, No. Inventaris : 080.01.00.450304.000.2003 - 2.12.02.04.000.117. Lokasi penempatan : .....
  10. Wireless Access Point WRT350N-SG, S/N : CNQ01H400108, No. Inventaris : 080.01.00.450304.000.2003 - 2.12.02.04.000.121. Lokasi penempatan : .....
Lokasi penempatan akan segera kami tanyakan.

Sunday, November 22, 2009

Kirim email dengan perintah baris di FreeBSD

Untuk alasan tertentu, kadang kala kita perlu mengirim e-mail menggunakan perintah baris. Sebuah cara mengirim e-mail yang jadul dan primitip. Perintah baris nya cukup sederhana, yaitu :

# mail -s server_mati msmunir@batan.go.id <>

dimana :
  • Opsi "-s" artinya subject, dan kebetulan subyeknya "server_mati"
  • msmunir@batan.go.id adalah alamat e-mail yang dituju
  • pengirimnya adalah root, atau tergantung siapa yang menjalankan perintah baris ini
  • body.txt adalah isi e-mail yang mau dikirim dalam bentuk file TXT
Untuk mengetahui opsi lain dari perintah baris mail, bisa dilakukan dengan menjalankan perintah baris :

# man mail
# mail --help

Sepintas lalu tampaknya perintah baris mail ini tidak berguna. Namun kalau anda jeli, ada aja manfaatnya. Misal, perintah ini bisa dimanfaatkan untuk mendeteksi status satu atau beberapa perangkat jaringan sekaligus. Untuk itu anda perlu membuat sebuah shell script, membuat sebuah file yang berisi kumpulan IP address perangkat yang akan diperiksa dan mengedit file crontab. Contoh shell script dengan nama file router.sh :

#!/bin/sh
# ping.sh - skrip untuk cek keberadaan server
for x in `cat /root/router.txt`
do
if ping -c 1 $x > /dev/null 2>&1;
then
echo do nothing
else
mail -s server_mati msm@batan.go.id < /dev/null
fi
done

Sebaiknya file router.sh diberi attribut 777 saja.

Perangkat jaringan yang akan dipantau, IP Address nya dikumpulkan dalam sebuah file yaitu router_ip.txt. Isi file router_ip.txt adalah :

192.168.1.1
192.168.2.1
192.168.3.1

Sementara crontab digunakan agar skrip di atas bisa dijalankan oleh server secara otomatis sesuai dengan periode yang kita tentukan.

Jika file
router.sh dijalankan, layar monitor kira-kira akan menampilkan pesan sbb :

[root@localhost] ~ # ./router.sh
Null message body; hope that's ok
do nothing
do nothing
[root@localhost] ~ #

Dari tampilan di atas, tampak bahwa salah satu perangkat jaringan ada yang sedang DOWN. Jika perangkat jaringan tidak ada yang bermasalah, tampilan layar monitor menjadi :

[root@localhost] ~ # ./router.sh
do nothing
do nothing

[root@
localhost] ~ #

Edit Crontab dengan menambah 2 baris di file /etc/crontab :

# cek router setiap jam.
0 * * * * root /root/router.sh

Maksud dari skrip di atas adalah, file /root/router.sh akan dijalankan setiap jam atau setiap menit ke 0 (nol). File skrip kebetulan saya simpan di folder /root/, sehingga file yang dijalankan harus ditulis lengkap seperti /root/router.sh. Setelah melakukan perubahan seperlunya pada file crontab, Anda tidak perlu melakukan restart crontab. Crontab secara otomatis akan mendeteksi perubahan dan akan menjalankannya pada siklus selanjutnya. Namun jika ingin melakukan restart crontab, jalankan saja perintah baris di bawah ini :

[root@localhost] /etc/rc.d # ./cron restart
Stopping cron.
Waiting for PIDS: 761.
Starting cron.
[root@localhost] /etc/rc.d #

Dengan menambahkan di crontab, diharapkan skrip router.sh bisa dijalankan setiap jam. Dan bila ada masalah dengan perangkat jaringan bisa langsung dikirim via email.

Jika e-mail akan dikirimkan ke beberapa orang, maka sintak baris tertentu pada file router.sh dapat dimodifikasi menjadi :

mail -s server_mati msm@batan.go.id,msm@yahoo.com < /dev/null

PR selanjutnya adalah bagaimana agar body e-mail ada isinya. Biar yang menerima e-mail gak bingung.

Agar dalam body email yang dikirim ada pesannya, maka ganti salah satu baris file router.sh menjadi :

mail -s server_mati msm@batan.go.id,msm@yahoo.com < /root/router_pesan.txt

Dimana isi file
router_pesan.txt adalah sbb :

Pesan ini dikirim secara otomatis bila ada perangkat yang DOWN. Mohon segera lak
ukan pengecekan dan perbaikan seperlunya terhadap perangkat yang tidak berfungsi
tersebut.
Terima kasih atas kerjasamanya.
Admin

PR sudah terjawab. He he he .... lega rasanya.

Selamat mencoba untuk memantau server, Wireless Access Point, dll yang anda suka. Bahkan petunjuk di atas bisa dikembangkan lagi untuk memantau perangkat jaringan lewat SMS Gateway. Tunggu saja tutorialnya. Soalnya harus bermodalkan modem GSM iTechno yang harganya 2,5 jt. Mudah-mudahan tahun anggaran 2010 bisa kebeli modem GSM.

Kayaknya tutorial ini hanya bisa dijalankan dari server yang sudah tersedia mail server dan memiliki IP Public.

Semoga bermanfaat.

SHELL PROGRAMING / SCRIPT SHELL

Shell merupakan suatu program yang menghubungkan user dengan sistem operasi, dalam hal ini Kernel Unix. Shell menterjemahkan perintah-perintah dan parameter-parameter yang digunakan oleh user dalam environment Linux.

Jenis shell yang terdapat pada Unix :
Bourne Shell (sh) diciptakan oleh Steven Bourne, merupakan shell UNIX yang pertama dan tercepat pada semua system UNIX Bourne Shell memiliki bahasa pemrograman shell yang baik tetapi kurang nyaman dalam hal interaktivitas

C Shell (csh) diciptakan oleh Bill Joy, Bahasa pemrograman shell ini lebih sulit untuk digunakan oleh pemula karena memiliki sintaks mirip bahasa C dan oleh karena itulah shell ini dinamakan C shell. Kelebihannya Shell ini memiliki kemampuan interaktivitas yang lebih baik dibandingkan Bourne shell, serta memiliki fasilitas command completation untuk dapat melengkapi perintah yang belum lengkap dapat dilakukan dengan menekan tombol Tab.

Korn Shell (ksh) diciptakan oleh Dave Korn. Shell ini diciptakan dengan menggabungkan kelebihan Bourne shell dan C shell sehingga shell ini memiliki interaktivitas yang baik dan juga gaya pemrograman shell yang mudah.

Bourne Again Shell (bash), shell ini dikembangkan oleh Steven Bourne (pencipta sh) dimana shell ini adalah pengembangan Bourne shell (sh) yang sudah dilengkapi dengan berbagai kelebihan yang tidak terdapat pada versi sebelumnya. Pada shell ini juga dilengkapi dengan kelebihan-kelebihan yang terdapat pada C shell dan juga Korn shell. Bash juga memiliki bahasa pemrograman yang baik serta interaktivitas yang mudah di pahami. Bash adalah jenis shell yang paling banyak digunakan pada saat ini.

Almquist shell (ash), shell ini dikembangkan Kenneth Almquist. Shell ini kecil, cepat dan kompatibel dengan standard Posix. Ash banyak digunakan dalam embedded linux, embedded adalah sistem tertanam misalnya BIOS komputer

BusyBox, shell ini memiliki ukuran yang kecil dan banyak ditemukan dalam sistem linux embedded, installer, distribusi floppy atau kondisi yang membutuhkan kesederhanaan dan ukuran yang sangat kecil. shell ini juga menyediakan fungsionalitas banyak utiliti sistem dalam satu binary yang di link ke binari busybox.

Debian Almquist shell (dash), merupakan turunan ash, yang diturunkan ke linux dari ash versi Net-BSD, oleh Herbert Xu pada tahun 1997, shell ini merupakan pengganti versi modern dari shell ash pada distro Debian.

Exensible shell (es). shell yang diturunkan dari shell rc pada Plan 9 (distributed sistem operasi yang dikembangkan oleh Bell Labs). Di Linux, es tergolong shell yang sangat langka, dan jarang digunakan

Friendly interactive shell (fish), merupakan shell yang cukup popular di Linux dan tergolong aktif dikembangkan. Fokus utama fish adalah kemudahan penggunaan. Fish tergolong sangat lengkap, kaya fitur dan cukup menarik.

Stand Alone Shell (sash), adalah shell unix yang menyediakan berbagai fungsionaitas utility sistem, dilink secara statik. Dengan fitur tersebut, sash umum ditemukan pada sistem minim resource, installer, atau pada rescue system.

Z shell (zsh), adalah salah satu shell populer di Linux, banyak pengguna linux memanfaatkan kemampuan scripting-nya untuk membangun script yang kompleks.

Hart to Use shell (hush), ide dari shell ini adalah tugas yang sangat sederhana dibuat sangat rumit dan diselesaikan dengan perintah yang panjang.

Karel’s Interactive Simple shell/Karel’s Incredibly Stupid shell (kiss), shell dengan fungsionalitas berbagai utiliti penting sistem yaitu: rkiss dukungan readline, gkiss dukungan getline, bkiss tanpa fitur editing.

Pdmenu, Pdmenu menyediakan user interface berbasi menu full screen yang mendukung warna dan penggunaan mouse di text terminal, shell yang cocok digunakan oleh user yang baru menggunakan Linux

Pemprograman Shell yaitu penyusunan atau pengelompokkan beberapa perintah shell (internal atupun eksternal command) menjadi kumpulan perintah yang melakukan penugasan tertentu sesuai tujuan penyusunnya. Kelebihan shell di linux dibanding sistem operasi lain adalah bahwa shell di linux dimungkinkan untuk menyusun serangkaian perintah seperti halnya bahasa pemrograman (interpreter language), melakukan proses I/O, menyeleksi kondisi, looping, membuat fungsi, dsb. Jadi dengan shell di linux kita dapat membuat program seperti halnya bahasa pemrograman, biasanya pengguna unix atau linux menyebut pemrograman shell sebagai script shell (dalam DOS dikenal dengan istilah batch file).

Pemrograman Shell ditujukan untuk dapat mempermudah user dalam melakukan pekerjaannya, antara lain User script, Network script, dsb

Shell programming adalah file teks biasa yang dibuat dengan menggunkan text editor yang ada di linux (via, emacs, pico, kate, gedit, dsb) dalam penulisan ini menggunakan teks editor vi, agar hasil program bias berjalan maka sintaks penulisan program harus benar dan user mendapat hak akses untuk mengeksekusi file

Contoh Program sederhana :

[root@localhost] ~ # vi echo.sh

#program sederhana
echo “hello World”
clear

setelah itu keluar dari vi dan save dengan menekan tombol Esc kemudian ZZ atau :wq
lalu rubah hak akses file echo.sh

[root@localhost] ~ # chmod a+x echo.sh

jalankan program dengan

[root@localhost] ~ # ./echo.sh

penjelasan :
# digunakan untuk kementar (tidak ikut di eksekusi)
echo digunakan untuk mencetak karakter ke layar
clear membersihkan layar

VARIABLE
Variable adalah suatu nama yang dapat digunakan untuk menempung suatu nilai dan nilai yang ada padanya dapat diubah

Contoh hello world menggunakan variable :

STR=”Hello World!”
echo $STR

penjelasan :
memasukkan tulisan hello world ke variable STR, kemudian $STR menampilkan isi dari variable STR bukan mencetak karakter STR

Contoh penggunaan variabel dan konstanta :

clear
echo –n “Masukkan nama anda : “
read nama
echo –n “Masukkan alamat anda : “
read alamat
kota=”Palembang”
clear
echo “Data yang anda masukkan”
echo “Nama : $nama”
echo “Alamat : $alamat”
echo “Kota : $kota”


penjelasan :
read berfungsi untuk menerima inputan dari keyboard

Program penambahan dua bilangan :

echo -n “masukkan suku pertama : “
read s1
echo -n “masukkan suku kedua : “
read s2
hasil=`expr $s1 + $s2`
echo “$hasil”

Penjelasan :
Jika melakukan operasi matematika seperti +, -, x harus menggunakan expr dan berada di dalam tanda petik

KONDISI
Kondisi digunakan untuk menghasilkan nilai balik. Untuk melakukan pemeriksaan kondisi dapat menggunakan tanda test, berikut macam macam perbandingan nilai :
-eq : sama dengan (=)
-ge : lebih besar sama dengan (>=)
-gt : lebih besar (>)
-le : lebih kecil sama dengan (<=) -lt : lebih kecil (<) contoh : test 10 -lt 1 echo $? test 10 -gt 1 echo $? if then else
biasanya digunakan untuk menentukan percabangan

bentuk penulisan :

if kondisi
then
statement
else
statement
fi

contoh penggunaan if :

echo –n “masukkan sebuah angka : “
read angka
if test `expr $angka % 2` -eq 0
then
echo “bilangan $angka adalah genap”
else
echo “bilangan $angka adalah ganjil”
fi

PERULANGAN/LOOPING

until do done
biasanya digunakan untuk perulangan, di dalam until perulangan akan terus dilakukan sampai kondisi bernilai benar

bentuk penulisan :

until kondisi
do
statement
done

contoh penggunaan until :

echo “masukkan angka : “
read angka
counter=1
until test $counter -gt $angka
do
echo -n ” -”
echo -n “$counter”
echo -n “- “
counter=`expr $counter + 1`
done
echo

while do done
digunakan untuk perulangan, namun berbeda dengan until dimana pada while pengulangan akan terus dilakukan selama kondisi bernilai benar

bentuk penulisan :

while kondisi
do
statement
done

contoh penggunaan while :

echo “masukkan angka : “
read angka
counter=1
while test $counter -le $angka
do
echo -n ” -”
echo -n “$counter”
echo -n “- “
counter=`expr $counter + 1`
done
echo

contoh program membuat user :

a=1
while test $a -le 5
do
useradd user$a
smbpasswd -a user$a
let a=$a+1
done

for do done
di gunakan untuk perulangan

echo “masukkan angka : “
read angka
counter=1
for cetak in `seq 1 $angka`
do
echo -n “-”
echo -n “$cetak”
done

contoh nested loop mengunakan for dan while

echo -n “masukkan angka : “
read angka
counter=1
for cetak in `seq 1 $angka`
do
while test $cetak -le $angka
do
echo -n “ $cetak”
cetak=`expr $cetak + 1`
done
echo “”
done

case in esac
digunakan untuk pemilihan

bentuk penulisan :

case $variable in
option-1)
statement
;;
option-2)
statement
;;
option-n)
statement
;;
esac

contoh program dengan case :

tampilan() {
for posisi in `seq 1 80`
do
tput cup 1 $posisi
echo -n “*”
tput cup 25 $posisi
echo -n “*”
done

for posisi in `seq 1 25`
do
tput cup $posisi 1
echo -n “*”
tput cup $posisi 80
echo -n “*”
done

for posisi in `seq 20 60`
do
tput cup 10 $posisi
echo -n “-”
tput cup 8 $posisi
echo -n “*”
tput cup 17 $posisi
echo -n “*”
done
for posisi in `seq 8 17`
do
tput cup $posisi 20
echo -n “*”
tput cup $posisi 60
echo -n “*”
done
tput cup 9 22
echo -n “MENU”
tput cup 11 22
echo -n “1.Program Penjumlahan”
tput cup 12 22
echo -n “2.Program Ganjil Genap”
tput cup 13 22
echo -n “3.Program Bintang”
tput cup 14 22
echo -n “4.Buat User”
tput cup 15 22
echo -n “5.Exit”
tput cup 16 22
echo -n “Enter Your Choices:”
}

program_penjumlahan(){
clear
tput cup 10 22
echo -n “Masukkan Angka1:”
read angka1
tput cup 11 22
echo -n “Masukkan Angka2:”
read angka2
hasil=`expr $angka1 + $angka2`
tput cup 13 22
echo -n “Hasil penjumlahan angka1 dan 2 adalah $hasil”
read
main
}

program_ganjil_genap(){
clear
tput cup 10 22
echo -n “Masukkan angka:”
read angka3
if test `expr $angka3 % 2` -eq 0
then
tput cup 12 22
echo -n “bilangan genap”
read
main
else
tput cup 12 22
echo “bilangan ganjil”
read
main
fi
}

program_bintang(){
clear
tput cup 10 22
echo -n “Masukkan angka:”
read angka4
for posisi in `seq 1 $angka4`
do
posisi2=`expr $posisi + 21`
tput cup 12 $posisi2
echo -n “*”
done
read
main
}

buat_user(){
clear
tput cup 10 22
echo -n “Masukkan jumlah user”
read user
clear
for ulang in `seq 1 $user`
do
clear
posisi3=`expr $ulang + 1`
tput cup $posisi3 2
echo -n “masukkan user ke $ulang:”
read daftaruser
hasil=`more /etc/shadow | grep $daftaruser`
while [ ! -p $hasil ]
do
echo “user sudah ada, coba yang lain”
read
clear
tput cup $posisi3 2
echo -n “masukkan user ke$ulang:”
read daftaruser
hasil=`more /etc/shadow | grep $daftaruser`
done
adduser $daftaruser
passwd $daftaruser
done
}

main(){
clear
if ((kondisi==1))
then
tput cup 22 22
echo -n “Pilih angka 1-5″
fi
tampilan
read pilihan
if ((pilihan==1))
then
kondisi=0
program_penjumlahan
elif ((pilihan==2))
then
kondisi=0
program_ganjil_genap
elif ((pilihan==3))
then
kondisi=0
program_bintang
elif ((pilihan==4))
then
kondisi=0
buat_user
elif ((pilihan==5))
then
kondisi=0
clear
exit
else
kondisi=1
main
fi
}
main

Sumber :
http://sarangpenyamun.wordpress.com/2008/05/28/shell-programing-script-shell/