Memanfaatkan Crontab untuk backup database MySQL secara otomatis

Pada postingan saya sebelumnya, telah sedikit dijelaskan mengenai crontab, dan sekarang kita akan mencoba memanfaatkan crontab + shell scripting di linux (ubuntu) untuk membuat penjadwalan backup database MySQL (backup database secara otomatis). Berikut langkah-langkahnya :
1. Buat sebuah file (linux shell scripting) yang melakukan dump/backup database bernama test, misalnya file bernama backup_auto.sh dan disimpan di /home/sigit/

tgl='date +%Y%m%d_%H%M%S';
name=backup_test_$tgl.sql ;
mysqldump -uroot -ppass test > /home/sigit/$name;

baris 1 adalah kode membuat format penamaan file backup (berdasarkan tanggal).
baris 2 adalah kode membuat format file backup.
baris 3 adalah kode untuk membackup database mysql bernama test.
Contoh file hasil backup adalah : backup_test_20100330_210000.sql (Backup tanggal 30 Maret 2010 pukul 21.00).
2. Langkah selanjutnya yaitu men-set file backup_auto.sh sebagai executable file.

sudo chmod +x /home/sigit/backup_auto.sh

3. Langkah terakhir yaitu setting crontab untuk menjalankan file backup_auto.sh berdasarkan jadwal yang di tentukan.

sudo crontab -e

buat jadwal seperti berikut :

0 21 * * 1-5 /home/sigit/backup_auto.sh 2>&1 >> /home/sigit/backup_auto.log

Maksud dari contoh diatas adalah kita membuat jadwal eksekusi backup_auto.sh (file eksekusi backup database test secara otomatis) pada setiap hari kerja (senin-jumat) pukul 21.00 dan menyimpan log/catatan ke file backup_auto.log untuk memeriksa aktivitas dan memudahkan pemeriksaan jika terjadi trouble saat eksekusi .

Demikian posting kali ini. Semoga membantu.

Apa itu HTTPS ???

Sebenernya bisa baca langsung di wikipedia sih, tapi yaaa…. biar menuh-menuhin blog lah.

HTTPS adalah versi aman dari HTTP, protokol komunikasi dari World Wide Web. Ditemukan oleh Netscape Communications Corporation untuk menyediakan autentikasi dan komunikasi tersandi dan penggunaan dalam komersi elektris.

Selain menggunakan komunikasi plain text, HTTPS menyandikan data sesi menggunakan protokol SSL (Secure Socket layer) atau protokol TLS (Transport Layer Security). Kedua protokol tersebut memberikan perlindungan yang memadai dari serangan eavesdroppers, dan man in the middle attacks. Pada umumnya port HTTPS adalah 443.

Tingkat keamanan tergantung pada ketepatan dalam mengimplementasikan pada browser web dan perangkat lunak server dan didukung oleh algorithma penyandian yang aktual.

Oleh karena itu, pada halaman web digunakan HTTPS, dan URL yang digunakan dimulai dengan ‘https://’ bukan dengan ‘http://’

Kesalahpahaman yang sering terjadi pada pengguna kartu kredit di web ialah dengan menganggap HTTPS “sepenuhnya” melindungi transaksi mereka. Sedangkan pada kenyataannya, HTTPS hanya melakukan enkripsi informasi dari kartu mereka antara browser mereka dengan web server yang menerima informasi. Pada web server, informasi kartu mereke secara tipikal tersimpan di database server (terkadang tidak langsung dikirimkan ke pemroses kartu kredit), dan server database inilah yang paling sering menjadi sasaran penyerangan oleh pihak-pihak yang tidak berkepentingan.

sumber : wikipedia

Tutorial Penggunaan Crontab Scheduler di Ubuntu

Apa itu cron / crontab ? Crontab adalah aplikasi daemon (berjalan dibalik layar) yang digunakan untuk menjalankan tugas yang dijadwalkan pada suatu waktu di sistem operasi linux. Setiap user di sistem yang memiliki file crontab, mengijinkan file tersebut untuk melakukan suatu aksi yang telah dispesifikasikan sesuai waktu yang telah ditentukan. Crontab biasa digunakan untuk membuat backup secara otomatis, sinkronisasi files, dll.

1. Install crontab

Buat yang belum diinstall crontab-nya, cara install nya adalah :

sudo apt-get install cron

2. Melihat aktifitas crontab
Untuk melihat schedule yang sedang berjalan di sistem Anda :

sudo crontab -l

3. Mengedit cron jobs

sudo crontab -e

editor default dari cron adalah vi atau pico
4. Format penulisan cron
Format penulisan crontab ditulis dengan format seperti ini :

* * * * * /home/sigit/script.sh

Penjelasan :
5 bintang (*) diatas merepresentasikan bagian2 format tanggal yang berbeda, urutannya sebagai berikut :
1. (* pertama) : menit (isian : 0 – 59)
2. (* kedua) : jam (isian : 0 – 23)
3. (* ketiga) : hari dari bulan / tanggal (isian : 1 – 31)
4. (* keempat) : bulan (isian : 1 – 12)
5. (* kelima) : hari dari minggu (isian : 0 – 6) –> 0 = minggu
Contoh :
> Eksekusi setiap menit :

* * * * * php /opt/lampp/htdocs/jobs/test.php

jadwal tersebut akan mengeksekusi perintah php pada setiap menit dari setiap jam, setiap hari, setiap minggu, setiap bulan ::bingung::, pokoknya setiap menit dah.
> Eksekusi setiap Sabtu jam 12 siang :

0 12 * * 6 /home/sigit/script.sh

(* pertama) artinya pada menit ke 0, (* kedua) artinya pada jam ke 12, (* ketiga) artinya pada tanggal berapapun, (* keempat) artinya pada setiap bulan, (* kelima) artinya pada setiap hari sabtu (6 = sabtu). (semoga ngga bingung)
> Eksekusi pada jam 9 malam setiap hari kerja (Senin – Jumat) :

0 21 * * 1-5 /home/sigit/script.sh

Arinya sama mirip-mirip ama diatas, cuma (* kelima) diisi rentang, yaitu 1-5 (artinya senin-jumat)
> Eksekusi setiap menit ke 30 (setiap jam) pada setiap tanggal 1 (setiap bulan)

30 * 1 * * /home/sigit/script.sh

5. Tips and Trick
> Misalnya kita mau jalanin suatu perintah setiap 10 menit (tiap hari), penulisannya bisa seperti ini :

0,10,20,30,40,50 * * * * /home/sigit/script.sh

Tapi ada trik penulisan yang lebih gampang, caranya seperti ini :

*/10 * * * * /home/sigit/script.sh

arti dari (*/10) adalah (ngerti lah). 😀
> kode-kode special
crontab menyediakan kode-kode special untuk digunakan, berikut kodenya :

@reboot     Run once, at startup
@yearly     Run once  a year     "0 0 1 1 *"
@annually   (same as  @yearly)
@monthly    Run once  a month    "0 0 1 * *"
@weekly     Run once  a week     "0 0 * * 0"
@daily      Run once  a day      "0 0 * * *"
@midnight   (same as  @daily)
@hourly     Run once  an hour    "0 * * * *

Cara pemakaian :

@daily /home/sigit/script.sh

6. Menyimpan log crontab
Supaya kita bisa memonitor pekerjaan crontab kita, hasil log bisa disimpan dalam file, caranya seperti berikut :

@daily /home/sigit/script.sh 2>&1 >> /home/sigit/log/crontab_schedule.log

atau bisa dikirim ke email (harus install mailx dulu), caranya :

@daily /home/sigit/script.sh 2>&1 | mail -s "Cronjob Log sgt.wibowo@gmail.com

Itu dulu yang bisa saya tulis, kalo ada pertanyaa, sanggahan, atau penambahan silahkan hubungi saya

Desktop saya hari ini

Ini adalah screenshot desktop Ubuntu saya hari ini :

Keterangan :
Theme : Balanzan
Menu Bawah : AWN (Avant Windows Manager)
Screenlets enable : ClockScreenlets
Launcher atas dibanyakin biar rame

Pre released SPIN alpha 2 (Countdown ….)

CountdownWaiting for pre released “Spin” alpha 2. Spin is PHP Web Crawler, build with CodeIgniter Framework and can support database : Mysql, Postgre, etc.

Memeriksa Spesifikasi Komputer di Linux

Bagi anda yang ingin memeriksa spesifikasi komputer (hardware dan OS) di linux, bisa dilakukan dengan cara mengetikan perintah di console berikut ini

sudo lshw

maka akan muncul list spesifikasi komputer anda, atau jika ingin menampilkannya dalam format HTML (dengan format ini, spesifikasi akan lebih enak dibaca), yaitu dengan mengetikkan perintah berikut :

sudo lshw -html >> spek.html

lalu lihat file spek.html di posisi direktori anda saat ini.
Semoga bermanfaat.

Pasang Google Maps di Web

Lagi iseng nih, lantaran kantor gw cukup terpencil dan susah untuk jelasin ke orang kalo ada yang mau kesini, jadi ane pasang aja di google maps gan. Sekalian juga share ilmu cara masang google maps di web. Langsung aja gan liat screnshotnya :

Kalo mau liat demo-nya di sini gan, atau source-nya di sini gan.
Kalo ngga mau jalan juga, coba generate ulang Google Maps API Keys nya disini : http://code.google.com/apis/maps/signup.html