Jurnal: Menyelamatkan Partisi LVM Yang Metadatanya Tertimpa

Pada artikel ini, saya akan menceritakan bagaimana saya berhasil menyelamankan dan mengembalikan paritisi LVM yang hilang metadatanya karena tertimpa oleh metadata SWAP. Hal ini terjadi diduga karena sang “user” nampaknya ingin membesar kapasitas RAM dengan menambah ukuran SWAP. Alih-alih membuatnya pada suatu file atau partisi baru, si “user” tersebut membuatnya di partisi dimana root disk berada. Sejurus kemudian, muncullah permintaan reboot VM yang dimaksud. Tanpa pikir panjang, rekan saya melakukan reboot. Ditunggu beberapa saat kok tidak kunjung UP, diintiplah via console, dan jeng-jeng-jeng, sistem gagal booting dan fallback ke initramfs dengan pesan error bahwa logical volume untuk root partition tidak ditemukan. ...

 · 6 menit · Muhammad Ahfas An Nahri

Belajar Bash Scripting: Argument Parsing

Pada artikel kali ini, saya akan membahas mengenai Argument Parsing. Yakni adalah bagaimana cara agar setiap argumen yang diberikan pada suatu fungsi/script, bisa diinterpretasi sesuai posisinya (positional argument), atau sesuai ketentuan yang ditentukan nantinya. Ini akan sangat bermanfaat jika Anda hendak membuat CLI tool dari bash script. Misalnya membuat tool seperti berikut: 1 2 3 ./script.sh -u username -h host # or ./script.sh --username user --host hostname Telah dibahas pada artikel yang telah lalu (Belajar Bash Scripting: Arguments) bahwa bash akan menginterpretasi setiap argumen yang diberikan dengan variabel $1, $2 dan seterusnya. ...

 · 9 menit · Muhammad Ahfas An Nahri

Belajar Bash Scripting: Arguments

Pada artikel kali ini, saya akan membahas mengenai shell argumens, yaitu bagaimana agar kita dapat memasukkan parameter tertentu saat memanggil script yang telah kita tulis atau saat memanggul fungsi yang telah kita definisikan. Parameter/argumen Mari kita lihat pada command cp berikut ini: 1 cp -f file1 file2 Command diatas bisa diartikan dengan “menyalin secara paksa file1 sebagai file2”. Paksaan yang dimaksud adalah jika file2 sebelumnya telah ada, maka langsung menimpa file2 tersebut dengan file1tanpa memberitahu user terlebih dahulu. Pada command cp, struktur dasar penggunaannya adalah: ...

 · 5 menit · Muhammad Ahfas An Nahri

Belajar Bash Scripting: Functions

Pada artikel ini saya akan menjelaskan seputar shell functions, bagaimana cara mendefinisikan suatu fungsi pada Bash shell yang itu merupakan seperangkat perintah yang disusun sedemikian rupa agar bisa digunakan kembali pada bagian lain suatu script. Struktur dasar Sebuah fungsi dapat didefinisikan dengan susunan sebagai berikut: 1 2 3 4 5 6 7 8 9 10 11 nama_fungsi() { ... command1 command2 ... } # atau function nama_fungsi() { ... } Kedua bentuk diatas tidak memiliki perbedaan, namun sebagian ahli mengatakan bahwa bentuk kedua tidaklah portabel. Alias, tidak kompatibel dengan Bash shell versi lama. ...

 · 3 menit · Muhammad Ahfas An Nahri

Belajar Bash Scripting: Menulis Script

Setelah mempelajari mengenai elemen-elemen dasar pada suatu script, kali ini saya akan menjelaskan bagaimana membuat file script. Jika Anda ingin mempelajari ulang mengenai elemen-elemen yang dimaksud, bisa Anda pelajari melalui tautan-tautan dibawah ini: Konsep dasar Shell Variables Konsep dasar Shell Conditionals Konsep dasar Shell Loops Konsep dasar Shell Functions Pada dasarnya, shell script merupakan file yang berisi serangkaian instruksi shell yang disusun sedemikian rupa untuk tujuan tertentu. Diantara tujuan tersebut dapat berupa instruksi otomasi proses, CLI (command line interface) tool, program wrapper sebagai ekstensi suatu program lain yang sudah ada, dan semisalnya. ...

 · 3 menit · Muhammad Ahfas An Nahri

Jurnal: Zimbra - Mencari Tahu Konfigurasi Filter Untuk Semua Akun

Ini adalah artikel ringkas yang membahas tentang cara untuk mencari tahu seluruh konfigurasi filter yang diatur oleh tiap akun email. Pada dasarnya, perintah yang digunakan adalah: 1 zmprov -l ga <nama akun> zimbraMailSieveScript Contoh output: 1 2 3 4 5 6 7 8 9 # name [email protected] zimbraMailSieveScript: require ["fileinto", "copy", "reject", "tag", "flag", "variables", "log", "enotify", "envelope", "body", "ereject", "reject", "relational", "comparator-i;ascii- numeric"]; # forward if anyof (address :all :contains :comparator "i;ascii-casemap" ["to"] "[email protected]") { redirect "[email protected]"; stop; } Sehingga, untuk meng-query keseluruhan akun, bisa menggunakan loop atau xargs: ...

 · 1 menit · Muhammad Ahfas An Nahri

Belajar Bash Scripting: Loop

Artikel ini akan menjelaskan mengenai bagaimana cara untuk melakukan LOOP alias menjalankan sekumpulan command secara berulang-ulang dengan kondisi tertentu. FOR loop FOR loop pada shell Bash sifatnya sama seperti foreach pada keumuman bahasa pemrograman. Yaitu melakukan perulangan tanpa adanya counter, alias suatu perulangan tidaklah diketahui ke-berapa perulangan tersebut sedang terjadi. Atau sederhananya tidak ada indeks pada setiap perulangan. Namun dengan pengecualian jika FOR loop tersebut dideklarasikan menggunakan indeks. Akan tiba contohnya pada penjelasan di bawah. ...

 · 6 menit · Muhammad Ahfas An Nahri

Jurnal: Script Rincian Mail Queue Postfix

Pada artikel ini saya akan memberikan contoh script Bash dan Python yang berfungsi untuk menampilkan jumlah antrian email (mail queue) keluar pada Postfix. Ini berguna sebagai metrics yang bisa digunakan untuk alerting. Baik alerting manual maupun terintegrasi seperti ServerDensity, dan sebagainya. Dasar Script Komponen utama utama untuk mengetahui mail queue adalah folder dimana queue tersebut singgah untuk sementara waktu. Untuk mengetahuinya, kita bisa memanggil command postconf -h queue_directory yang outputnya akan menunjukkan dimana direktori tersebut. ...

 · 5 menit · Muhammad Ahfas An Nahri

Belajar Bash Scripting: Variabel (Update)

Pada artikel ini, saya akan menjelaskan bagaimana cara membuat variabel, array, dan lain-lain yang berkaitan, pada shell Bash. Seperti yang sudah pernah dibahas pada artikel Belajar Bash Scripting lain, bahwa tentunya Bash Scripting yang dibahas ini tidaklah POSIX-compliant atau istilahnya Bashism. Aturan penamaan Dalam membuat variabel atau array, ketentuan dalam pemberian nama adalah sebagai berikut: Tidak diawali dengan angka. Tidak mengandung tanda pentung, tanda @, tanda pagar # dan asterisk (*). Variabel dengan huruf kapital seluruhnya, dikhususkan untuk variabel internal shell dan varibel environment. Contoh: ...

 · 6 menit · Muhammad Ahfas An Nahri

Belajar Bash Scripting: Conditional

Pada artikel ini saya akan menjelaskan mengenai bagaimana cara melakukan macam-macam kondisional pada Bash scripting. Dan karena ini adalah seri khusus shell Bash, maka tentunya tidak POSIX-compliant. Kondisional IF Struktur dasar Struktur dasar kondisional if dalam Bash scripting hampir sama dengan keumuman bahasa pemrograman, yaitu seperti dibawah ini: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 if kondisi; then command command ... fi # atau if kondisi then command command ... fi Kondisi yang disebutkan diatas bisa berupa ekspresi perbandingan seperti contoh berikut: ...

 · 8 menit · Muhammad Ahfas An Nahri