Berbagai Cara Untuk Mengetahui Aktifitas User Linux

Ada berbagai cara yang bisa kita lakukan yang berkaitan dengan aktifitas user di sistem linux yang kita pelihara, hal ini biasanya penting untuk sistem linux yang digunakan rame-rame (multiuser).

Oke, berikut ini hal-hal yang biasa saya gunakan :

1. Begitu ssh, langsung liat last login, disitu ketauan IP mana yang terakhir kali masuk ke sistem kita :

Last login: Wed May 26 21:32:17 2010 from 125.166.xxx.xxx

2. Lihat user yang aktif dengan menggunakan w atau who

# w
01:28:49 up 3 days, 12:04, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
andri pts/0 125.166.xxx.xxx 01:25 0.00s 0.14s 0.00s w
dki pts/1 118.98.xxx.xxx 01:26 2:35 0.10s 0.10s -bash

# who
andri pts/0 2010-05-30 01:25 (125.166.xxx.xxx)
dki pts/1 2010-05-30 01:26 (118.98.xxx.xxx)

3. Bisa juga dengan ps aux

# ps aux |grep bash | grep pts
andri 9297 0.0 0.0 6324 3636 pts/0 Ss 01:25 0:00 -bash
dki 9371 0.0 0.0 6320 3576 pts/1 Ss+ 01:26 0:00 -bash

4. Lihat aktifitas terakhir dari semua user dengan lastlog

# lastlog
Username Port From Latest
root **Never logged in**
daemon **Never logged in**
bin **Never logged in**
sys **Never logged in**
sync **Never logged in**
games **Never logged in**
man **Never logged in**
lp **Never logged in**
mail **Never logged in**
news **Never logged in**
uucp **Never logged in**
proxy **Never logged in**
www-data **Never logged in**
backup **Never logged in**
list **Never logged in**
irc **Never logged in**
gnats **Never logged in**
nobody **Never logged in**
libuuid **Never logged in**
syslog **Never logged in**
landscape **Never logged in**
bind **Never logged in**
sshd **Never logged in**
dki pts/1 118.98.xxx.xxx Sun May 30 01:26:01 +0700 2010
mysql **Never logged in**
postfix **Never logged in**
proftpd **Never logged in**
ftp **Never logged in**
vmail **Never logged in**
clamav **Never logged in**
amavis **Never logged in**
andri pts/0 125.166.xxx.xxx Sun May 30 01:25:46 +0700 2010
statd **Never logged in**
manapar **Never logged in**

5. Bisa juga dengan menggunakan tools bantu seperti finger, tapi harus diinstall terlebih dahulu.

# finger
Login Name Tty Idle Login Time Office Office Phone
andri Andri Nawawi pts/0 May 30 01:25 (125.166.xxx.xxx)
dki DKI pts/1 10 May 30 01:26 (118.98.xxx.xxx)

Kalau ternyata melihat ada yang mencurigakan, bisa lihat aktifitas user yang bersangkutan dengan menggunakan perintah history :

# history

Trus apa lagi ya? Mmm, kalau mau liat daftar user &/ yang ada di sistem, bisa pake perintah :

# cat /etc/passwd# cat /etc/group

atau

# getent passwd
# getent group

Udah, segitu dulu… Semoga Bermanfaat 😉

Membuat Repository Ubuntu 10.04 Untuk Beberapa arch (i386, amd64, powerpc)

Saya kemaren sempet bikin mirror Ubuntu 10.04 LTS di salah satu server yang saya rawat. Nahhh, karena repository untuk satu arch (architecture) processor bisa mencapai 32 Gb maka saya berinisiatif untuk memisahkan script antara intel dengan amd64 agar ngga berbarengan jalannya.

Tapi ternyata, seperti yang saya ceritakan sebelumnya, repo yang terakhir selalu menimpa repo yang sebelumnya, haha, ternyata memang ngga boleh dijalanin lebih dari satu kali untuk target direktori yang sama, jadi harus berbarengan.

Oke, berikut cara membuat mirror repository Ubuntu 10.04 LTS yang saya ambil dan saya sederhanakan dari OpenSource TelkomSpeedy :

Asumsi

folder repo : /home/user/repo-10.4

server : dl2.foss-id.web.id atau 125.160.17.22

GNUPGHOME : /home/user/mirrorkeyring

Ubah informasi tersebut di sesuaikan dengan kondisi komputer anda

Install debmirror

# apt-get install debmirror

Buat folder untuk menempatkan repository, misalnya /home/user/repo-10.04

# mkdir /home/media/repo-10.4

Buatl script mirror

# nano /usr/local/bin/mirrorbuild.sh

Masukan script berikut :

#!/bin/bash
export GNUPGHOME=/home/media/mirrorkeyring
arch=i386, amd64, powerpc
section=main,restricted,universe,multiverse
release=lucid,lucid-security,lucid-updates,lucid-backports,lucid-proposed
#server=opensource.telkomspeedy.com:5432
#server=dl2.foss-id.web.idserver=125.160.17.22
#server=kambing.ui.ac.id
inPath=ubuntu
proto=http
outPath=/home/andri/repo-10.04
debmirror -a $arch \
--no-source \
-s $section \
-h $server \
-d $release \
-r $inPath \
--progress \
-e $proto \
$outPath

Simpan script diatas

Ubah ijin agar file mirrorbuild.sh dapat di jalankan

# chmod -Rf 777 /usr/local/bin/mirrorbuild.sh

Ubah ijin dari folder mirror

# chown -Rf root.root /home/user/repo-10.04
# chmod -Rf 571 /home/user/repo-10.04

Buat folder untuk mirror keyring

# mkdir /home/user/mirrorkeyring
# gpg --no-default-keyring --keyring /home/user/mirrorkeyring/trustedkeys.gpg --import /usr/share/keyrings/ubuntu-archive-keyring.gpg

Jalankan mirrorbuild.sh

# /usr/local/bin/mirrorbuild.sh

Cron supaya repository diupdate secara periodik :

# crontab -e

Agar setiap jam 10 malam di update. Isi dengan perintah :

0 * * * * /usr/local/bin/mirrorbuild.sh

Aktifkan cron

# /etc/init.d/cron restart

Agar repo bisa digunakan melalui protokol http, install Apache terlebih dahulu :

# apt-get install apache2

Buat link statik antara download repository ke Web

# mkdir /var/www/ubuntu
# mount --bind /home/media/repo-9.10 /var/www/ubuntu

Setting di client untuk agar bisa menggunakan repository yang baru dibuat :

deb http://[ip/domain mirror]/ubuntu/ lucid main restricted universe multiverse
deb http://[ip/domain mirror]/ubuntu/ lucid-updates main restricted universe multiverse
deb http://[ip/domain mirror]/ubuntu/ lucid-security main restricted universe multiverse
deb http://[ip/domain mirror]/ubuntu/ lucid-backports main restricted universe multiverse
deb http://[ip/domain mirror]/ubuntu/ lucid-proposed main restricted universe multiverse

Yang perlu diperhatikan :

*) Pastikan punya koneksi internet yang mumpuni, pengalaman saya membuat repo untuk 2 arch memakan waktu semalam lebih (dengan koneksi 10 mbps)

*) Pastikan juga hdd kosong sekitar 62 Gb untuk 1 distro dengan 2 arch, dengan asumsi 1 arch = 32 Gb

*) Perintah yang diawali tanda # berarti dijalankan sebagai super user

*) Jika mengalami kegagalan pada saat menjalankan mirrorbuild.sh, coba jalankan ulang gpgkeyring (gpg –no-default-keyring –keyring /home/user/mirrorkeyring/trustedkeys.gpg –import /usr/share/keyrings/ubuntu-archive-keyring.gpg)

*) Sumber artikel diambil dari OpenSource TelkomSpeedy

Semoga Bermanfaat 😉

Stress Testing…? Apakah Perlu…???

Server selesai diconfig, sistem / aplikasi web sudah tidak ada error, jaringan dipastikan ready, apakah sudah siap untuk live production…?

Tunggu dulu (jangan) kita juga harus memperkirakan berapa banyak user yang nantinya akan live menggunakan sistem / aplikasi tersebut, kita juga harus memperkirakan berapa banyak dan berapa besar data diterima dan dikirim oleh si server, pun juga request dari pengguna sistem… Bagaimana kalau sudah runing live ternyata server tidak mampu alias kuwalahan untuk menerima banyak request dalam satu waktu, atau banyak data yang ditransfer (upload) ke server dalam waktu yang bersamaan.

Nahhh, untuk mengetahui, kita bisa uji coba server dan jaringan yang akan digunakan sebagai live production tersebut. Istilahnya stress testing atau stress benchmarking.

Toolsnya apa ndri..?

Gunakan saja ab, tools yang sudah secara build in disertakan pada waktu kita menginstall apache2.

Caranya gimana ndri…?

Caranya, pertama kita create dummy file (jika belum memiliki file yang akan digunakan untuk testing…

$ time dd if=/dev/zero of=test.pdf bs=500000000 count=1
1+0 records in
1+0 records out
500000000 bytes (500 MB) copied, 5,77993 s, 86,5 MB/s

real 0m5.832
suser 0m0.000s
sys 0m1.140s

$ ls -l
total 488288
-rw-r--r-- 1 andri andri 500000000 2010-05-07 01:33 test.pdf

Nahhh, udah punya file yang mau kita pakai untuk mengHAJAR server kita, besarnya 500 Mb. Saatnya kita test :

$ ab -n 100 -c 10 -p test.pdf http://localhost/

artinya kita akan men-test server tersebut dengan 100 request (-n) dengan 10 connection (-c) yang mengupload file test.pdf (-p) sebesar 500 Mb.

Kita lihat apa kata ab :

This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking localhost (be patient).....done
Server Software: Netscape-Enterprise/6.0
Server Hostname: localhost
Server Port: 80
Document Path: /
Document Length: 309 bytes
Concurrency Level: 4
Time taken for tests: 45.042 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Non-2xx responses: 100
Total transferred: 57000 bytes
Total POSTed: 50000013100
HTML transferred: 30900 bytes
Requests per second: 2.22 [#/sec] (mean)
Time per request: 1801.683 [ms] (mean)
Time per request: 450.421 [ms] (mean, across all concurrent requests)
Transfer rate: 1.24 [Kbytes/sec] received
1084056.23 kb/s sent
1084057.47 kb/s total

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 455 374.5 444 1325
Processing: 443 1347 393.0 1332 2307
Waiting: 1 896 384.3 889 1817
Total: 1325 1802 644.2 1348 3195
Percentage of the requests served within a certain time (ms)
50% 1348
66% 1817
75% 2661
80% 2664
90% 2688
95% 2711
98% 3142
99% 3195
100% 3195 (longest request)

Untuk mengetahui sampai mana server kuat, lakukan sampai menemui error / failed di output.

Dan untuk mengetahui parameter ab lebih lengkap, silahkan kunjungi : http://httpd.apache.org/docs/2.0/programs/ab.html

Sekian, semoga bermanfaat 😉

Mengatasi memory linux yang penuh

Nahh, untuk mengatasinya, kita bisa menyuruh kernel untuk membersihkan cache, dentries dan inode dari memory. Caranya…?

Untuk membersihkan pagecache

# echo 2 > /proc/sys/vm/drop_caches

Untuk membersihkan ketiganya (pagecache, inodes dan dentries)

# crontab -e* */2 * * * echo 3 > /proc/sys/vm/drop_caches

Contoh diatas akan mengosongkan pagecache, inodes dan dentries pada memory setiap 2 jam sekali…

Sekian, semoga bermanfaat 😉

Cara mengetahui subdomain apa saja yang ada di suatu domain menggunakan linux command

Malem ini *ehhh benernya pagi deng* pas ngecek plurk ada salah satu plurk temen (lebih tepatnya plurknya dito) yang menanyakan bagaimana cara mengetahui subdomain apa saja yang ada pada suatu domain?

Yak! subdomain adalah domain tersendiri yang merupakan anak / child dari tld (top level domain nya) misalnya http://a.ndri.info adalah subdomain dari ndri.info dengan nama subdomain “a” atau www.google.com adalah subdomain dari tld google.com dengan nama subdomain “www”

Cara untuk mengetahui subdomain apa saja yang ada pada sebuah domain / situs yang saya tau ada 2 cara. Cara pertama dengan menggunakan situs dns lookup, cara kedua dengan menggunakan linux command yaitu dig. Inilah masing-masing cara itu :

1. Menggunakan situs dns lookup

Salah satu yang paling komplit outputnya adalah http://www.magic-net.nl/dns-lookup.php, tinggal masukin alamat domain lalu klik tombol DNS Lookup dan hasil dapat dinikmati setelah query selesai

2. Menggunakan Command Linux : dig

Memang lebih simple menggunakan tools diatas, namun ada kalanya seseorang lebih memilih linux command dibanding tools dns lookup diatas, terutama bagi para pengelola server yang hanya berhadapan dengan layar hitam putih (alias console) yang tidak bisa mengeksekusi jquery dengan text based browser

Caranya cukup 2 langkah :

a. Melihat NS (Name Server) yang mengelola situs tersebut, dengan perintah :

$ dig domain.com NS

contohnya :

$ dig ndri.info NS
; <<>> DiG 9.6.1-P1 <<>> ndri.info NS
;; global options: +cmd;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59703
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;ndri.info. IN NS
;; ANSWER SECTION:
ndri.info. 85841 IN NS us3.jakhoster.com.
ndri.info. 85841 IN NS us4.jakhoster.com.
;; Query time: 48 msec;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue May 4 03:38:49 2010;; MSG SIZE rcvd: 76

disitu bisa kita lihat bahwa NS yang mengelola ndri.info adalah us3.jakhoster.com

b. Melihat list subdomain yang ada dengan dig axfr$ dig @[NS] domain.com axfr

contohnya :

$ dig @us3.jakhoster.com ndri.info axfr
; <<>> DiG 9.6.1-P1 <<>> @us3.jakhoster.com ndri.info axfr
; (1 server found)
;; global options: +cmd
ndri.info. 86400 IN SOA us3.jakhoster.com. support.jakhoster.com. 2010021002 86400 7200 3600000 86400
ndri.info. 14400 IN MX 0 
ndri.info.ndri.info. 86400 IN NS us3.jakhoster.com.
ndri.info. 86400 IN NS us4.jakhoster.com.
ndri.info. 14400 IN A 74.53.97.75
a.ndri.info. 14400 IN A 74.53.97.75
update.a.ndri.info. 14400 IN A 74.53.97.75
www.update.a.ndri.info. 14400 IN A 74.53.97.75
www.a.ndri.info. 14400 IN A 74.53.97.75
ache.ndri.info. 14400 IN A 74.53.97.75
www.ache.ndri.info. 14400 IN A 74.53.97.75
catatan-a.ndri.info. 14400 IN A 74.53.97.75
www.catatan-a.ndri.info. 14400 IN A 74.53.97.75
contoh.ndri.info. 14400 IN A 74.53.97.75
www.contoh.ndri.info. 14400 IN A 74.53.97.75
dabelyudabelyudabelyu.ndri.info. 14400 IN A 74.53.97.75
www.dabelyudabelyudabelyu.ndri.info. 14400 IN A 74.53.97.75
foto-a.ndri.info. 14400 IN A 74.53.97.75
www.foto-a.ndri.info. 14400 IN A 74.53.97.75
ftp.ndri.info. 14400 IN CNAME ndri.info.
keluarga-a.ndri.info. 14400 IN A 74.53.97.75
www.keluarga-a.ndri.info. 14400 IN A 74.53.97.75
kerjaan-a.ndri.info. 14400 IN A 74.53.97.75
www.kerjaan-a.ndri.info. 14400 IN A 74.53.97.75
localhost.ndri.info. 14400 IN A 127.0.0.1
mail.ndri.info. 14400 IN CNAME ndri.info.
update.ndri.info. 14400 IN A 74.53.97.75
update-a.ndri.info. 14400 IN A 74.53.97.75
www.update-a.ndri.info. 14400 IN A 74.53.97.75
www.ndri.info. 14400 IN CNAME ndri.info.
ndri.info. 86400 IN SOA us3.jakhoster.com. support.jakhoster.com. 2010021002 86400 7200 3600000 86400
;; Query time: 275 msec
;; SERVER: 74.53.97.74#53(74.53.97.74)
;; WHEN: Tue May 4 03:40:17 2010
;; XFR size: 31 records (messages 1, bytes 742)

Sekian, semoga bermanfaat 😉

Cara mengetahui ukuran folder pada os linux

Seperti kita ketahui bersama kalau folder di linux itu dikenali sebagai file yang diberi flag d atau direktory, nahhh… begitu di ls direktori yang bersangkutan pasti akan menampilkan ukuran default sebuah folder yaitu 4096:

andri@bima:/home/andri/repo-10.04$ ls -l
total 16
-r--r--r-- 1 root root 10 2010-05-02 23:00 Archive-Update-in-Progress-ranah.web.id
drwxr-xr-x 7 root root 4096 2010-04-30 19:47 dists
drwxr-xr-x 6 root root 4096 2010-05-01 02:58 pool
drwxr-xr-x 3 root root 4096 2010-05-02 21:12 project

Nahhh, untuk melihat ukuran dari sebuah direktory atau folder bisa digunakan perintah du, contohnya :

andri@bima:/home/andri/repo-10.04$ du -s
41173756
andri@bima:/home/andri/repo-10.04$ du -hs
40G
andri@bima:/home/andri/repo-10.04$ du -hs /home/andri/repo-10.0
440G /home/andri/repo-10.04/

Sekian, semoga bermanfaat 😉