Hery Setiawan first BLOG
Manusia ke-6 Milyar yang ikutan nge-Blog
Thursday, May 20, 2010
Monday, March 1, 2010
Membuat Simple Media Player JMF menggunakan Netbeans (Step-by-Step)
Pada Tutorial ini, kita akan membuat Media Player yang sangat simpel. Media Player ini nantinya bisa digunakan untuk membuka file audio dan video. Sehingga kita bisa menonton film melalui Media Player kita sendiri. Ok. Kita Lanjut ya,,,
Sebenarnya kita hanya memanfaatkan kelas MediaPanel yang telah terdapat pada JMF (Java Media Framework). Untuk itu sebelumnya kita download dulu library JMF pada http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/download.html. Saat tulisan ini saya buat, JMF telah sampai versi 2.1.1e.
1. Langkah pertama yang kita lakukan adalah buka Netbeans. Pilih File -> New Project
2. Pilih Java -> Java Application, kemudian klik Next
3. Isi Project Name dengan nama "JavaMediaFramework", kemudian klik Finish
4. Ketikkan code di bawah ini :
// Fig 21.6: MediaPanel.java
// A JPanel the plays media from a URL
package javamediaframework;
import java.awt.BorderLayout;
import java.awt.Component;
import java.io.IOException;
import java.net.URL;
import javax.media.CannotRealizeException;
import javax.media.Manager;
import javax.media.NoPlayerException;
import javax.media.Player;
import javax.swing.JPanel;
public class MediaPanel extends JPanel
{
public MediaPanel( URL mediaURL )
{
setLayout( new BorderLayout() ); // use a BorderLayout
// Use lightweight components for Swing compatibility
Manager.setHint( Manager.LIGHTWEIGHT_RENDERER, true );
try
{
// create a player to play the media specified in the URL
Player mediaPlayer = Manager.createRealizedPlayer( mediaURL );
// get the components for the video and the playback controls
Component video = mediaPlayer.getVisualComponent();
Component controls = mediaPlayer.getControlPanelComponent();
if ( video != null )
add( video, BorderLayout.CENTER ); // add video component
if ( controls != null )
add( controls, BorderLayout.SOUTH ); // add controls
mediaPlayer.start(); // start playing the media clip
} // end try
catch ( NoPlayerException noPlayerException )
{
System.err.println( "No media player found" );
} // end catch
catch ( CannotRealizeException cannotRealizeException )
{
System.err.println( "Could not realize media player" );
} // end catch
catch ( IOException iOException )
{
System.err.println( "Error reading from the source" );
} // end catch
} // end MediaPanel constructor
} // end class MediaPanel
5. Buat kelas Java yang baru dengan nama "MediaTest"
6. Ketikkan code berikut pada kelas MediaTest.java
// Fig. 21.7: MediaTest.java
// A simple media playerpackage javamediaframework;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
public class MediaTest
{
// launch the application
public static void main( String args[] )
{
// create a file chooser
JFileChooser fileChooser = new JFileChooser();
// show open file dialog
int result = fileChooser.showOpenDialog( null );
if ( result == JFileChooser.APPROVE_OPTION ) // user chose a file
{
URL mediaURL = null;
try
{
// get the file as URL
mediaURL = fileChooser.getSelectedFile().toURL();
} // end try
catch ( MalformedURLException malformedURLException )
{
System.err.println( "Could not create URL for the file" );
} // end catch
if ( mediaURL != null ) // only display if there is a valid URL
{
JFrame mediaTest = new JFrame( "Media Tester" );
mediaTest.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
MediaPanel mediaPanel = new MediaPanel( mediaURL );
mediaTest.add( mediaPanel );
mediaTest.setSize( 300, 300 );
mediaTest.setVisible( true );
} // end inner if
} // end outer if
} // end main
} // end class MediaTest
7. Agar bisa menjalankan Media Player, kita memerlukan instalasi JMF 2.1.1.e
8. Tambahkan library JMF pada project kita, dengan cara klik kanan pada libraries -> Add JAR/Folder
Pilih direktori instalasi JMF -> lib -> pilih semua file .jar -> Open
9. Jalankan Project, dengan cara klik kanan pada Project -> Run
Monday, February 15, 2010
Tuesday, January 12, 2010
Mentoring
Hampir 4 bulan KOSLA berdiri, dan selama itu bisa dikatakan KOSLA lumayan produktif dalam urusan kegiatan yang bersentuhan dengan masyarakat umum maupun di dunia maya. Namun sampai artikel ini ditulis ada masalah klasik yang penulis rasakan, yakni masih sangat sedikit rekan yang mau menjadi mentor / membagi ilmunya kepada rekan yang lain. Hal tersebut terjadi baik di darat maupun di dunia maya, padahal salah satu cara menurunkan ilmu dan skill adalah dengan mentoring. Yang dimaksud mentoring atau mengajari di sini bukan seperti dosen yang mengajar kuliah mahasiswa di depan kelas, tapi lebih ke arah informal, meski pun tentu saja tidak ada larangan jika dilakukan dengan cara tersebut.
Mentor memiliki ilmu, skill, pengalaman dan wisdom, yang seringkali belum tertuang dalam bentuk tulisan dan interaksi secara langsung, interaksi ketika seseorang bertanya kemudian ada yang menjawab terkadang dirasa lebih baik dibanding hanya membaca apa yang sudah ada.
Untuk menjadi seorang mentor tidak lah terlalu sukar. Kita tidak harus menjadi pakar nomor satu di bidang tersebut, yang terpenting adalah kita memiliki sedikit ilmu atau kemampuan dan bersedia membaginya. Karena kadang kita tidak sadar kalau kita punya ilmu.
Banyak orang yang tidak ingin membagi ilmunya karena takut akan muncul saingan (dari orang yang kita ajari), ini cara pandang yang salah. Membagi ilmu tidak mengurangi ilmu kita, tetapi bahkan bertambah karena kemungkinan besar akan banyak pertanyaan yang membuat kita lebih mengasah ilmu kita. Mungkin kata membagi ini kurang tepat dipakai, karena pada umumnya ketika sesuatu dibagi porsinya akan menjadi lebih kecil. Mungkin dia harus diganti dengan kata menambah atau menggali yang memiliki konotasi menjadi lebih banyak.
Melaksanakan mentoring itu tidak susah. Jika ditanya tinggal menjawab, sangat sederhana bukan! Jika kita tidak tahu, maka kita bisa bersama-sama dengan yang bertanya mencari jawabannya. Tidak perlu malu jika kita tidak bisa, justru pada bagian inilah kita mengetahui ketidakbisaan kita dan bertambah ilmu kita. Yang paling sulit adalah menjaga kesabaran, seringkali pertanyaan yang muncul mungkin terlalu mudah bagi kita atau terlalu sering ditanyakan sehingga justru membuat kita malas menjawabnya. Begitu saja kok ditanyakan? Membuang-buang waktu saja! Mungkin begitu yang ada di benak kita, inilah letak permasalahannya. Acap kali kita lupa bahwa yang bertanya berganti-ganti, yang bertanya adalah pemula, berbeda dengan penanya terdahulu yang sekarang mungkin sudah mahir. Untuk itulah kita perlu menjaga kesabaran kita.
Jadi, bisa disimpulkan bahwa mentoring itu mudah dan banyak manfaatnya. Siap jadi mentor?
* Ditulis ulang dengan perubahan dari artikel Mentoring, oleh Budi Rahardjo pada majalah infoLinux di halaman 10.
Mentor memiliki ilmu, skill, pengalaman dan wisdom, yang seringkali belum tertuang dalam bentuk tulisan dan interaksi secara langsung, interaksi ketika seseorang bertanya kemudian ada yang menjawab terkadang dirasa lebih baik dibanding hanya membaca apa yang sudah ada.
Untuk menjadi seorang mentor tidak lah terlalu sukar. Kita tidak harus menjadi pakar nomor satu di bidang tersebut, yang terpenting adalah kita memiliki sedikit ilmu atau kemampuan dan bersedia membaginya. Karena kadang kita tidak sadar kalau kita punya ilmu.
Banyak orang yang tidak ingin membagi ilmunya karena takut akan muncul saingan (dari orang yang kita ajari), ini cara pandang yang salah. Membagi ilmu tidak mengurangi ilmu kita, tetapi bahkan bertambah karena kemungkinan besar akan banyak pertanyaan yang membuat kita lebih mengasah ilmu kita. Mungkin kata membagi ini kurang tepat dipakai, karena pada umumnya ketika sesuatu dibagi porsinya akan menjadi lebih kecil. Mungkin dia harus diganti dengan kata menambah atau menggali yang memiliki konotasi menjadi lebih banyak.
Melaksanakan mentoring itu tidak susah. Jika ditanya tinggal menjawab, sangat sederhana bukan! Jika kita tidak tahu, maka kita bisa bersama-sama dengan yang bertanya mencari jawabannya. Tidak perlu malu jika kita tidak bisa, justru pada bagian inilah kita mengetahui ketidakbisaan kita dan bertambah ilmu kita. Yang paling sulit adalah menjaga kesabaran, seringkali pertanyaan yang muncul mungkin terlalu mudah bagi kita atau terlalu sering ditanyakan sehingga justru membuat kita malas menjawabnya. Begitu saja kok ditanyakan? Membuang-buang waktu saja! Mungkin begitu yang ada di benak kita, inilah letak permasalahannya. Acap kali kita lupa bahwa yang bertanya berganti-ganti, yang bertanya adalah pemula, berbeda dengan penanya terdahulu yang sekarang mungkin sudah mahir. Untuk itulah kita perlu menjaga kesabaran kita.
Jadi, bisa disimpulkan bahwa mentoring itu mudah dan banyak manfaatnya. Siap jadi mentor?
* Ditulis ulang dengan perubahan dari artikel Mentoring, oleh Budi Rahardjo pada majalah infoLinux di halaman 10.
Friday, January 8, 2010
Memantau Jaringan Dengan EtherApe
Pernahkah anda menginginkan memantau traffic jaringan disertai dengan tampilan yang menarik, bahkan secara realtime? Jika jawabannya adalah iya, mungkin artikel berikut ini akan sedikit membantu mewujudkan keinginan anda.
Nama aplikasi itu adalah EtherApe, sebuah aplikasi yang tersedia di distro Ubuntu yang akan memantau traffic jaringan anda dan membuat visualisasi secara realtime dalam tampilan yang mudah dibaca. Aplikasi ini bekerja pada environment X Window, jadi jangan mengharapkan untuk menggunakannya dalam lingkungan kerja mode teks. Representasi koneksi digambarkan dengan garis-garis berwarna, yang masing-masing warna berasosiasi dengan protokol-protokol dalam TCP/IP.
Untuk menambahkan aplikasi ini cukup ketik perintah: “sudo apt-get install etherape” di terminal. Kemudian untuk menjalankannya pada main menu pilih Applications >> Internet >> EtherApe (sebagai root). Kemudian pilihlah interface mana yang akan dipantau, dengan cara memilih menu Capture >> Interfaces >> ethx (x adalah interface yang akan anda pantau). Apabila anda membutuhkan informasi statistik setiap traffic berdasarkan protokol, silakan pilih menu View >> Protocols.
Apabila anda menginginkan interpretasi dari file output tcpdump, aplikasi ini pun bisa diandalkan. Tapi sebelumnya anda harus melakukan capture traffic jaringan menggunakan tcpdump, hal tersebut bisa dilakukan dengan perintah “sudo tcpdump -i ethx -n -w /tmp/tcp.out”, ethx adalah jaringan yang dipantau, sedangkan /tmp/tcp.out merupakan folder dan file hasil. Selanjutnya jika file hasil tcpdump berhasil dibuat, maka anda dapat membaca informasi di dalamnya menggunakan EtherApe dengan memilih menu File >> Open, kemudian arahkan ke file yang telah dibuat tadi.
Mudah, pun memantau jaringan tidak lagi membosankan. Jadi tunggu apa lagi, masih ragu untuk beralih ke FOSS?
Disadur dari infoLinux edisi Januari 2010.
Nama aplikasi itu adalah EtherApe, sebuah aplikasi yang tersedia di distro Ubuntu yang akan memantau traffic jaringan anda dan membuat visualisasi secara realtime dalam tampilan yang mudah dibaca. Aplikasi ini bekerja pada environment X Window, jadi jangan mengharapkan untuk menggunakannya dalam lingkungan kerja mode teks. Representasi koneksi digambarkan dengan garis-garis berwarna, yang masing-masing warna berasosiasi dengan protokol-protokol dalam TCP/IP.
Untuk menambahkan aplikasi ini cukup ketik perintah: “sudo apt-get install etherape” di terminal. Kemudian untuk menjalankannya pada main menu pilih Applications >> Internet >> EtherApe (sebagai root). Kemudian pilihlah interface mana yang akan dipantau, dengan cara memilih menu Capture >> Interfaces >> ethx (x adalah interface yang akan anda pantau). Apabila anda membutuhkan informasi statistik setiap traffic berdasarkan protokol, silakan pilih menu View >> Protocols.
Apabila anda menginginkan interpretasi dari file output tcpdump, aplikasi ini pun bisa diandalkan. Tapi sebelumnya anda harus melakukan capture traffic jaringan menggunakan tcpdump, hal tersebut bisa dilakukan dengan perintah “sudo tcpdump -i ethx -n -w /tmp/tcp.out”, ethx adalah jaringan yang dipantau, sedangkan /tmp/tcp.out merupakan folder dan file hasil. Selanjutnya jika file hasil tcpdump berhasil dibuat, maka anda dapat membaca informasi di dalamnya menggunakan EtherApe dengan memilih menu File >> Open, kemudian arahkan ke file yang telah dibuat tadi.
Mudah, pun memantau jaringan tidak lagi membosankan. Jadi tunggu apa lagi, masih ragu untuk beralih ke FOSS?
Disadur dari infoLinux edisi Januari 2010.
Wednesday, January 6, 2010
Web Sockets: a new era for the Web
The Web Sockets API is a part of HTML 5 specification and is to the Web what TCP is to the IP protocol. It allows full-duplex, bidirectional communication between the server and the client browser - no more polling, no more busy waiting, and no more problems with keep-alive HTTP connections. Web Sockets allow to leverage Web applications to an absolutely new level, where they can finally operate like any other network software, without crippled overlays like AJAX or Comet. With Web Sockets you can push data to the client just as you would do it with XMPP.
One of the first browsers to support Web Sockets is Google Chrome. And, of course, one of the first languages natively supporting Web Sockets is Go. Here is a simple server application which sends time information to the browser in one second intervals:
When you compile and start the server, create a web page with the following content and save it to your disk:
If you open the page in Google Chrome, you will see seconds ticking. There is no AJAX, no long-polling or any other fancy stuff - the server pushes data directly to the client. If you open more Chrome instances, you will see that each of them has its own connection with the server with its own clock (however, beware opening many connections in the same window, but in different tabs - this can occasionally crash your browser).
You can also use Erlang to make use of Web Sockets technology. Joe Armstrong has recently posted an article on his blog with full source code of both Web Sockets client and server.
Have fun!
One of the first browsers to support Web Sockets is Google Chrome. And, of course, one of the first languages natively supporting Web Sockets is Go. Here is a simple server application which sends time information to the browser in one second intervals:
package main
import (
"http";
"io";
"strconv";
"time";
"websocket";
)
func ClockServer(ws *websocket.Conn) {
ch := time.Tick(100000000);
t1 := <- ch;
t := t1 / 1000000000;
for {
t2 := <-ch;
td := (t2 - t1) / 1000000000;
if td != t {
io.WriteString(ws, strconv.Itoa64(td));
t = td;
}
}
}
func main() {
http.Handle("/clock", websocket.Handler(ClockServer));
err := http.ListenAndServe(":12345", nil);
if err != nil {
panic("Error: ", err.String())
}
}
When you compile and start the server, create a web page with the following content and save it to your disk:
<html>
<head>
<title>WebSocket</title>
<script type="text/javascript">
function init() {
var tick = document.getElementById("tick");
if ("WebSocket" in window) {
var ws = new WebSocket("ws://localhost:12345/clock");
ws.onmessage = function (evt) {
tick.innerHTML = evt.data;
};
} else {
tick.innerHTML = "The browser doesn't support WebSocket.";
}
}
</script>
</head>
<body onload="init()">
<span>Seconds elapsed: </span><span id="tick">0</span>
</body>
</html>
If you open the page in Google Chrome, you will see seconds ticking. There is no AJAX, no long-polling or any other fancy stuff - the server pushes data directly to the client. If you open more Chrome instances, you will see that each of them has its own connection with the server with its own clock (however, beware opening many connections in the same window, but in different tabs - this can occasionally crash your browser).
You can also use Erlang to make use of Web Sockets technology. Joe Armstrong has recently posted an article on his blog with full source code of both Web Sockets client and server.
Have fun!
Tuesday, December 29, 2009
Deep Freeze in Ubuntu
Sebenarnya ini trik yang sudah sangat lama, bahkan sekarang pun saya tidak tahu apa cara ini masih bisa dilakukan... hehehe...
Maklum sudah dua kali pergantian codename Ubuntu terjadi sejak pertama kali saya mencoba cara ini, hingga akhirnya kang Wong Aneh formerly Wong Sugio meminta untuk diulas bagaimana mengamankan GNU/Linux seperti Windows dengan deepfreeze.
Kalau diperhatikan sebenarnya faronics sudah mengembangkan deepfreeze for Linux, akan tetapi tetap saja berbayar. Memang pantas jika mengingat fungsi dan kehandalan yang begitu bagus. Tapi bagaimana dengan mereka yang tidak punya uang extra untuk membelinya, membajak? waduh sudah bukan jamannya membajak. Ingat FOSS dikembangkan di Indonesia supaya kita bisa pelan-pelan terbebas dari dosa pembajakan.
Ok, kita langsung to the point aja untuk pembahasan deep freeze ala Linux ini. Konsep dari dari trik ini adalah mem-protect folder home dari user yg mau di protect, kemudian membuat script yg mengekstrak ke home folder semula. Script yang saya gunakan tentu saja tidak murni buatan saya sendiri, saya dapatkan script ini dari bang Anjar Hardiena, pentolan linux untuk warnet dengan distro zencafenya.
Tapi pada saat pertama kali menjalankan script ini tidak lantas langsung berjalan, maklumlah environment yang saya gunakan adalah Ubuntu, sedangkan yang di script itu adalah zencafe yang kalau tidak salah berbasis slackware.Akhirnya setelah oprek otak kanan dan kiri dan atas bantuan mbah google, saya membuat script yang kemudian saya namai Dippris.
Intinya, skrip ini memberi dua pilihan install dan hapus. Kalau install, ditanya, home folder mana yg mau di protect. Misalnya home folder untuk user "bebek", maka nanti sekrip menyimpan folder /home/test di /home/test.tar.gz. Juga meng-update /etc/rc.local dimana ada perintah untuk delete /home/test dan gantikan dg hasil ekstrak /home/bebek.tar.gz. Kalau meng-uninstall Dippris, berati kebalikannya, yaitu delete /home/bebek.tar.gz, dan update /etc/rc.local.
Berikut ini scriptnya, selamat mencoba!
Oh ya, perlu diingat, ini dicoba di ubuntu (kemungkinan besar berjalan pada distro berbasis Debian) dan pastikan xdialog sudah terinstall. Dan yang pasti jalankan dengan hak user Super User atau root dan file Dippris di chmod 755 (sudo chmod 755 Dippris). Ex: (asumsi kita berada satu folder dg script Dippris): "sudo chmod 755 Dippris" (tanpa tanda petik).
#!/bin/bash
# Dippris - Deepfreeze ala GNU/Linux
# Jangan lupa diback up, kalau salah ndak tangung jawab
# Copyleft 2007 by A. Hardiena
# Patched and modified for Ubuntu System by yellowhat89@gmail.com
Xdialog --title "Deepfreeze khas GNU/Linux" \
--menubox " Selamat datang di Dippris." 17 65 3 \
"Install" "Install Dippris" \
"Hapus" "Hapus/Remove Dippris" \
"Batal" "Batal/Abort Instalasi" 2>/tmp/checklist.tmp.$$
choice='cat /tmp/checklist.tmp.$$'
rm -f /tmp/checklist.tmp.$$
case $choice in
"Install")
ask='mktemp -q /tmp/menu.XXXXXX'
header="Deepfreeze ala Linux"
size="9 60"
content="Home folder yang mau di-protect?."
Xdialog --title "$header" --inputbox "$content" $size 2> $ask
if [ ! $?= 0 ]; then
exit 0
fi
directori='cat $ask'
check='cat /etc/rc.local | grep '# Deepfreeze System''
temporary="# Deepfreeze System"
if [ "$check" == "$temporary" ]; then
sed -i "/# Deepfreeze/d" /etc/rc.local
rm /home/$directori.tar.gz
fi
# Processing Deepfreeze and put to /etc/rc.local
cd /home/
rm $directori.tar.gz
tar -cf $directori.tar $directori
gzip --best $directori.tar
sed 's/exit 0//g' /etc/rc.local > /tmp/rc.local.tmp
mv /tmp/rc.local.tmp /etc/rc.local
chmod 755 /etc/rc.local
cat << EOF >> /etc/rc.local
# Deepfreeze System
cd /home/ # Deepfreeze do not manual editing this line
rm -Rf /home/$directori # Deepfreeze do not manual editing this line
tar -xvvzf /home/$directori.tar.gz -C /home/ # Deepfreeze do not manual editing this line
# Deepfreeze has ended here
exit 0
EOF
# Check if autorecovery has errorr
if [ $? = 0 ]; then
content="Deepfreeze home $directori success."
else
content="Deepfreeze home $directori failed."
fi
Xdialog --title "Header" --msgbox "$content" $size
;;
"Hapus")
ask='mktemp -q /tmp/menu.XXXXXX'
header="Deepfreeze ala Linux"
size="9 60"
content="Home folder you want to un-deepfreeze."
Xdialog --title "$header" --inputbox "$content" $size 2> $ask
if [ ! $? = 0 ]; then
exit 0
fi
directori='cat $ask'
sed -i "/# Deepfreeze/d" /etc/rc.local
rm /home/$directori.tar.gz
;;
esac
Maklum sudah dua kali pergantian codename Ubuntu terjadi sejak pertama kali saya mencoba cara ini, hingga akhirnya kang Wong Aneh formerly Wong Sugio meminta untuk diulas bagaimana mengamankan GNU/Linux seperti Windows dengan deepfreeze.
Kalau diperhatikan sebenarnya faronics sudah mengembangkan deepfreeze for Linux, akan tetapi tetap saja berbayar. Memang pantas jika mengingat fungsi dan kehandalan yang begitu bagus. Tapi bagaimana dengan mereka yang tidak punya uang extra untuk membelinya, membajak? waduh sudah bukan jamannya membajak. Ingat FOSS dikembangkan di Indonesia supaya kita bisa pelan-pelan terbebas dari dosa pembajakan.
Ok, kita langsung to the point aja untuk pembahasan deep freeze ala Linux ini. Konsep dari dari trik ini adalah mem-protect folder home dari user yg mau di protect, kemudian membuat script yg mengekstrak ke home folder semula. Script yang saya gunakan tentu saja tidak murni buatan saya sendiri, saya dapatkan script ini dari bang Anjar Hardiena, pentolan linux untuk warnet dengan distro zencafenya.
Tapi pada saat pertama kali menjalankan script ini tidak lantas langsung berjalan, maklumlah environment yang saya gunakan adalah Ubuntu, sedangkan yang di script itu adalah zencafe yang kalau tidak salah berbasis slackware.Akhirnya setelah oprek otak kanan dan kiri dan atas bantuan mbah google, saya membuat script yang kemudian saya namai Dippris.
Intinya, skrip ini memberi dua pilihan install dan hapus. Kalau install, ditanya, home folder mana yg mau di protect. Misalnya home folder untuk user "bebek", maka nanti sekrip menyimpan folder /home/test di /home/test.tar.gz. Juga meng-update /etc/rc.local dimana ada perintah untuk delete /home/test dan gantikan dg hasil ekstrak /home/bebek.tar.gz. Kalau meng-uninstall Dippris, berati kebalikannya, yaitu delete /home/bebek.tar.gz, dan update /etc/rc.local.
Berikut ini scriptnya, selamat mencoba!
Oh ya, perlu diingat, ini dicoba di ubuntu (kemungkinan besar berjalan pada distro berbasis Debian) dan pastikan xdialog sudah terinstall. Dan yang pasti jalankan dengan hak user Super User atau root dan file Dippris di chmod 755 (sudo chmod 755 Dippris). Ex: (asumsi kita berada satu folder dg script Dippris): "sudo chmod 755 Dippris" (tanpa tanda petik).
#!/bin/bash
# Dippris - Deepfreeze ala GNU/Linux
# Jangan lupa diback up, kalau salah ndak tangung jawab
# Copyleft 2007 by A. Hardiena
# Patched and modified for Ubuntu System by yellowhat89@gmail.com
Xdialog --title "Deepfreeze khas GNU/Linux" \
--menubox " Selamat datang di Dippris." 17 65 3 \
"Install" "Install Dippris" \
"Hapus" "Hapus/Remove Dippris" \
"Batal" "Batal/Abort Instalasi" 2>/tmp/checklist.tmp.$$
choice='cat /tmp/checklist.tmp.$$'
rm -f /tmp/checklist.tmp.$$
case $choice in
"Install")
ask='mktemp -q /tmp/menu.XXXXXX'
header="Deepfreeze ala Linux"
size="9 60"
content="Home folder yang mau di-protect?."
Xdialog --title "$header" --inputbox "$content" $size 2> $ask
if [ ! $?= 0 ]; then
exit 0
fi
directori='cat $ask'
check='cat /etc/rc.local | grep '# Deepfreeze System''
temporary="# Deepfreeze System"
if [ "$check" == "$temporary" ]; then
sed -i "/# Deepfreeze/d" /etc/rc.local
rm /home/$directori.tar.gz
fi
# Processing Deepfreeze and put to /etc/rc.local
cd /home/
rm $directori.tar.gz
tar -cf $directori.tar $directori
gzip --best $directori.tar
sed 's/exit 0//g' /etc/rc.local > /tmp/rc.local.tmp
mv /tmp/rc.local.tmp /etc/rc.local
chmod 755 /etc/rc.local
cat << EOF >> /etc/rc.local
# Deepfreeze System
cd /home/ # Deepfreeze do not manual editing this line
rm -Rf /home/$directori # Deepfreeze do not manual editing this line
tar -xvvzf /home/$directori.tar.gz -C /home/ # Deepfreeze do not manual editing this line
# Deepfreeze has ended here
exit 0
EOF
# Check if autorecovery has errorr
if [ $? = 0 ]; then
content="Deepfreeze home $directori success."
else
content="Deepfreeze home $directori failed."
fi
Xdialog --title "Header" --msgbox "$content" $size
;;
"Hapus")
ask='mktemp -q /tmp/menu.XXXXXX'
header="Deepfreeze ala Linux"
size="9 60"
content="Home folder you want to un-deepfreeze."
Xdialog --title "$header" --inputbox "$content" $size 2> $ask
if [ ! $? = 0 ]; then
exit 0
fi
directori='cat $ask'
sed -i "/# Deepfreeze/d" /etc/rc.local
rm /home/$directori.tar.gz
;;
esac
Subscribe to:
Posts (Atom)








