Tampilkan postingan dengan label linux. Tampilkan semua postingan
Tampilkan postingan dengan label linux. Tampilkan semua postingan

2013-03-20

Koneksi database SQL Server di PENTAHO

Untuk menghubungkan Pentaho dengan database SQL Server di perlukan koneksi JDBC, bisa didownload di website resmi Microsoft ( jangan menggunakan JTDS )  


setelah download, copy sqljdbc.jar ke folder sebagai berikut :

Pentaho Administration-console : copy ke /administration-console/jdbc
Pentaho biserver-ce : copy ke /biserver-ce/tomcat/webapps/pentaho/WEB-INF/lib
Pentaho Report Designer : copy ke /report-designer/lib/jdbc
Pentaho Kettle : copy ke /data-integration/libext

Install OpenERP via apt-get

Edit   /etc/apt/source.list


sudo nano /etc/apt/source.list 

Tambahkan baris deb http://nightly.openerp.com/7.0/nightly/deb/ ./

simpan kemudian jalankan 

sudo apt-get update 
sudo apt-get install openerp 



2011-05-30

Menggunakan Mdbtools di debian / ubuntu

 

Mdbtools, aplikasi powerfull buat view dan export database Access di dalam Linux, kita bisa query, export, view tables, etc, sayang belum bisa modify databasenya...

 

 

Cara Install (di Debian / Ubuntu)

 

apt-get install mdbtools

 

atau kalau ingin install dari source / package lain bisa berkunjung ke

http://mdbtools.sourceforge.net/

 

setelah berhasil install akan ada file file berikut ini

 

mdb-array mdb-header mdb-parsecsv mdb-schema mdb-tables

mdb-export mdb-hexdump mdb-prop mdb-sql mdb-ver

 

berarti instalasi sukses...

 

Sekarang caranya menggunakan

 

Ambil salah satu contoh file MDB ( contoh database Espt )

kita taruh di /home/ayumi/Projects/espt Data.mdb

 

Untuk Menampilkan semua table

ayumi@kazumi ~/Projects/espt $ mdb-tables -1 Data.mdb

REF_SSP

REF_FKTR_PK

REF_FKTR_PM

REF_KPP

REF_LAMP

REF_TRANS

SETTING_TARIF

 

 

Untuk Menampilkan semua DDL ( schema database )

 

ayumi@kazumi ~/Projects/espt $ mdb-schema Data.mdb

-------------------------------------------------------------

-- MDB Tools - A library for reading MS Access database files

-- Copyright (C) 2000-2004 Brian Bruns

-- Files in libmdb are licensed under LGPL and the utilities under

-- the GPL, see COPYING.LIB and COPYING files respectively.

-- Check out http://mdbtools.sourceforge.net

-------------------------------------------------------------

DROP TABLE REF_SSP;

CREATE TABLE REF_SSP

(

KDMAP Text (510),

KD_JNS_BYR Text (510),

NMJNSBYR Text (510),

NMMAP Text (510)

);

-- CREATE ANY INDEXES ...

 

bla bla bla

 

 

 

 

Untuk Query data table tertentu

 

ayumi@kazumi ~/Projects/espt $ echo "select KD_KPP,NM_KPP from KPP "|mdb-sql Data.mdb

+----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------+

|KD_KPP |NM_KPP |

+----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------+

|058 |KPP PENANAMAN MODAL ASING LIMA |

 

Export table ke file CSV

 

 

ayumi@kazumi ~/Projects/espt $ mdb-export -d ";" -H -q "'" Data.mdb KPP > export.csv

 

Script di atas export data dari table KPP ke file export.csv dengan row delimiter “;” dan quote “ ' “ tanpa header row

 

 

Generate sql script untuk create table

ayumi@kazumi ~/Projects/espt $ mdb-schema Data.mdb > sql_script.sql

 

Generate sql script untuk create table dengan backend PostgreSQL

ayumi@kazumi ~/Projects/espt $ mdb-schema Data.mdb postgres > sql_script.sql

 

Generate sql script untuk create table dengan backend Oracle

ayumi@kazumi ~/Projects/espt $ mdb-schema Data.mdb postgres > sql_script.sql

 

 

 

2011-04-06

Backup Data di Windows ke Linux menggunakan scp tanpa menggunakan password

Backup data menggunakan scp atau rsync mungkin sudah biasa di dunia linux dkk, sekarang gua coba praktekkan di windows .. ternyata cukup mudah .. 

caranya 

Install SSH Server di Server linux 

me@debian:~$ sudo apt-get install openssh-server

 

buat folder untuk tempat backup 

me@debian:~$sudo mkdir /data /data/backup_001

Jangan lupa beri ownershipnya 

me@debian:~$sudo chown -r mybackup.mybackup  /data /data/backup_001

(asumsinya gua create user mybackup khusus untuk kebutuhan copy dan rsync)


DI client ( Windows XP) 

Buat folder  C:\scp

copy file pscp.exe dan puttygen.exe dari http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html ke C:\scp



jalankan puttygen.exe 

pilih yang RSA2, kemudian generate key-nya 

simpan file ppk -nya (private key)  di c:\scp ::  contoh (pkey.ppk)

buka file ppk dengan text editor 

(ambil dari web http://www.codelathe.com/blog/index.php/2009/02/20/ssh-without-password-using-putty/ ) 

 

Login ke server ..

buat folder .ssh di dalam home user ... 

sudo mkdir /home/mybackup/.ssh

kemudian buat file authorized_keys di dalam folder .ssh copy paste script yang di kotak merah atas (buat menjadi 1 baris dengan menghilangkan spasi dan carriage return) didepan barusnya tambahkan text ssh-rsa 

authorized_keys

 

Sampai sini dari sisi server sudah siap menerima data dari client dan menggunakan authentikasi RSA2

sekarang di client kita mau test copy file ke server

 

jalankan di cmd (command prompt)

Syntax nya 

pscp.exe -r -i namappk.ppk [source file / direktori] [destination direktori]

contoh ( kita mau backup data yang ada di D:\mydata ) 

c:\scp\pscp.exe -r -i pkey.ppk D:\mydata mybackup@ipserver.local:/data/backup_001

 

jika ingin dijalankan terus ..tinggal copy script ke atas ke dalam file text.. beri extension .bat. jadi tinggal jalankan file batnya otomatis akan ke backup semua, tanpa prompt password dari server

 


 

2010-12-15

Python Component dan IDE yang penting

Buat catetan gua biar tidak lupa .. ini daftar component python yang perlu dan kudu ada

 

1. python-pymssql : buat connecting ke SQL Server dan Sybase

2. python-psycopg2 : Buat connecting ke PostgreSQL 8x

3. python-sqlalchemy : SQL Toolkit python dan ORM 

4. SPE ( Stani Python Editor ) dan atau Ulipad (Punya fungsi "Column Mode" seperti UltraEDIT)

5. formAlchemy : HTML Form generator

6. webpy : Buat bikin web application kecil kecilan

 

Semuanya bisa didapet lewat sudo apt-get  di Debian / Ubuntu .. atau lewat easy_install . dan ada versi windowsnya

 

 

 

 

2010-08-31

Backup Folder using Python (tarfile)

Backup folder pake scripting ? python bisa !

syntaxnya kurang lebih seperti ini 

 

#! /usr/bin/env python

#coding=utf-8

import tarfile

t = tarfile.open(name = "/home/zergling/backup.tar.gz", mode = 'w:gz')

t.add("/home/zergling/DFiles/")

t.close()   

Script diatas membackup semua file didalam folder /home/zergling.DFiles ke tar.gz

2010-08-18

[troubleshoot] Error connecting to MSSQL 2005 using python-pymssql

Pernah ketemu error seperti ini  "Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier" saat connect ke  MS SQL 2005 menggunakan Python-PyMSSQL?

Ini solusinya ... semua string mesti di cast ke  nvarchar didalam querynya...
ini kutipannya
http://pymssql.sourceforge.net/faq.php
( "It means that SQL Server is unable to send Unicode data to pymssql, because of shortcomings of DB-Library for C. You have to CAST or CONVERT the data to equivalent NVARCHAR data type, which does not exhibit this behaviour.") 

ini contohnya menggunakan DB dari SAP B1

#!/user/bin/env python

import pymssql
 
conn = pymssql.connect(host='192.168.1.9', user='sa', password='xxxxxx', database='TestDB')
cur = conn.cursor()
cur.execute(' select top 30 docnum, convert(nvarchar, cardcode) , doctotal   \
                from dbo.oinv a   ')
row = cur.fetchall()
print row()

#print row
conn.close()





Powered by ScribeFire.

2010-07-02

IredMail + Openfire

Lanjutan posting sebelumnya ... sekarang gua mau nambahkan OpenFire di Server IredMail gua ..  
Untuk debian Lenny ada sedikit tricky ... setelah install openfire.deb  .. install patchnya, bisa didapet disini  http://steffenzieger.de/index.php/2009/03/25/install-openfire-on-debian-lenny/

Di IredMail .. semua port kecuali email di blok... untuk aktifin XMPP tinggal edit di 
    sudo nano /etc/default/iptables

Unremark yang xmpp .. dan tambahin port 9090 (Untuk openfire Admin)
Setelah selesai , install plugin export/importnya .. kemudian tinggal nambahin user dan buddy list di openfire

caranya :
 
gua siapin data usernya nya dulu (ambil dari CSV untuk import ke IredMail). gua masukkin ke postgreSQL database  untuk manipulasi datanya. 
 
gua create database  dengan nama User_export_temp

create database user_export_temp;
create table export_user();
alter table  export_user add column domain_name varchar(30);
alter table  export_user add column usercode  varchar(30);
alter table  export_user add column userpassword varchar(30);
alter table  export_user add column username  varchar(30);
alter table  export_user add column groupuser varchar(30); 
/* Insert data dari CSV yang udah gua modif sesuai table diatas */

copy user_export_temp from '/home/yoshizuki/myUser.csv' csv;  

kemudian gua create python script untuk retrieve data tersebut kemudian diproses sesuai dengan template import user dari Openfire. Untuk buddy list gua asumsikan semua user yang ada saling terhubung dan dipisahin berdasarkan group bagian aja.

#!/usr/bin/python

import psycopg2, sys,os

outp = file("user.xml","w")

conn = psycopg2.connect("\
dbname='testing'\
user='postgres'\
host='localhost'\
password='postgres' ");
d = conn.cursor()
d.execute (" select a.usercode , \
a.userpasswd,\
a.username ,\
a.usercode || '@' || a.domain_name \
    from tmp_data as a \
    order by a.usercode ")

c = conn.cursor()

records = d.fetchall()
outp.write ("<?xml version='1.0' encoding='UTF-8'?>\n")
outp.write ("<Openfire>\n")

for record in records:
        outp.write("\n<User>")
        outp.write("<Username>" +  record[0] +"</Username><Password/>\n")
        outp.write("<Email>" +  record[3] + "</Email>\n")
        outp.write("<Name>" +  record[2] + "</Name>\n")
        outp.write("<CreationDate>1277954250096</CreationDate>\n")
        outp.write("<ModifiedDate>1277954250096</ModifiedDate>\n")
        outp.write("<Roster>\n")
        
        c.execute("select a.usercode , \
   a.userpasswd, \
            a.username , \
            a.usercode || '@' || a.domainname , \
            b.usercode || '@' || b.domainname , \
            b.username , \
            b.groupname  \
            from export_user as a \
            inner join export_user as b on a.usercode <> b.usercode \
            where a.usercode = '%s' \
            order by a.usercode , b.usercode      " %record[0])
        records2 = c.fetchall()
        for record2 in records2:
            outp.write ('<Item jid="' + record2[4] + '"  askstatus="-1" recvstatus="-1" substatus="3" name="'+ record2[5] + '" >\n')
            outp.write ('<Group>' + record2[6] + '</Group></Item>\n')   
        outp.write("</Roster>\n")
        outp.write("</User>")
outp.write ("</Openfire>\n")        
outp.close()

script ini akan menghasilkan file user.xml, nah file ini yang akan gua upload melalui plugin import user di Openfire..

restart openfire 
sudo /etc/init.d/openfire restart

selesai... semua user  sudah terhubung lewat email dan XMPP ... 

 


Instalasi IredMail

Instalasi IredMail sangat mudah sekali ( kalau punya koneksi Internet :D)  .... 
Gua coba pake Debian Lenny NetInstal di PowerEdge SC440

Gua install Debian dulu .. dengan konfigurasi kosong... tanpa gui... package tambahan yang diinstall hanya  

sudo apt-get install build-essential sudo openssh-server htop nmap mc lynx sun-java6-jdk sun-java6-jre

downlaod IredMail nya  

Kemudian ektrak file  iRedMailnya 

masuk ke folder pkgs
jalankan  sudo bash get_all.sh

setelah itu jalankan sudo bash iRedMail.sh

Ikutin petunjuknya ... setelah selesai  bisa langsung digunakan .... (kurang lebih 1 Jam ... udah termasuk waktu donload package dan install debian)

Tinggal cek disini 

http://[ip server]/mail  --> roundcubemail
http://[ip server]/webmail --> roundcubemail 
https://[ip server]/iredadmin --> untuk adminnya 
https://[ip server]/ldap --> Settingan OpenLDAP







2010-06-07

export Query dari SQL server ke CSV via Python+pymssql

Ternyata export import data lebih mudah di linux dibanding Windows, beberapa hari ini nyari caranya ternyata sangat mudah via Linux...
Pertama install dulu python dan pymssql

sudo apt-get install python2.5 python-pymssql python-csv

test dulu diterminal seperti ini

python
>>>import pymssql ,csv
>>>


kalau tidak ada error berarti packagenya sudah terinstall dengan baik.. selanjutnya ngoding, buat file test.py
##############
# test.py          #
##############
import pymssql , csv
conn = pymssql.connect(host='IP SQL server' , user='sa', password='password sa', database='nama databasenya') # connection to database
cur = conn.cursor() # set cursor
writer = csv.writer(open('export.csv','wb')) # Declaration for CSV file and CSV Object
cur.execute( 'select * from table1 ') # Execute query
row = cur.fetchall(row) # Retrieve result in tuple object
writer.writerows(row) # Write row Object into csv file
conn.close # close database connection


Selesai.. mantab kan ... cuman < 10 baris doank ... hehehehehehe









, , ,



Powered by ScribeFire.

2010-02-08

Komputer yang sudah pernah ditest menggunakan LinuxMint (Helena, Gloria)

 Daftar komputer yang sudah gua install dengan LinuxMint,

Server :
DELL PowerEdge SC 440 , 430 : Jalan Mulus, tanpa trouble

Desktop :
DELL Optiplex 210L,170L,330,360 : Semua berjalan Mulus ...dengan Memory minimal 512Mb
Compaq CQ2030L,2035D (Atom) : Semua kebaca, kecuali yang seri CQ2030L soundcardnya masih trouble ... kedetect tapi tidak keluar suaranya (udah diotak atik alsaconf masih bisu :( ) ....

Laptop / Netbook :

DELL Latitude D510 : Mulus lus lus lus ....
Sony Vaio CR220E : Di Gloria, MotionEye dan Compiz tidak jalan , Di Helena masih trouble di motionEye .. mesti otak atik lagi.....
DELL Inspiron S10 Mini  : Mulus dengan Helena, VideoCam, Bluetooth, wifi kedetect semua ...
DELL Inspiron S10s Mini  : Mulus dengan Helena, VideoCam, Bluetooth, wifi kedetect semua ...
Compaq B1200  : Mulus ... bluetooth masih trouble ....
Axioo (Seri tidak tahu) : Wifi ga kedetect, chipsetnya VIA
LACIN (Laptop China)  : Wifi ga kedetect (lspci outputnya RAlink ), lain lain mulus...











Powered by ScribeFire.

Membuat Linux Live CD di FlashDisk

Bingung dengan distro Linux yang banyak banget? pengen nyobain tapi males burn ke CD? Mesti coba tools yang namanya UnetBootIn, buat bikin Flashdisk berfungsi sebagai Live CD ..
Di Ubuntu tinggal ketik

sudo apt-get install unetbootin

setelah selesai jalankan sudo unetbootin di terminal, nanti akan muncul tampilan seperti ini



Tinggal Pilih ISO nya atau langsung donlod Live berdasarkan distribusinya ....

Note : Flashdisk mesti format FAT32

Enjoy ....




Powered by ScribeFire.

2009-12-13

mencari file di linux

locate

di linux ada beberapa metode untuk mencari file. gw dulu memakai metode locate, tetapi locate ini mempunyai kelemahan..yaitu harus menjalankan command updatedb dulu supaya mengupdate database file yang ada di sistem, jangan dikira command updatedb lgsg jadi, makan waktu juga dan pula updatedb ini musti pake sudo jadi ga bisa user biasa .. jadi step-nya :
detanto@detantoCQ45:~$ sudo updatedb
[sudo] password for detanto
kemudian kita masukkan file yang kita cari, seumpama kita mencari file berekstensi conn(file koneksi aquafold datastudio)
detanto@detantoCQ45:~$ locate *.conn
/home/detanto/.datastudio/connections/detantot61.conn
/home/detanto/.datastudio/connections/edp01.conn
/home/detanto/.datastudio/connections/kimsystem.conn
/home/detanto/.datastudio/connections/mysql - lokalhos.conn
find
selain locate ada juga find, hmmm ini yg sekarang sering banget gw pake .. karena lgsg jebret ga perlu update2an segala. cuman memang lebih lelet karena lgsg nyari file di sistem
perintah sering gw pake :
find /(lokasi pencarian) -iname file_yg_dicari
perintah diatas bisa dibaca, cari file_yg_dicari mulai dari root(/) dan ga pedulikan uppercase ato lowercase atau case insensitive (option iname), kalo case sensitive gunakan option -name
perintah find ini bener2 bisa diulik macem2, berikut share dari pengalaman gw tentang beberapa kombinasi command find :
  1. mencari direktori bernama kemas
    detanto@detantoCQ45:~$ find /home/detanto -type d -name kemas
    /home/detanto/.gconf/apps/control-center/network/kemas
    /home/detanto/Documents/NetBeansProjects/unused/kemas-persistence-old/src/id/co/kemas
    /home/detanto/Documents/NetBeansProjects/unused/kemas-persistence-old/build/classes/id/co/kemas
    /home/detanto/Documents/NetBeansProjects/unused/kemas-persistence-old/build/test/classes/id/co/kemas
    /home/detanto/Documents/NetBeansProjects/unused/kemas-persistence-old/test/id/co/kemas
    Type d merupakan direktori, ada banyak pilihan type (dari perintah man find), kalo gw sih seringnya cman pake d sama f doang :D
    b      block (buffered) special
    c character (unbuffered) special
    d directory
    p named pipe (FIFO)
    f regular file
    l symbolic link; this is never true if the -L option or the -follow option is in effect,
    unless the symbolic link is broken. If you want to search for symbolic links when -L is in effect, use -xtype.
    s socket
    D door (Solaris)
  2. mencari file/direktori hidden, tinggal ketik
    find . -type f -name ".*"find . -type d -name ".*"
    titik disini adalah direktori user berada. jadi seumpama kita berada di /home/detanto, perintah ini akan mencari di direktori2 yang ada didalam /home/detanto

  3. mencari file yang yang mengandung "detanto" berukuran diatas 5MB
    detanto@detantoCQ45:~$ find -iname detanto* -size +5M
    /opt/mysql_database/misc/detantonux.err
  4. Mencari file dengan permission tertentu.
    misalnya kita mau mencari file dengan permission 777 dan menampilkannya dengan command ls -l
    detanto@detantoCQ45:~/test$ find . -perm 777 -type f -iname *.txt -exec ls -l {} \;
    -rwxrwxrwx 1 detanto detanto 0 2009-12-13 21:02 ./test1.txt
    misalnya kita mau langsung menghapusnya
    detanto@detantoCQ45:~/test$ find . -perm 777 -type f -iname *.txt -exec rm {} \;
  5. Mencari yang bukan ato find invert

    misal di direktori /home/detanto/test, ada 5 file :
    detanto@detantoCQ45:~/test$ ls -l
    total 0
    -rw-r--r-- 1 detanto detanto 0 2009-12-13 21:41 test1.txt
    -rw-r--r-- 1 detanto detanto 0 2009-12-13 21:02 test2.txt
    -rw-r--r-- 1 detanto detanto 0 2009-12-13 21:02 test3.txt
    -rw-r--r-- 1 detanto detanto 0 2009-12-13 21:02 test4.txt
    -rw-r--r-- 1 detanto detanto 0 2009-12-13 21:02 test5.txt
    Kita mau mencari yang bukan bernama test2.txt
    detanto@detantoCQ45:~/test$ find . -not -iname test2.txt
    .
    ./test4.txt
    ./test1.txt
    ./test5.txt
    ./test3.txt
hmm apalagi ya, sepertinya yg sering aku pake dan hasil browsing2 di internet cman ini, nanti kalo ada lagi aku tambahin di sini :D

2009-10-10

cron, crontab, backup

ada topik basi yg pasti dah pada jago.. cron :)

Apa itu cron?
cron adalah scheduler di unix-like dan merupakan singkatan dari chronograph

cron digunakan untuk mengatur skedul sehingga user dapat menjalankan perintah atau script pada waktu tertentu, biasanya digunakan untuk maintenance atau administrasi.

Apa yang bisa dilakukan cron?

Contoh2 yang bisa dilakukan dengan cron :
  • backup
    bisa backup database, backup data ato backup system
  • kirim email
    seumpama pengen kirim imil ke user jam 10 malem, tinggal diset gaksah balik kantor jam 10 malem :)
  • reboot server
  • dsb
di tempat gw, cron hanya digunakan untuk backup database dan tentu saja download scheduler kekekekek karena ga etis donlod file2 gede pas jam sibuk :P

cron merupakan daemon yang hanya perlu dijalankan sekali dan akan berjalan di background process. Pada kebanyakan distro, cron sudah terinstall secara ostosmastis dan di-load di startup, untuk melihatnya ketik

detanto@detantoCQ45:~$ ps aux | grep cron
root 3625 0.0 0.0 3480 1036 ? Ss 08:43 0:00 /usr/sbin/cron
detanto 11502 0.0 0.0 3340 816 pts/1 S+ 10:06 0:00 grep cron

Menggunakan cron

Ada beberapa cara untuk menggunakan cron, kalo diliat di /etc, akan ada beberapa file yang berbau cron

detanto@detantoCQ45:/etc$ ls -l | grep cron
drwxr-xr-x 2 root root 4096 2009-10-10 09:19 cron.daily
drwxr-xr-x 2 root root 4096 2009-08-30 22:48 cron.hourly
drwxr-xr-x 2 root root 4096 2009-10-05 10:45 cron.monthly
-rw-r--r-- 1 root root 724 2008-11-12 22:47 crontab
drwxr-xr-x 2 root root 4096 2009-08-30 22:48 cron.weekly
dari hasil ls, ada bberapa file yang berbau cron, apabila kita meletakkan script di dalam direktori cron.daily atau hourly, skedul akan dijalankan sesuai dengan nama direktorinya ..
kalo kita mau bikin skedul sendiri yang ga ngikut direktori2 itu, kita bisa edit lgsg ke file crontab. crontab adalah cron table; adalah sebuah file yang berisi skedul yang berisi job yang musti dilakukan pada waktu tertentu.

Isi dari crontab :

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

Syntax crontab :

.---------------- menit
| .------------- jam
| | .---------- hdb
| | | .------- bulan (1 - 12) ato jan,feb,mar,apr ...
| | | | .---- hdm (0 - 6)
| | | | |
* * * * * user cmd

menit perintah akan dijalankan pada menit keberapa, nilai :'0' and '59'
jam perintah akan dijalankan pada jam keberapa, nilai : 0-23, 0 adalah tengah malam
hdb (hari dalam sebulan) perintah akan dijalankan pada hari keberapa dalam sebulan, misal kita mo jalankan perintah pada hari ke 13 setiap bulam , hdb akan mempunyai nilai 13
bulan perintah akan dijalankan pada bulan keberapa dalam setahun, nilai : 1-12 atau nama bulan dalam bhs inggris
hdm perintah akan dijalankan pada hari keberapa dalam seminggu, nilai : 0-6 atau nama hari dalam bhs inggris ((Minggu=0 or 7) ato sun,mon,tue,wed,thu,fri,sat )
user user yang akan menjalankan
cmd perintah yang mau dijalankan
contoh script yang gw masukkin di /etc/crontab

00 23 * * * root mysqldump --user root --password=apaya hrd > /home/detanto/backup_mysql/hrd_`date '+\%Y\%m\%d_\%H\%M\%S'`.sql
Script di atas akan melakukan script backup mysql spesifik ke database hrd tiap jam 11 malem dengan format file :
hrd_`date '+\%Y\%m\%d_\%H\%M\%S'`.sql
di direktori /home/detanto/backup_mysql/

ini gw share script yang menarik, dia nge-backup semua database yang ada di mysql, sebetulnya bisa menggunakan option --all-database, tapi afaik hasilnya jadi satu dalam satu file. Script yang gw buat ini akan membackup satu2 ke dalam file berformat gz .. jd irit :P

#!/bin/bash

dbUSRNM="root" # user database
dbPASSW="qqwwee" # password database
dbHOSTS="localhost" # host database

# path perintah linux
cmMYSQL="$(which mysql)"
cmDUMPS="$(which mysqldump)"
cmGZIP="$(which gzip)"

vrFILE=""
#lokasi backup
vrDESTI="/home/detanto/backup_mysql"
#hostname dari server yg akan dibackup
vrHOSTS="$(hostname)"
#tanggal
vrDATES="$(date +"%Y-%m-%d_%H%M%S")"
#array database yang tidak dibackup
arNOBCK=("mysql" "test" "sample" "information_schema")
#array database yang ada di server
arDBASE="$($cmMYSQL -u $dbUSRNM -h $dbHOSTS -p$dbPASSW -Bse 'show databases')"
#looping semua database yang sudah diisi arraynya di arDBASE
for db in $arDBASE
do
lewat=-1
if [ "$arNOBCK" != "" ];
then
for i in ${arNOBCK[@]}
do
[ "$db" == "$i" ] && lewat=1 || :
done
fi

if [ "$lewat" == "-1" ] ; then
#nama file
vrFILE="$vrDESTI/$db.$vrHOSTS.$vrDATES.gz"
#menjalankan perintah mysqldump dan lgsg di zip ke format gz
$cmDUMPS -u $dbUSRNM -h $dbHOSTS -p$dbPASSW $db | $cmGZIP -9 > $vrFILE
fi
done
simpan script ini, tambahkan permission untuk diexecute trus dipasang deh ke /etc/crontab


sumber2:
http://en.wikipedia.org/wiki/Cron
http://www.tech-recipes.com/category/computer-programming/unix-shell-scripting/bourne-shell-scripting/




2009-07-24

Rip DVD di Ubuntu

beberapa hari lalu dapet kiriman 3 DVD live-nya Mike Portnoy, Billy Sheehan, Paul Gilbert, Neil Morse dan kawan2. lagunya buwat gw muantab2, dan jadi sering diputer. mikir2 gmana caranya dari DVD ini dirip ke mp3 ato ogg ato wav ato teman2nya, biar bisa didengerin sambil sepedaan ato pake mp3 .
sudo apt-get install lsdvd transcode
setelah terinstall, ketik
lsdvd
perintah diatas digunakan untuk mencari informasi track, track terpanjang biasanya yang kita cari, contoh hasil dari lsdvd :

detanto@detantonux:~$ lsdvd
libdvdread: Encrypted DVD support unavailable.
************************************************
** **
** No css library available. See **
** /usr/share/doc/libdvdread4/README.Debian **
** for more information. **
** **
************************************************
Disc Title: AMAZING_JOURNEY
Title: 01, Length: 02:10:11.066 Chapters: 31, Cells: 31, Audio streams: 02, Subpictures: 00
Title: 02, Length: 00:30:38.233 Chapters: 06, Cells: 06, Audio streams: 01, Subpictures: 00
Title: 03, Length: 00:07:49.100 Chapters: 01, Cells: 01, Audio streams: 01, Subpictures: 00
Title: 04, Length: 00:07:54.210 Chapters: 01, Cells: 01, Audio streams: 01, Subpictures: 00
Title: 05, Length: 00:07:19.000 Chapters: 01, Cells: 01, Audio streams: 01, Subpictures: 00
Title: 06, Length: 00:05:34.176 Chapters: 01, Cells: 01, Audio streams: 01, Subpictures: 00
Title: 07, Length: 00:01:59.100 Chapters: 01, Cells: 01, Audio streams: 01, Subpictures: 00
Title: 08, Length: 00:30:36.233 Chapters: 05, Cells: 05, Audio streams: 01, Subpictures: 00

Longest track: 01
dari hasil lsdvd didapatkan track terpanjang adalah track 01, kemudian kita rip dvd tersebut ke ogg. secara default, proses ripping ke ogg membutuhkan oggenc yang tidak diinstall secara default oleh jaunty, untuk instalasinya cukup ketik
sudo apt-get install vorbis-tools
setelah proses install selesai, kita gunakan tools transcode untuk rippingnya, command-nya :
transcode -i DEV -x TYPE -T X,Y,Z -a 0 -y videomode, audiomode -b BRT -m "/home/detanto/Amazing Journey - Track Y.ogg"

-i : input device-nya
DEV : lokasi input
-x : tipe inputnya
TYPE : type input device
-b : bitrate
-T : DVD Title-nya, X : Title, Y : Track, Z : Angle
-y : output
-m : output file namenya
contoh implementasinya :
transcode -i /dev/cdrom -x dvd -T 1,2,1 -a 0 -y null,ogg -b 256 -m "/home/detanto/Amazing Journey - Track Y.ogg"
Penjelasan :
Argumen diatas mengidentifikasi kalo input device-nya adalah "/dev/dvd", tipe inputnya dvd, Title 1, chapter 2, dan camera angle 1, audio track adalah track 0 (-a), output formatnya yang video-nya null, audionya ke ogg, outputnya ke /home/detanto/Amazing Journey - Track Y.ogg
Untuk me-rip semua file ke dalam satu file, tinggal dimainin di parameter -T, diisi 1, -1, dia akan langsung me-rip semua chapter ke dalam satu file

Permasalahannya adalah kemalasan :P, kalo lagunya 1 ato 2 sih ga masalah, lha kalo lagunya diatas 5 males juga bikin command satu2 dan ganti tracknya satu2 setelah selesai. Untuk otomatisasi,
bisa dibuat program bash sederhana :
vi ripdvd
trus isi ripdvd itu dengan kode berikut :
for i in `seq 1 31`;
do
x=$(($i+1))
transcode -i /dev/cdrom -x dvd -T 1,$x,1 -a 0 -y null,ogg -b 256 -m "/home/detanto/Amazing Journey - Track $i.ogg"
done

Penjelasan :
ditentukan yg akan dirip adalah file yang ada di Title 01, Chapter terakhir adalah 31, jadi looping dari angka 1 ke 31, x adalah i+1 karena track pertama biasanya adalah menu-nya jadi ga perlu kita rip

setelah selesai, keluar dari vi, dan beri otorisasi execute ke file ripdvd
chmod +x ripdvd
kemudian jalankan
./ripdvd
selesai deh .. tinggal duduk manis nunggu kelar prosesnya hueheuheue, tapi perlu diingat bhw ga semua track itu dipake jadi ya teteup musti seleksi ulang. yang belum nemu adalah cara lgsg kasi nama file audionya heuheuheue

diambil dari beberapa sumber dan beberapa modifikasi :
1. http://ubuntuforums.org/showthread.php?t=330856
2. man transcode
3. simple bash programming

2009-05-12

admin MSSQL diLinux dengan SQuirreL SQL

Walau gua udah pake 100% linux, tapi server-server dikantor, masih pake Win buat njalanin SQL server dan ASP. Biasanya buat manage / edit SQL gua pake Aqua Datastudio, tapi sekarang sudah tidak gratis lagi :(, akhirnya setelah ubek-ubek dan test, gua putusin pake Squirrel SQL.

caranya donlod dulu di http://squirrel-sql.sourceforge.net/

pastikan JRE /JDK minimal 1.5 keatas..

kemudian jalankan programnya untuk install ke dalam system.

untuk plugin MS SQL server gua pakai JTDS
donlod manual di http://jtds.sourceforge.net/

komponen ini yang saya gunakan juga untuk koneksi MS SQL Server ke OpenOffice.org . (Mantab toh.. :D )

Untuk database yang lain lihat direferensi Squirrel SQL. ada banyak kok.



Driver yang lainnya bisa dilihat di menu driver pada Squirrel SQL, support bayar sekali database,
diantaranya PostgreSQL, Mysql, Oracle, Sybase, SAPDB, SQLLite, HSQL, dsb.


Sebagai catatan, karena berbasis JAVA maka agak berat boo .. minimum RAM 1GB




Powered by ScribeFire.



2009-05-03

setting sharing internet isp fastnet di linux

di rumah internet pake fastnet dari firstmedia yg 130rebuan.. sebelumnya aku share internet pake windows, baik2 aja sih .. g pernah masalah juga wong client-nya cman 2, maksimal 4 hehehhe. cman kurang asoy aja dan dhcp-nya kadang idup kadang engga, jadilah mutusin mau pake linux aja.

setelah bberapa mggu lalu donlod debian lenny, dan udah diinstall kumplit dengan gnome-nya dan mau nggarap ruter tapi ga sempat2, hari ini akhirnya disempetin settingnya. cman makan waktu 15 minit untuk setting jadi router dan dhcpnya .. cepet ya? lha emang gampang soalnya kekekekeke

ada beberapa jalan untuk njadiin ruter; cara gampang dan mudah. cara gampang pake paket yang udah ada, misalnya shorewall; cara yang riweh pake iptables.

coba yang riweh dulu ye..
dari awal deh, install sperti biasa; trus apt-get install sudo supaya ga perlu su - kalo mau ngelakuin apa2.

setelah apt-get install; ketik visudo kmudian di baris trakhir kasi user kita; misalnya :
detanto ALL=(ALL) ALL
instalasi sudo udah selesai, mari kita lanjutin dengan setting ruternya.
Konfigurasi di rumah adalah seperti ini :
internet--fastnet--modem--(eth1)->PC->(eth0)--wireless access point--client

Syarat buat pc jelas NIC-nya harus 2. satu buat external (eth1), satu buat internal (eth0).
ga ngaruh eth0 ato eth1-nya. yang penting satu NIC buat kabel dari modem/internet, yang satunya buat ke jaringan internal, di pcku konfigurasinya kaya gitu :D

pertama2 setting kedua NIC ini, di debian edit file interface di /etc/network
vi /etc/network/interfaces
IP dari fastnet didapat dari server DHCP mereka, jadi eth1 akan diset ke dhcp; sementara eth0 akan diberikan ip fix di range 10.0.0.xxx supaya sama dengan kantorku sekarang. selain itu harus dirubah juga mac address dari eth1 supaya ga usah telpon fastnet untuk nge-flush networkku. fyi firstmedia ngeblok koneksi dari mac address jaringan yang nyambung ke jaringan mereka. umpama sekarang yang kehubung ke internet mereka mac-nya adalah : 00:23:f8:d8:5d:89. kmudian bberapa jam kmudian ada komputer kita yg lain dengan mac address 09:17:e3:d7:94:7f pengen konek ke internet. kalo cuman kita sambungin lgsg ke modem, ini ga akan bisa! dari pengalaman, musti dimatiin dulu modemnya skitar .5 jam ato kalo ga telpon CS-nya firstmedia untuk nge-flush modem kita. wahh males bgt kekekeke ..

di windows, bisa diakalin dengan donlod dulu software namanya macchanger (search di google aja, aku lupa alamatnya). dengan software ini kita bisa ngubah mac address kita dengan membuat batch atau lgsg pake commandnya. misal :
macchanger "Local Area Connection" 00:23:f8:d8:5d:89
dengan perintah ini mac address dari NIC yang mempunyai nama "Local Area Connection akan berubah mnjadi angka tersebut. di debian/ubuntu ato sodara2nya. kita ga perlu install apa2 tinggal kita masukkan di /etc/network/interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 10.0.0.1
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255
gateway 10.0.0.1

auto eth1
iface eth1 inet dhcp
hwaddress ether 00:23:f8:d8:5d:89
setelah itu ketik :
echo “1” > /proc/sys/net/ipv4/ip_forward
command diatas supaya value ip_forward menjadi 1(true), ato komputer ini boleh melakukan ip forwarding
Kemudian ketik :
iptables – t nat –A POSTROUTING –d 0/0 –o eth1 –j MASQUERADE
printah ini memberitahukan menambahkan rules di table nat bhw paket jaringan setelah di routing, untuk tujuan mana saja (-d 0/0, -d adalah destination) dari eth1 (-o eth1) agar di rubah ipnya menjadi ip external server. jadi; klien atau komputer yang melalui router ini, ketika melakukan akses ke internet akan dikenal/menggunakan IP external yang dimiliki router.

setelah selesai, kita coba klien konek ke AP dengan konfigurasi :
ip : 10.0.0.2 // ip tdk boleh sama
subnet : 255.255.255.0 // subnet hrs sama dgn server
gateway : 10.0.0.1 // ip router
DNS 1 : 202.73.99.8 // fastnet
DNS 2 : 61.247.0.8 // fastnet
Tautanseharusnya klien bisa lgsg konek ke internet. ada satu masalah : masa iya musti setting manual tiap kali ada klien/komputer lain konek ke hotspot kita? wah repot dong. masalah ini bs diseleseiken dengan memasang dhcp server di router kita, karena udah pernah aku posting, tinggal dilanjutken aja bacanya ke sini http://nyemplunglinux.blogspot.com/2008/12/dhcp-dynamic-host-control-protocol.html

setelah setting selesei smua, tinggal konek bareng2 deh :D

2009-04-23

Setup Driver printer HP di Linux

Download disini

http://hplipopensource.com/hplip-web/gethplip.html

Ikutin petunjuk disini

http://hplipopensource.com/hplip-web/install/install/index.html

Library yang diperlukan (di Ubuntu)

1. Libusb Devel
2. Libtool
3. python-devel
4. Cups Devel

Selanjutnya jalankan program

$> sh hplip-3.9.2.run


Ikuti petunjuknya, setelah itu setup printer baru dengan

$> sudo hp-setup


Untuk network printer

Administration -> printing -> Windows Printer via Samba -> masukkan komputer dan nama printernya


kemudian ikutin petunjuk selanjutnya ..




Powered by ScribeFire.



2009-03-27

subversion server di debian, tortoiseSVN sbg client di windows

lagi nyari solusi untuk kolaborasi source code dengan rekan satu team. dari saran ifnu, aku coba pake subversion (http://subversion.tigris.org), untuk instalasi windows tinggal donlod versi windowsnya dan install bla2 selese.

ubuntu, debian:
apt-get install subversion
Dulu aku kira ini cuman bs dipake di bahasa pemrograman tertentu, trnyata bisa untuk semuanya (jadi malu :P) .. Jadi critanya di kantor gw, krn developernya kluar masuk jd susah mantau versi terbaru dari aplikasi.

berikut diterjemahin dari svn-book, hasil browsing2 di internet dan share pengalaman.

Apakah subversion itu?
subversion : sistem tersentralisasi untuk share informasi.
intinya adalah repositori yang merupakan pusat dari data. repositori ini sebetulnya mirip dengan file-server, bedanya ia mengingat setiap perubahan yang terjadi di file dan folder tersebut.

di bukunya dijelasin kasus yg sering banget terjadi di kantorku baik sekarang maupun dulu, yaitu mengerjakan satu project yang sama beramai-ramai dengan source code terpusat di server, rese bgt kalo kita ngerjain ABCDE tiba user numpukin dengan EFGH, hangus lah kerjaan kita .. hiks2. misalnya :


ada 2 user, harry dan sally. mereka bertugas untuk mengerjakan project yang sama sehingga mereka mengakses ke repository yang sama. harry & sally mengedit project A, harry merubah menjadi A' dan sally menjadi A'', asumsi harry melakukan proses penyimpanan terlebih dahulu, sehingga project A sekarang menjadi project A'. baru setelah itu sally melakukan penyimpanan. nah pada proses ini ada kemungkinan sally menumpuk atau menimpa pekerjaan harry dengan pekerjaannya.

kalo yang diatas menggunakan metode file sharing, subversion menggunakan metode solusi copy-modify-merge.

detail kasus persis seperti yang dicontohkan diatas, cuman sekarang menggunakan subversion. harry merubah project menjadi A' dan sally merubah menjadi A'', sementara sally sudah menyimpan ke server (commit) terlebih dahulu. ketika harry melakukan penyimpanan ke repository, harry akan mendapat mesej error bahwa modul dia tidak update (karena versioning terakhir adalah sally).


harry harus melakukan checkout file2 ke repository, setelah proses checkout selesai, baru harry bisa melakukan perubahan dan commit ke repository. lha tapi gimana kalo harry dan sally melakukan edit di file yang sama? wew tetep bisa. subversion mengistilahkan ini dengan conflict. confilct dapat diresolve dengan membandingkan file yang di repository dan file yang ada di komputer harry. bisa dicek satu2 perbedaannya baru kemudian di-merge.

hal ini sangat memudahkan, karena kalo dulu pasti ada proses teriak2an dulu kalo lagi arisan koding di kantor hehhehehehehe

Langkah2 settingnya:
1. buat direktori subversion, misal ada di /var/svn/baru/usermng
mkdir -p /var/svn/baru/usermng
2. buat subversionnya :
sudo svnadmin create /var/svn/baru/usermng
3. import data yang akan dipantau
sudo svn import /opt/coding/usermanaj file://var/svn/baru/usermng -m "Aplikasi Subversion"
4. Setting apache
a. Cara Mudah :
apt-get install apache2 libapache2-svn
b.Cara Susah :
menyusul
5. Edit Konfigurasi apache svn yang ada di /etc/apache2/mods-available/dav_svn.conf (<-- lokasi ini kalo instalasi apache liwat apt-get)
DAV svn <-- untuk enabling repository #SVNParentPath /var/svn/baru/usermng <-- Path Repository untuk handling multiple svn SVNPath /var/svn/aplikasi/baru/usermng <-- Path Repository AuthType Basic  AuthName "Aplikasi Subversion" <-- Keterangan AuthUserFile /var/svn/passwd <-- Password file Require valid-user 
6. Ubah kepemilikan folder aplikasi jadi milik si apache
chown -R www-data: /var/svn/aplikasi
7. Buat password file :
httpasswd -c /var/svn/passwd detanto

Untuk clientnya, misalnya di windows; musti install tortoiseSVN yang bisa diunduh di http://tortoisesvn.tigris.org/, letak versi terbaru pada saat blog ini ditulis ada disini, filenya mayan besar; sekitar 19MB.

setelah diinstall, setiap kita klik kanan akan muncul 2 shortcut baru, SVN Checkout dan TortoiseSVN beserta link2nya.

Contoh Penerapan :
1. dari contoh diatas, kita sudah membuat satu repository untuk source code user manajemen (usermng). Misal kita buat satu folder baru "User", kita klik kanan trus pilih SVN Checkout (kalo gambarnya kurang jelas, tinggal diklik aja)


2. Akan muncul dialog box seperti dibawah ini :
masukkan url repository-nya; misalnya http://10.1.2.7/svn/usermng, setelah klik ok, akan muncul permintaan untuk memasukkan user dan password, masukkan user yang telah dicreate seperti contoh diatas :

apabila otorisasi berhasil, tortoiseSVN ini akan langsung memeriksa ke repository server semua filenya. apabila di folder kita blum ada maka akan diupdate ke folder tersebut :

setelah proses selesei, bila dilihat di windows explorer tampilannya akan seperti ini

tortoiseSVN akan menambahkan tanda di icon folder atau file, tanda cawang hijau brarti source yang disini source yg tidak mengalami konflik, atau subversion statusnya normal.

Pertanyaannya : ada ga subversion buwat database? gw blun tau, bahkan blun googling jugak heheheheheehe, paling gampang si semua aktivitas database didokumentasiin ke script trus folder script itu di register ke subversion, selesei :D

2009-02-24

setting tanggal,jam di linux liwat terminal

syntaxnya :
date set="STRING TANGGAL"
atau
date -s "STRING TANGGAL"

Contohnya set tanggal baru ke 24 february 2009 11:20:00, ketik ini ke terminal :
# sudo date set="24 FEBRUARY 2009 11:26:00"
atau
# sudo date -s "24 FEBRUARY 2009 11:26:00"

untuk setting waktu saja, formatnya adalah :

# date +%T -s "hh:mm:dd"

disadur dari http://www.cyberciti.biz/faq/howto-set-date-time-from-linux-command-prompt/