Tampilkan postingan dengan label Unix. Tampilkan semua postingan
Tampilkan postingan dengan label Unix. Tampilkan semua postingan

Selasa, Desember 02, 2014

How to Build DLNA Server using Raspberry Pi & Time Capsule

Background
Basically, you can build a DLNA server just using Raspberry Pi and external hard drive which contains your multimedia contents (movies, music, and pictures). Just plug the external hard drive to the Pi’s USB port, and you can just use Raspbmc OS or install other package which support DLNA server like minidlna.

Minggu, Oktober 19, 2014

Raspcontrol: Aplikasi monitoring Raspberry Pi berbasis Web

Seperti yang diketahui, Raspberry Pi tidak memiliki tombol untuk restart ataupun switch untuk menyalakan atau mematikan perangkatnya. Solusi untuk melakukan tersebut ya tinggal cabut kabel power yang terhubung ke perangkat ini. Berdasarkan informasi yang aku dapatkan, mematikan/me-restart Raspberry Pi dengan menggunakan cara tersebut tidak aman karena dapat membuat SD Card yang digunakan menjadi corrupt dan ada potensi data-data yang dimiliki bisa hilang. Cara paling aman adalah dengan mematikan perangkat melalui GUI OS yang telah di-install pada perangkat ataupun melalui perintah shutdown ataupun halt yang dijalankan pada terminal baru kemudian cabut kabelnya. Permasalahannya, Raspberry Pi yang aku gunakan jarang sekali aku hubungkan dengan monitor (headless Raspberry Pi). Dalam artian Raspberry Pi tersebut aku seting menjadi sebuah server yang bisa diakses melalui protokol SSH. Memang pada dasarnya aku bisa mematikan atau me-restart Raspberry Pi melalui SSH, namun menurutku cara ini kurang praktis. Ekspektasiku adalah aku bisa mematikan dan me-restart Raspberry Pi melalui akses Web, yang menurutku lebih user friendly.

Selasa, Agustus 26, 2014

How to Recover Seagate Central Data

Few weeks ago I purchased Seagate Central 4TB. My first intention was to store my movie collection so I can watch it wirelessly on my iOS devices and AppleTV. Since my movie collection only consume around 800GB of space, it still has a lot of room to store anything. So I decided to move all of my data from my conventional hard disk to Seagate Central.

It worked perfectly, until several days ago I can not locate this device on my Mac. I just realize that the led indicator kept blinking all the time. On my router, the led indicator for the device is turned off. So it means, the device was not connected to my local network.

Jumat, Desember 03, 2010

How to replace newline "\n" on Unix shell

I want to replace all new line characters on a file using Unix shell. Just found it is quite difficult to do it using sed command because sed operates line by line and never sees the newline endings. Yeah, instead of sed command, tr command is a solution for this.

Let say I want to replace '\n' character on file named sample.log with ' ' (space) character. Instead of using

sed -i 's/\n/ /g'

command which is failed, I use

cat sample.log | tr '\n' ' ' > sample.output

command. The result will be stored in sample.output file.

Sabtu, November 06, 2010

Me-reset Password Windows

Berawal dari PC lama yang dikira sudah rusak ternyata masih bisa digunakan, dan ternyata baru sadar kalau aku lupa password untuk login ke Windows nya. Setelah googling sana sini mencari alternatif untuk menemukan solusi yang tepat, akhirnya aku temukan juga cara yang mudah. Beberapa tools seperti Ophcrack membutuhkan bandwidth yang cukup besar untuk diunduh. Sayang aja nih ngabisin quota internet rumah hanya untuk mengunduh tools seperti ini. Tools yang digunakan pada artikel ini hanya berukuran sekitar 3 MB, sangat kecil dan praktis untuk diunduh. Dalam artikel ini, aku menggunakan VirtualBox agar lebih mudah untuk melakukan screen capture pada setiap langkahnya


Berikut adalah langkah-langkah untuk me-reset password Windows (Sudah dicoba untuk Windows 7 dan Windows XP).
  1. Download tools yang berisi file cd080802.zip dari tautan dibawah ini:
  2. http://pogostick.net/~pnh/ntpasswd/cd080802.zip

  3. Burn ISO tersebut ke dalam CD, atau jika merasa sayang dengan ukurannya yang hanya 3 MB, bisa diinstall ke USB Disk. Buka file ISO dengan Virtual Drive (Salah satu tools Virtual Drive yang gratis adalah MagicISO) dan salin semua file yang ada pada ISO tersebut ke USB Disk. Untuk membuat USB Disk nya menjadi bootable, masuk ke dalam Command Prompt (Pastikan anda adalah Administrator. Jika anda menggunakan Windows 7, Cari aplikasi Command Prompt -> Klik kanan -> Run As Administrator).

  4. Dengan asumsi USB Disk anda memiliki drive letter X:, ketikkan perintah 
    X: -> Pindah drive ke X
    syslinux -ma X: -> Membuat drive USB Drive X menjadi bootable


  5. Boot PC atau laptop menggunakan CD atau USB Disk yang telah dibuat pada langkah ke-2. 

  6. Selanjutnya akan muncul tampilan seperti berikut:

  7. Abaikan pesan yang ada pada monitor, tekan Enter untuk melanjutkan.


  8. Pilih partisi yang akan di-reset password Windows nya.

  9. Pada contoh ini, hanya ada satu partisi yang aku gunakan, sehingga bisa memasukkan nilai 1 sebagai partisi yang akan di-reset.


  10. Tools ini akan menanyakan lokasi registry pada partisi yang dipilih. Tekan Enter untuk melanjutkan.

  11. Pilih 1, untuk me-reset password Windows.

  12. Pilih 1 lagi untuk melanjutkan proses reset.

  13. Selanjutnya tools akan menampilkan daftar user yang ada pada partisi yang telah dipilih sebelumnya. Pilih user yang akan di-reset passwordnya. (Secara default, tools akan memilih Administrator). Dalam contoh ini aku ingin me-reset user 'Amphie Smiley' dengan kode 0x03eb. Untuk singkatnya ketik kode RID (misal kode RID untuk Amphie Smiley adalah 0x03eb)

  14. Ketik 1 untuk me-reset password untuk user yang telah dipilih.

  15. Nah sekarang password sudah di-reset (di set menjadi blank). Tekan ! Untuk keluar dari menu. Dilanjutkan dengan menekan q dan y untuk menyimpan perubahan.

  16. Reset PC atau laptop anda dengan menekan Ctrl+Alt+Del. Setelah tampilan login Windows dan memilih user yang telah di-reset passwordnya, anda tidak perlu memasukkan password lagi. Selamat mencoba!!
Note: Tools ini hanya dapat digunakan untuk me-reset password, bukan untuk me-recover password.

Jumat, Oktober 29, 2010

Memindahkan direktori data MySQL pada Ubuntu

Secara default, data MySQL pada Ubuntu terletak pada direktori /var/lib/mysql. Direktori ini berisi semua database mysql termasuk tabel-tabel yang ada di dalamnya. Jika sisa ruang pada partisi /var penuh, tentunya akan mengganggu operasional MySQL ini. Langkah-langkah berikut ini akan menjelaskan bagaimana caranya memindahkan data tersebut ke direktori lain. Semua langkah dibawah akan dijalankan melalui terminal dan menggunakan priveledge root.
  1. Mematikan service Mysql
  2. user@ubuntu# sudo /etc/init.d/mysql stop
    atau
    user@ubuntu# service mysql stop
  3. Buat direktori tujuan. Dalam contoh ini akan menggunakan /ext/mysql
  4. user@ubuntu# sudo  mkdir /ext/mysql

  5. Salin semua isi file pada /var/lib/mysql ke /ext/mysql
  6. user@ubuntu# sudo cp -R /var/lib/mysql /* /ext/mysql
  7. Set ownership dari /ext/mysql 
  8. user@ubuntu# sudo  chown -R mysql:mysql /ext/mysql
  9. Ubah konfigurasi Mysql pada /etc/mysql/my.cnf 
  10. user@ubuntu# sudo  vi /etc/mysq/my.cnf
    Cari variable datadir. Variabel ini sebelumnya berisi /var/lib/mysql. Ganti nilai variabel datadir dengan /ext/mysql

    datadir = /ext/mysql

  11. Pada Ubuntu, ada service yang bernama AppArmor. Service ini berfungsi sebagai aplikasi keamanan untuk membatasi akses aplikasi pada area tertentu. Pada kasus ini aplikasi MySql dibatasi aksesnya ke direktori-direktori yang sudah ditentukan. Konfigurasi AppArmor untuk MySQL bisa dilihat di /etc/apparmor.d/usr.sbin.mysqld

  12. Buka file /etc/apparmor.d/usr.sbin.mysqld  
    user@ubuntu# sudo  vi /etc/apparmor.d/usr.sbin.mysqld
    Ubah semua nilai /var/lib/mysql menjadi /ext/mysql.
    /ext/mysql/ r,  
    /ext/mysql/** rwk,
    Konfigurasi diatas memberikan akses aplikasi MySql untuk membaca direktori /ext/mysql dan memberikan akses baca, tulis, dan lock ke semua file yang berada di direktori tersebut.

  13. Restart service AppArmor
  14. user@ubuntu# sudo /etc/init.d/apparmor restart
    atau
    user@ubuntu# sudo service apparmor restart

  15. Jalankan service MySql

  16. user@ubuntu# sudo  /etc/init.d/mysql start
    atau
    user@ubuntu# service mysql start
Nah, sekarang Mysql sudah dapat digunakan seperti biasa. Jika tidak ada masalah, direktori lama /var/lib/mysql bisa dihapus.

Note: Versi Ubuntu yang digunakan adalah 10.10 dengan versi MySQL 5.1.49-1ubuntu8

Jumat, November 27, 2009

Format Partisi di Linux

Karena sudah terbiasa meformat hard disk menggunakan aplikasi GUI di Ubuntu, jadinya nggak pernah ngutak-ngatik gimana caranya memformat menggunakan shell. Dalam kasus kali ini, aku ingin memformat hard disk dengan menggunakan file system ext4 dan memasangnya di PC yang menggunakan Ubuntu Server yang nggak ada Desktop nya alias versi text. Setelah melakukan pencarian di Google (ternyata banyak artikel yang aku temukan tidak berkaitan dengan apa yang aku cari), akhirnya aku menemukan artikel yang cukup relevan. Ternyata hanya diperlukan dua perintah saja: fdisk, dan mkfs.ext4.

Berikut langkah-langkahnya:
  1. Membuat partisi baru dengan fdisk
  2. Dalam kasus ini, hard disk yang aku pasang dikenali sebagai /dev/sdb, dan aku hanya ingin membuat satu partisi saja. Perintahnya adalah sebagai berikut (pastikan menjalankan fdisk dalam priveledge root):
    root@liley-II# fdisk /dev/sdb

    The number of cylinders for this disk is set to 38166.
    There is nothing wrong with that, but this is larger than 1024,
    and could in certain setups cause problems with:
    1) software that runs at boot time (e.g., old versions of LILO)
    2) booting and partitioning software from other OSs
    (e.g., DOS FDISK, OS/2 FDISK)

    Command (m for help): n
    Command action
    e extended
    p primary partition (1-4)
    p
    Partition number (1-4): 1
    First cylinder (1-38166, default 1):
    Using default value 1
    Last cylinder, +cylinders or +size{K,M,G} (1-38166, default 38166):
    Using default value 38166

    Command (m for help): t
    Selected partition 1
    Hex code (type L to list codes): 83

    Command (m for help): w
    The partition table has been altered!

    Calling ioctl() to re-read partition table.
    Syncing disks.

  3. Format partisi yang sudah dibuat dengan menggunakan perintah mkfs.ext4 (untuk file system ext3 atau ext2 bisa menggunakan perintah mkfs.ext3 dan mkfs.ext2)
  4. Partisi yang sudah dibuat sebelumnya, dalam contoh ini dikenali sebagai /dev/sdb1.
    Perintah yang dijalankan adalah seperti berikut:
    root@liley-II# mkfs.ext4 /dev/sdb1
    mke2fs 1.41.9 (22-Aug-2009)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    2444624 inodes, 9770492 blocks
    488524 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=0
    299 block groups
    32768 blocks per group, 32768 fragments per group
    8176 inodes per group
    Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
    4096000, 7962624

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

    This filesystem will be automatically checked every 33 mounts or
    180 days, whichever comes first. Use tune2fs -c or -i to override.

  5. Melakukan mount partisi yang telah dibuat ke dalam sistem
  6. Partisi baru yang telah siap digunakan. Untuk melakukan mount ke dalam sistem, bisa dilakukan secara manual atau menambahkan entry baru di /etc/fstab agar bisa di-mount secara otomatis setelah boot up.

    Dalam contoh ini, aku akan melakukan mount partisi ke direktori /ext (pastikan bahwa direktori /ext telah dibuat).

    Untuk melakukan mount secara manual, jalankan perintah berikut:
    root@liley-II# mount -t ext4 /dev/sdb1 /ext

    Atau bisa juga dengan menambahkan entry di /etc/fstab agar bisa di-mount secara otomatis. Dalam kasus ini, /etc/fstab yang aku miliki berisi:
    # /etc/fstab: static file system information.
    #
    # Use 'blkid -o value -s UUID' to print the universally unique identifier
    # for a device; this may be used with UUID= as a more robust way to name
    # devices that works even if disks are added and removed. See fstab(5).
    #
    #
    proc /proc proc defaults 0 0
    # / was on /dev/sda1 during installation
    UUID=2a927340-4561-419a-809a-e48b4925d093 / ext4 errors=remount-ro 0 1
    # swap was on /dev/sda5 during installation
    UUID=bc428fbf-8cbe-4fc6-ba6d-d4d7ec3bb4a1 none swap sw 0 0
    /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0
    /dev/sdb1 /ext ext4 defaults 0 1

Minggu, September 13, 2009

SSH Tanpa Password

Tulisan ini mungkin sudah masuk kategori ketinggalan jaman banget, secara protokol SSH sudah digunakan dari jaman dulu kala. Namun tak ada salahnya juga sih, siapa tahu ada sebagian orang yang belum mengetahui tekniknya.

Secara konvensional jika seseorang melakukan login menggunakan protokol SSH ke suatu server, akan muncul prompt password. Prompt password ini mungkin akan dirasa cukup merepotkan jika orang tersebut adalah admin yang menangani mesin server yang lumayan banyak. Terlebih lagi jika password dari masing-masing username pada masing-masing mesin tersebut berbeda-beda dan susah untuk diingat.

Dengan menggunakan public/private key, maka memungkinkan untuk login menggunakan protokol SSH tanpa perlu memasukkan password. Agar lebih aman, private key yang dimiliki dapat diatur apakah memiliki passphrase atau tidak. Jika passphrase dikosongkan, maka tidak perlu memasukkan password lagi ketika melakukan login. Jika mekanisme ini diaplikasikan pada kasus diatas, maka admin tidak perlu lagi memasukkan password atau hanya perlu memasukkan passphrase yang sama ketika login ke semua mesin server yang ditangani oleh admin tersebut.

Berikut ini adalah langkah-langkahnya:
  1. Login ke client yang akan digunakan untuk login ke mesin server

  2. Membuat pasangan public/private key yang akan digenerate secara random menggunakan perintah ssh-keygen -t dsa atau ssh-keygen -t rsa tergantung tipe key yang akan digenerate apakah menggunakan protokol RSA atau DSA. Dari info yang aku peroleh, protokol DSA lebih aman.
  3. Output dari perintah diatas jika menggunakan perintah ssh-keygen -t dsa akan kira-kira akan seperti berikut:
    $ ssh-keygen -t dsa
    Generating public/private dsa key pair.
    Enter file in which to save the key (/home/test/.ssh/id_dsa):
    Created directory '/home/test/.ssh'.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/test/.ssh/id_dsa.
    Your public key has been saved in /home/test/.ssh/id_dsa.pub.
    The key fingerprint is:
    78:2d:16:3a:72:48:ea:c9:49:2b:2e:86:99:27:b6:b9 test@anwyn
    The key's randomart image is:
    +--[ DSA 1024]----+
    | |
    | |
    | . . |
    | o . o o |
    | o o = S . |
    | + + o + . |
    |oo* |
    |B+o |
    |+Eo |
    +-----------------+


    Masukkan nama file untuk menyimpan private key atau kosongkan untuk menyimpannya ke dalam file default (biasanya di $HOME/.ssh/id_dsa). Kosongkan passphrase yang diminta agar tidak muncul prompt ketika sudah digunakan nantinya.

    Public key secara default akan disimpan dengan nama id_dsa.pub dan disimpan di folder .ssh pada home directory.

  4. Login ke server tujuan dan salin isi public key yang telah digenerate sebelumnya ke dalam file authorized_keys yang ada di folder .ssh pada home directory. Untuk lebih mudahnya dapat dilakukan perintah berikut untuk memudahkan proses penyalinan:
ssh-copy-id -i [letak public key] username@targetserver
Pada proses diatas akan muncul prompt password untuk user username pada mesin targetserver. Masukkan password yang sesuai dan selanjutnya akan muncul keterangan bahwa public key telah ditambahkan kedalam target server.

Sekarang setiap kali login ke mesin server tujuan dengan username yang telah ditentukan, tidak akan muncul prompt password. Login menggunakan protokol SSH tanpa password sudah bisa dilakukan.

Notes tambahan:
- Masing-masing user dapat membuat pasangan public/private keynya sendiri, dan satu private key hanya digunakan oleh satu user. Sementara public key dapat ditambahkan ke user-user lain pada mesin-mesin yang lain. Cara diatas hanya berlaku untuk user tententu pada mesin server tujuan. Untuk memungkinkan akses SSH tanpa password ke user lain di mesin yang sama atau di mesin yang lain, dapat menggunakan perintah ssh-copy-id.