Archive for the 'sysadmin' Category

Bagaimana mendisable salah satu path multipath

June 13, 2013

Berikut adalah cara yang saya lakukan untuk melakukan testing apakah multipath sudah bekerja dengan baik.
Caranya adalah dengan mendisable salah satu pathnya, dan lihat apakah filesystem masih bisa diakses.

Melihat semua path yang ada:

[root@dudulz-box ~ ]# multipath -ll
mpath2 (360060e801604750000010475000041ee) dm-13 HP,OPEN-V
[size=100G][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=2][active]
\_ 0:0:0:2 sdc 8:32 [active][ready]
\_ 3:0:0:2 sdf 8:80 [active][ready]
mpath0 (360060e801604750000010475000041ec) dm-11 HP,OPEN-V
[size=100G][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=2][active]
\_ 0:0:0:0 sda 8:0 [active][ready]
\_ 3:0:0:0 sdd 8:48 [active][ready]
mpath1 (360060e8016047500000104750000019b) dm-12 HP,OPEN-V
[size=100G][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=2][active]
\_ 0:0:0:1 sdb 8:16 [active][ready]
\_ 3:0:0:1 sde 8:64 [active][ready]

Lihat status salah satu path dari multipath diatas:

[root@dudulz-box ~ ]# cat /sys/block/sdc/device/state
running

Disable salah salah satu path “sdc”

[root@dudulz-box ~ ]# echo offline > /sys/block/sdc/device/state

[root@dudulz-box ~ ]# cat /sys/block/sdc/device/state
offline

Lihat status multipath setelah didisable, statusnya telah berubah menjadi failed.
Setelah itu coba cek apakah filesystem masih bisa diakses.

[root@dudulz-box ~ ]# multipath -ll
mpath2 (360060e801604750000010475000041ee) dm-13 HP,OPEN-V
[size=100G][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=1][active]
\_ 0:0:0:2 sdc 8:32 [failed][faulty]
\_ 3:0:0:2 sdf 8:80 [active][ready]
mpath0 (360060e801604750000010475000041ec) dm-11 HP,OPEN-V
[size=100G][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=2][active]
\_ 0:0:0:0 sda 8:0 [active][ready]
\_ 3:0:0:0 sdd 8:48 [active][ready]
mpath1 (360060e8016047500000104750000019b) dm-12 HP,OPEN-V
[size=100G][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=2][active]
\_ 0:0:0:1 sdb 8:16 [active][ready]
\_ 3:0:0:1 sde 8:64 [active][ready]

Enable kembali pathnya:

[root@dudulz-box ~ ]# echo running > /sys/block/sdc/device/state

[root@dudulz-box ~ ]# cat /sys/block/sdc/device/state
running

[root@dudulz-box ~ ]# multipath -ll
mpath2 (360060e801604750000010475000041ee) dm-13 HP,OPEN-V
[size=100G][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=2][active]
\_ 0:0:0:2 sdc 8:32 [active][ready]
\_ 3:0:0:2 sdf 8:80 [active][ready]
mpath0 (360060e801604750000010475000041ec) dm-11 HP,OPEN-V
[size=100G][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=2][active]
\_ 0:0:0:0 sda 8:0 [active][ready]
\_ 3:0:0:0 sdd 8:48 [active][ready]
mpath1 (360060e8016047500000104750000019b) dm-12 HP,OPEN-V
[size=100G][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=2][active]
\_ 0:0:0:1 sdb 8:16 [active][ready]
\_ 3:0:0:1 sde 8:64 [active][ready]

Salam.

Lazzy Sysadmin!!

March 10, 2013

Sering dengar pepatah “Lazzy Sysadmin”?
Maksudnya begini, dalam memaintain suatu system kadang sysadmin harus melakukan rutinitas task yang sama terus menerus.
Contoh, misalnya ada log file yang harus dibersihkan setiap hari karena akan memenuhi space filesystem.
Seorang Lazzy Sysadmin, akan dengan sangat pintar membuat sebuah script yang otomatis akan membersihkan log file tersebut.

Sysadmin tersebut dikatakan Lazzy atau pemalas karena berkurang 1 pekerjaannya membersihkan file tersebut diatas.
Otomatis akan lebih banyak waktu yang bisa dipakai untuk browsing – browsing :)

Seorang Lazzy Sysadmin, sebenarnya adalah sysadmin yang sangat berpengalaman dan pintar dalam hal memaintain systemnya.
Karena semua task, alerting, dan banyak rutinitas lainnya akan dijalankan otomatis oleh script – script yang dibuatnya.
Semakin stabil system, biasanya akan semakin sedikit pekerjaan yang dilakukan sysadmin.
Dan orang akan melihat dia selalu dalam keadaan menganggur. Mungkin itu sebabnya muncul istilah “Lazzy Sysadmin”

So, lazzy sysadmin actually is a good sysadmin.

Jadi mulai sekarang, belajarlah menjadi sysadmin yang pemalas.. :)

[Tips] Mem-bypass alias pada command line Linux

October 8, 2012

Teman bule saya memberitahukan saya tentang tips ini. Yaitu cara untuk membypass suatu command yang sudah disetting menggunakan alias. Berikut contohnya:

[root@test1 newfolder]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

Seperti diatas, Redhat membuat default alias pada perintah rm menjadi rm -i. Sehingga apabila kita ingin menghapus suatu file menggunakan perintah rm, maka sebenarnya perintah yang dijalankan adalah rm -i, yang artinya interactive mode. Dengan options ini, setiap file yang akan kita pilih akan melakukan konfirmasi apakah kita benar ingin menghapus file ini atau tidak. Kita harus mengetikkan “y” bila ingin melanjutkan menghapus filenya.

[root@test1 newfolder]# rm newfile1
rm: remove regular empty file `newfile1'? y
[root@test1 newfolder]#

Default alias ini sebenarnya sangat berguna demi keamanan. Agar tidak terjadi menghapus file secara tidak sengaja.
Tapi bila kita sudah yakin dengan file yang akan kita hapus, dan kita tetap menginginkan perintah rm tersebut tetap dialias. Jadi yang kita inginkan saat itu adalah menjalankan perintah rm tersebut tanpa options interactive yang tentunya akan bertanya setiap file yang akan kita hapus.

[root@test1 newfolder]# ll
total 0
-rw-r--r-- 1 root root 0 Oct 8 02:19 newfile2
-rw-r--r-- 1 root root 0 Oct 8 02:19 newfile3
-rw-r--r-- 1 root root 0 Oct 8 02:19 newfile4
-rw-r--r-- 1 root root 0 Oct 8 02:19 newfile5
-rw-r--r-- 1 root root 0 Oct 8 02:19 newfile6
-rw-r--r-- 1 root root 0 Oct 8 02:19 newfile7
-rw-r--r-- 1 root root 0 Oct 8 02:19 newfile8
-rw-r--r-- 1 root root 0 Oct 8 02:19 newfile9
[root@test1 newfolder]# rm newfile*
rm: remove regular empty file `newfile2'? y
rm: remove regular empty file `newfile3'? y
rm: remove regular empty file `newfile4'? y
rm: remove regular empty file `newfile5'? y
rm: remove regular empty file `newfile6'? y
rm: remove regular empty file `newfile7'? y
rm: remove regular empty file `newfile8'? y
rm: remove regular empty file `newfile9'? y
[root@test1 newfolder]# ll
total 0
[root@test1 newfolder]#

Untuk itu yang kita perlukan adalah mem-bypass alias tersebut. Berikut cara mudahnya:

[root@test1 newfolder]# ll
total 0
-rw-r--r-- 1 root root 0 Oct 8 02:31 newfile1
-rw-r--r-- 1 root root 0 Oct 8 02:31 newfile2
-rw-r--r-- 1 root root 0 Oct 8 02:31 newfile3
-rw-r--r-- 1 root root 0 Oct 8 02:31 newfile4
-rw-r--r-- 1 root root 0 Oct 8 02:31 newfile5
-rw-r--r-- 1 root root 0 Oct 8 02:31 newfile6
-rw-r--r-- 1 root root 0 Oct 8 02:31 newfile7
-rw-r--r-- 1 root root 0 Oct 8 02:31 newfile8
-rw-r--r-- 1 root root 0 Oct 8 02:31 newfile9
[root@test1 newfolder]# \rm newfile*
[root@test1 newfolder]# ll
total 0
[root@test1 newfolder]#

Ya benar, cukup gunakan “\” backslash untuk membypass perintah rm tersebut agar tidak menggunakan alias rm -i.

Semoga bermanfaat. :)

Mengkonfigurasi iscsi disk dengan multipath

September 16, 2012

Multipath pada external storage berfungsi sebagai redudansi link. Jadi jika kabel atau salah satu jaringan terputus maka external storage masih tetap bisa diakses.

iscsi sebagai external storage murah meriah (baca: nas) :) pun bisa dibuat multipath. Dengan begitu data anda akan tetap aman jika salah satu link putus.
Berikut adalah yang saya lakukan mengkonfigurasi iscsi via multipathing.

Environment yang saya pakai adalah Virtual Box dengan 2 guest OS RHEL 5.8. Satu sebagai iscsi target dan satu lagi sebagai iscsi initiator.

Hostname: server1(iscsi-target) dan node1(iscsi-initiator)

Pada server1 terdapat 3 nic (eth[0-2]) dengan fungsi eth0 sebagai management, eth1 sebagai network1 dan eth2 sebagai network2.

Pada node1 terdapat 3 nic (eth[0-2]) dengan fungsi eth0 sebagai management, eth1 sebagai network1 dan eth2 sebagai network2.

Berikut /etc/hosts pada keduanya:

[root@node1 data]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost

### server1 ###
192.168.56.3    server1.example.com     server1
192.168.100.10  iscsi-eth1
192.168.200.10  iscsi-eth2

### node1 ###
192.168.56.4   node1.example.com       node1
192.168.100.11  node1-iscsi1
192.168.200.11  node1-iscsi2

Setelah jaringan sudah siap, lanjutkan dengan menginstall iscsi-target pada server1:

Server1:

(Catatan: Sebelumnya siapkan disk partisi yg akan digunakan sebagai disk yg akan diassign ke node1, pada tutorial ini saya menggunakan salah satu partisi lvm)

[root@server1 ~]# yum install scsi-target-utils -y

(Konfigurasikan /etc/tgt/targets.conf menjadi seperti dibawah)

[root@server1 ~]# cat /etc/tgt/targets.conf | grep -v "#"

default-driver iscsi

<target iqn.2012-09.com.example:server.target1>
backing-store /dev/vg_iscsi/lv_target1
</target>

initiator-address 192.168.100.11
initiator-address 192.168.200.11

[root@server1 ~]#
[root@server1 ~]# chkconfig tgtd on
[root@server1 ~]# service tgtd start
Starting SCSI target daemon: Starting target framework daemon
[root@server1 ~]#

Selesai pada server1, lanjut konfigurasi pada node1.

Node1:
(install paket iscsi initiator)

[root@node1 ~]# yum install iscsi-initiator-utils -y
[root@node1 ~]# service iscsi start
[root@node1 ~]# chkconfig iscsi on

(cek apakah bisa mengenali disk dari iscsi target melalui network1 iscsi-eth1)

[root@node1 ~]# iscsiadm -m discovery -t sendtargets -p iscsi-eth1
192.168.100.10:3260,1 iqn.2012-09.com.example:server.target1

(cek apakah bisa mengenali disk dari iscsi target melalui network1 iscsi-eth2)

[root@node1 ~]# iscsiadm -m discovery -t sendtargets -p iscsi-eth2
192.168.200.10:3260,1 iqn.2012-09.com.example:server.target1

(add disk via network1)

[root@node1 ~]# iscsiadm -m node -T iqn.2012-09.com.example:server.target1 -p iscsi-eth1 -l
Logging in to [iface: default, target: iqn.2012-09.com.example:server.target1, portal: 192.168.100.10,3260] (multiple)
Login to [iface: default, target: iqn.2012-09.com.example:server.target1, portal: 192.168.100.10,3260] successful.

(verify apakah disk sudah dikenali, disk dikenali sebagai /deb/sdb)

[root@node1 ~]# fdisk -l

Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        1044     8281507+  8e  Linux LVM

Disk /dev/sdb: 1048 MB, 1048576000 bytes
33 heads, 61 sectors/track, 1017 cylinders
Units = cylinders of 2013 * 512 = 1030656 bytes

Disk /dev/sdb doesn't contain a valid partition table

(add disk via network2)

[root@node1 ~]# iscsiadm -m node -T iqn.2012-09.com.example:server.target1 -p iscsi-eth2 -l

(verify apakah disk sudah dikenali, disk dikenali sebagai /dev/sdb dan /dev/sdc)

[root@node1 ~]# fdisk -l

Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        1044     8281507+  8e  Linux LVM

Disk /dev/sdb: 1048 MB, 1048576000 bytes
33 heads, 61 sectors/track, 1017 cylinders
Units = cylinders of 2013 * 512 = 1030656 bytes

Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/sdc: 1048 MB, 1048576000 bytes
33 heads, 61 sectors/track, 1017 cylinders
Units = cylinders of 2013 * 512 = 1030656 bytes

Disk /dev/sdc doesn't contain a valid partition table

[root@node1 ~]#

Sampai langkah ini configure iscsi initiator sudah selesai, dua disk sudah dikenali melalui 2 jalur network yang berbeda.
Sebenarnya disk tersebut adalah disk yang sama dari iscsi-target disk: “iqn.2012-09.com.example:server.target1″

(scsi_id kedua disk sama, menunjukkan bahwa kedua disk tersebut adalah sama)

[root@node1 ~]# scsi_id -gus /block/sdb
1IET_00010001
[root@node1 ~]# scsi_id -gus /block/sdc
1IET_00010001

Langkah selanjutnya adalah menggabungkan kedua disk tadi menggunakan multipath.

(Config multipath.conf menjadi seperti dibawah)

[root@node1 ~]# cat /etc/multipath.conf | grep -v "#"
defaults {
user_friendly_names yes
}
[root@node1 ~]#

(jalankan service multipathd)

[root@node1 ~]# service multipathd start
Starting multipathd daemon:                                [  OK  ]
[root@node1 ~]# chkconfig multipathd on

(verify apakah multipath sudah aktif)

[root@node1 ~]# multipath -ll
mpath1 (1IET_00010001) dm-2 IET,VIRTUAL-DISK
[size=1000M][features=0][hwhandler=0][rw]
\_ round-robin 0 [prio=1][active]
\_ 1:0:0:1 sdb 8:16  [active][ready]
\_ round-robin 0 [prio=1][enabled]
\_ 2:0:0:1 sdc 8:32  [active][ready]

Sampai langkah ini kedua disk sudah dimultipath menjadi satu “mpath1″
Langkah selanjutnya adalah membuat FileSystem dan memountnya.
Saya membuatnya menggunakan LVM:

[root@node1 ~]# pvcreate /dev/mapper/mpath1
Writing physical volume data to disk "/dev/mapper/mpath1"
Physical volume "/dev/mapper/mpath1" successfully created
[root@node1 ~]# pvs
PV                VG         Fmt  Attr PSize    PFree
/dev/mpath/mpath1            lvm2 a--  1000.00M 1000.00M
/dev/sda2         VolGroup00 lvm2 a--     7.88G       0

[root@node1 ~]# vgcreate vg_iscsi /dev/mapper/mpath1
Volume group "vg_iscsi" successfully created
[root@node1 ~]# vgs
VG         #PV #LV #SN Attr   VSize   VFree
VolGroup00   1   2   0 wz--n-   7.88G      0
vg_iscsi     1   0   0 wz--n- 996.00M 996.00M

[root@node1 ~]# lvcreate -n lv_target1 -L 512M vg_iscsi
Logical volume "lv_target1" created
[root@node1 ~]# lvs
LV         VG         Attr   LSize   Origin Snap%  Move Log Copy%  Convert
LogVol00   VolGroup00 -wi-ao   6.88G
LogVol01   VolGroup00 -wi-ao   1.00G
lv_target1 vg_iscsi   -wi-ao 512.00M
[root@node1 ~]# mkfs.ext3 /dev/vg_iscsi/lv_target1
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67633152
64 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 37 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@node1 ~]#

Sampai sini FS sudah selesai dan tinggal lakukan mounting agar FS tersebut dapat digunakan untuk diisi data.

[root@node1 ~]# mkdir /data
[root@node1 ~]# mount /dev/mapper/vg_iscsi-lv_target1 /data/
[root@node1 ~]#
[root@node1 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
6.7G  1.7G  4.7G  27% /
/dev/sda1              99M   12M   82M  13% /boot
tmpfs                 252M     0  252M   0% /dev/shm
/dev/mapper/vg_iscsi-lv_target1
496M   19M  452M   4% /data

Terakhir mari kita coba menulis file pada FS tersebut.

[root@node1 ~]# cd /data/
[root@node1 data]# ll
total 12
drwx------ 2 root root 12288 Sep 16 01:02 lost+found
[root@node1 data]# touch newfile
[root@node1 data]# ll
total 12
drwx------ 2 root root 12288 Sep 16 01:02 lost+found
-rw-r--r-- 1 root root     0 Sep 16 06:42 newfile
[root@node1 data]#

Selesai. Untuk melakukan testing, kita bisa coba untuk memutuskan salah satu network yg digunakan dalam multipath.
Pada virtual box bisa dilakukan melalui menu:
Klik pada guest os node1 > Settings > Network > Adapter 2 > Cable conected #uncheck untuk memutuskan koneksi

Lalu pada node1 periksa kembali multipathnya:

[root@node1 data]# multipath -ll
sdb: checker msg is "readsector0 checker reports path is down"
mpath1 (1IET_00010001) dm-2 IET,VIRTUAL-DISK
[size=1000M][features=0][hwhandler=0][rw]
\_ round-robin 0 [prio=0][active]
\_ 1:0:0:1 sdb 8:16  [failed][faulty]
\_ round-robin 0 [prio=1][enabled]
\_ 2:0:0:1 sdc 8:32  [active][ready]

Terlihat status disk pada sdb adalah [failed] yg berarti koneksi pada network1 putus
Verify apakah external storage masih bisa diakses dan berfungsi dengan baik.

[root@node1 data]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
6.7G  1.7G  4.7G  27% /
/dev/sda1              99M   12M   82M  13% /boot
tmpfs                 252M     0  252M   0% /dev/shm
/dev/mapper/vg_iscsi-lv_target1
496M   19M  452M   4% /data
[root@node1 data]# touch newfile2
[root@node1 data]# ll
total 12
drwx------ 2 root root 12288 Sep 16 01:02 lost+found
-rw-r--r-- 1 root root     0 Sep 16 06:42 newfile
-rw-r--r-- 1 root root     0 Sep 16 06:48 newfile2
[root@node1 data]#

Selesai, sekarang iscsi disk sudah dimultipath.

Salam.

Solaris admin start up

November 2, 2011

After a few days play with solaris box, berikut yang saya lakukan pertama kali setelah fresh install solaris dengan minimal installation package.

1. Install bash
Pertama kali login, saya disuguhi dengan shell sh. Tidak bisa autocomplete, tidak ada history. It’s take a lot of pain to use it.
Jadi yang pertama saya lakukan adalah menginstall bash shell.

Mounting DVD installer Solaris:
# mount -F hsfs -o ro /dev/dsk/c1t0d0s0 /mnt

Masuk ke direktori paket2 solaris:
# cd /mnt/Solaris_10/Product

Lihat isi direktori tersebut dan filter paket bashnya saja:
# ls | grep bash
SUNWbash
SUNWbashS

Terdapat dua paket bash, SUNWbash adalah binary bash dan SUNWbashS adalah sourcenya.
Informasi paket bisa dilihat pada file pkginfo didalam direktori paket tersebut.

Install paket bash:
# pkgadd -d . SUNWbash

Untuk menggunakan shell bash tersebut ketikkan command bash:
# bash
bash-3.00#

Untuk mendapatkan shell bash setiap login dapat diedit file /etc/passwd dan ganti shellnya ke /bin/bash:
# vi /etc/passwd
root:x:0:0:Super-User:/:/bin/bash

2. Install ssh
SSH is a must :D

Cek service ssh apakah sudah terinstall:
# svcs | grep ssh
#

Bila tidak ada output apa2 berarti ssh belum terinstall

Masuk kedirektori tempat paket2 solaris dan search paket related dengan ssh:
# cd /mnt/Solaris_10/Product
# ls | grep ssh
SUNWsshcu
SUNWsshdr
SUNWsshdu
SUNWsshr
SUNWsshu

Install kelima paket diatas:
# pkgadd -d . SUNWsshcu SUNWsshdr SUNWsshdu SUNWsshr SUNWsshu

Generate certificate:
# /lib/svc/method/sshd -c

Start dan enable service ssh:
# svcadm restart ssh
# svcadm enable ssh

Sekarang periksa kembali apakah service ssh sudah online:
# svcs -a | grep ssh
online 21:46:14 svc:/network/ssh:default

Default konfigurasi sshd adalah tidak membolehkan user root untuk login, berikut adalah untuk membolehkannya:
# vi /etc/ssh/sshd_config
PermitRootLogin yes

3. Install manual
Karena masih newbie disolaris, saya masih sangat tergantung dengan manual :D

Masuk ke direktori paket2 solaris:
# cd /mnt/Solaris_10/Product

Install paket SUNWman dan SUNWdoc:
# pkgadd -d . SUNWman SUNWdoc

Ok, selesai sampai disini. Sebenarnya saya masih butuh satu hal lagi agar bisa nyaman dalam mengkonfigurasi solaris box ini. Yaitu menginstall vim.
Tapi karena langkahnya lumayan panjang, maka akan saya buat sebagai catatan tersendiri.

Well, have fun with your solaris box..

Bagaimana membaca partisi ntfs pada RedHat / CentOS

April 26, 2010

Redhat sampai saat ini belum bisa membaca partisi ntfs secara default. Sedangkan dukungan untuk membaca partisi ntfs dilinux boleh dibilang sudah cukup stabil. Software yang digunakan adalah ntfs-3g. Saya coba cari di rhn redhat paket tersebut juga belum disediakan secara resmi oleh redhat. Tapi sukurlah paket tersebut sudah ada pada rpmforge repository. Tapi pergunakan paket tersebut dengan resiko sendiri. :D

Pada centos 5.2 yang saya gunakan, paket yang dibutuhkan adalah fuse, fuse-ntfs-3g, dkms, dan dkms-fuse. Bila sudah mengkonfigure yum kerpmforge maka dapat langsung menggunakan command yum install fuse fuse-ntfs-3g dkms dkms-fuse

Bisa juga dengan mendownload paket2nya dulu dan menginstallnya secara manual, cara seperti ini lah yang saya lakukan:

Langkah 1 ~
Download paket fuse, fuse-ntfs-3g, dkms, dan dkms-fuse dari sini.

Langkah 2 ~
Install paket tersebut:

[root@dudulz-box ~]# rpm -ivh dkms-* fuse-*
warning: dkms-2.0.22.0-1.el5.rf.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 6b8d79e6
error: Failed dependencies:
gcc is needed by dkms-2.0.22.0-1.el5.rf.noarch
kernel-devel is needed by dkms-2.0.22.0-1.el5.rf.noarch
gcc is needed by dkms-fuse-2.7.4-1.nodist.rf.noarch

Bila gcc dan kernel-devel blm terinstall maka akan muncul seperti diatas. Untuk itu gcc dan kernel-devel harus diinstall juga. Paket gcc dan kernel-devel terdapat dalam cd installer centos 5.2.

[root@dudulz-box ~]# yum install gcc kernel-devel

[root@dudulz-box ~]# rpm -ivh dkms-* fuse-*
warning: dkms-2.0.22.0-1.el5.rf.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 6b8d79e6
Preparing... ########################################### [100%]
1:fuse ########################################### [ 25%]
2:dkms ########################################### [ 50%]
3:dkms-fuse ########################################### [ 75%]
4:fuse-ntfs-3g ########################################### [100%]

Langkah 3 ~
Mount partisi ntfsnya:

[root@dudulz-box ~]# fdisk -l

Disk /dev/hda: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hda1 * 1 13 104391 83 Linux
/dev/hda2 14 261 1992060 8e Linux LVM

Disk /dev/hdb: 106 MB, 106954752 bytes
255 heads, 63 sectors/track, 13 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hdb1 1 12 96358+ 42 NTFS

[root@dudulz-box ~]# mount /dev/hdb1 /mnt/
[root@dudulz-box ~]# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/hda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/hdb1 on /mnt type fuseblk (rw,allow_other,blksize=512)

[root@dudulz-box ~]# cd /mnt/
[root@dudulz-box mnt]# ls
System Volume Information
[root@dudulz-box mnt]# touch foo
[root@dudulz-box mnt]# ls
foo System Volume Information

Done. Sekarang centos 5.2 saya sudah bisa baca tulis partisi ntfs.
Lebih lengkapnya bisa merujuk kesini
http://wiki.centos.org/TipsAndTricks/NTFS

Semoga berguna..

Menambahkan ‘date’ pada nama file

March 11, 2010

Sometimes kita ingin membackup secara otomatis menggunakan script. Misalnya membackup suatu database mysql setiap hari. Yang mana nama filenya sesuai dengan tanggal file tersebut dibackup. Cara yg gampang adalah dengan menambahkan command date pada nama filenya. Berikut contoh scriptnya:

#!/bin/bash

# Mysql backup script
# by. onay

BACKUPDIR=/backup/mysql/apps
DBNAME=appsbak

/usr/bin/mysqldump -R -u user -pdbpassword $DBNAME > $BACKUPDIR/$DBNAME-$(date +%d-%m-%Y).sql

Script tersebut bisa dijalankan setiap hari melalui crontab. Hasilnya adalah file dengan nama filenya terdapat tanggal file tersebut dibackup:

# ls /backup/mysql/apps
appsbak-10-03-2010.sql
appsbak-11-03-2010.sql

Yang mau saya bahas adalah pada command date sendiri. Perintah date adalah untuk menampilkan tanggal. Default outputnya adalah:

[root@dudulz-box ~]# date
Thu Mar 11 15:06:52 WIT 2010

Perintah date ini bisa juga ditambahkan options agar format tanggal outputnya sesuai dengan yang kita inginkan.

[root@dudulz-box ~]# date +%d-%m-%Y
11-03-2010
[root@dudulz-box ~]# date +%d_%m_%Y
11_03_2010
[root@dudulz-box ~]# date +%d%m%Y
11032010
[root@dudulz-box ~]# date +%d-%m-%y
11-03-10

Bisa juga menampilkan sekalian dengan jamnya.

[root@dudulz-box ~]# date +%d-%m-%Y/%T
11-03-2010/15:14:54

Format yang lengkapnya bisa dilihat dari manual pagesnya. Fungsi dari date ini, salah satunya seperti yang saya contohkan diatas adalah untuk diredirect kenama file sebagai keperluan backup.

Selamat mencoba.

Alias Command

March 8, 2010

Bosen bangeet ngetikin perintah yang sama berulang – ulang kali. Apa lagi perintahnya lumayan ribet dan bikin tangan kriting. Sukurlah ada command alias dilinux. Lumayan ga bikin tangan pegel lagi. Perintahnya cukup sederhana, cuma alias cmdalias=’real cmd’. Begitulah kira – kira. Untuk lebih lengkapnya, bisa langsung merujuk ke man alias. :lol:

Contohnya:

# alias javaps='ps -ef | grep [j]ava'

Sekarang untuk menjalankan command diatas cukup jalankan:

# javaps

Tadaaa.. Mantaab.. Hemat energi.. :cool:

Tinggal masukkin ke rc.local atau .bash_profile atau /etc/profile terserah yg mana yg disuka. Biar command aliasnya tetep selalu ada setiap anda login.

Salam.

Mengaktifkan mod_rewrite apache2 pada ubuntu-server

January 22, 2010

Beda distro, beda pula gaya konfigurasinya. Demikianlah yang terjadi dijagad perlinux’an. Dan itu pula yang kadang – kadang membuat orang enggan untuk mempelajari linux. Tapi, syukurlah dijagad internet saya selalu menemukan solusi terhadap masalah yang saya hadapi dilinux. Inilah yang disebut sebagai community support yang juga merupakan salah satu kelebihan bila kita menggunakan linux. Anda hanya perlu sedikit googling untuk menemukan solusi atas permasalahan anda.

Kembali kelaptop. Berikut adalah sedikit catatan saya tentang cara mengaktifkan mod_rewrite pada konfigurasi apache2 dan php diubuntu server.

Pada ubuntu server konfigurasi apache2 terletak pada direktori /etc/apache2 yang isinya adalah:

root@ubuntu-box:/etc/apache2# ls
apache2.conf envvars mods-available ports.conf sites-enabled
conf.d httpd.conf mods-enabled sites-available

Untuk mengaktifkan modul – modul apache, sebenarnya kita tinggal masukan modul yang terdapat dalam direktori mods-available kedalam direktori mods-enable dengan cara membuatkan softlinknya.

# ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enable

Selanjutnya tinggal mengaktifkan opsi AllowOverride menjadi All pada file konfigurasi /etc/apache2/sites-enabled/000-default

# vim 000-default


ServerAdmin webmaster@localhost

DocumentRoot /var/www/

Options FollowSymLinks
AllowOverride all


Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all

ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined

Alias /doc/ "/usr/share/doc/"

Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128

Ok, sekarang tinggal merestart service apache2 untuk mengaktifkan konfigurasi yang baru.

# /etc/init.d/apache2 restart

Nah, sekarang apache2 sudah bekerja menggunakan modul mod_rewrite.

Have a nice try.. :lol:

Exit Status

December 28, 2009

Just another note’s.

Pada command line linux, kita bisa mengecek sukses tidaknya suatu perintah dengan melihat nilai dari exit statusnya. Setiap perintah yang kita masukkan pada command line mempunyai “exit status” berupa nilai atau angka mulai dari 0 sampai 255. Setiap nilai mempunyai arti masing2.

Namun sayangnya saya belum menemukan referensi penjelasan yang lengkap dari semua nilai exit status tersebut. Tapi yang patut diperhatikan adalah nilai 0, yang artinya perintah sukses dieksekusi. Jadi nilai selain dari angka 0, berarti perintah itu gagal dieksekusi. Untuk mengetahui definisi dari exit status dapat merujuk ke halaman wikipedia ini.

Untuk melihat nilai keluaran exit status caranya adalah dengan perintah “echo $?“. Exit status sangat berguna sekali bagi sysadmin untuk memastikan suatu command berjalan dengan sempurna dalam script automatisasi yang dibuat. Sehingga dalam script tersebut bisa dibuat validasi apakah suatu perintah dalam script tersebut sudah berjalan dengan baik atau belum.

Sedikit contoh:

$ pwd
/home/user
$ mkdir coba
$ echo $?
0
$ ls
coba

atau bila gagal,

$ pwd
/home/user
$ mkdir /root/coba
mkdir: cannot create directory `/root/coba': Permission denied
$ echo $?
1

contoh penggunaannya pada script,

#!/bin/bash
#
# exit status validation example

mkdir coba
if [ $? -eq 0 ] ; then
echo "Directory created"
#next command
else
echo "Unable created directory"
#fix error first
fi
exit

That’s all.

Follow

Get every new post delivered to your Inbox.

Join 657 other followers