Kombinasi Tail dan Grep

eiffel.di.blankon.in

Ah susah ini nyari judul yang pas, searchable, googlingable. Kasusnya adalah seperti ini. Saya butuh mencari baris yang mengandung kata kunci tertentu pada file logs streaming.

Berarti butuh perintah tail -f /path/to/log dan di grep hasilnya.

$ tail -f FILE | grep PATTERN | tail -f -n10

Namun kenyataannya, perintah diatas tidak mengeluarkan hasil apapun. Hasil utak-atik kata kunci di mesin pencari membawa pencarian saya di halaman Stackoverflow.
Berikut format solusi yang bisa digunakan:

$ grep PATTERN FILE | tail -n10; tail -f -n0 FILE | grep PATTERN;

Contoh:

$ grep user_subject_attributes /var/log/production.log | tail -n10; tail -f -n0 /var/log/production.log | grep user_subject_attributes;

Selamat berburu logs!!

Estu~

Iklan

Logrotate | Bersih-bersih Kapasitas Hardisk

logs

Biasanya, yang membuat hardisk server penuh adalah ukuran log yang membesar tiap harinya tanpa diurusi. Harusnya ada manajemen log.

Apa yang harusnya dilakukan pada log?

  1. Memecah log dalam satuan waktu, misal log pertanggal dengan format tanggal ISO (*-YYYYMMDD.log).
  2. Menghapus log lama otomatis, misal log 7 hari yg lalu akan dihapus.

Implementasi ?
Logrotate.

Berikut contoh konfigurasi yang biasa saya lakukan:

  • Install logrotate.
    $ sudo apt install logrotate
  • Atur konfigurasi logrotate.
    /path/to/log {
        daily
        missingok
        rotate 7
        size 100M
        compress
        delaycompress
        notifempty
        create 0640 user user
        sharedscripts
    }
    
  • Testing Logrotate
    $ sudo logrotate -vf /etc/logrotate.d/{{ app_name }}
  • Restart service cron
  • Logrotate secara bawaan merupakan cron harian. Jika ingin menjadikannya cron jam. Cukup pindahkan logrotate ke cron jam.
    $ sudo cp /etc/cron.daily/logrotate /etc/cron.hourly/logrotate<span data-mce-type="bookmark" id="mce_SELREST_start" data-mce-style="overflow:hidden;line-height:0" style="overflow:hidden;line-height:0;">&#65279;</span>

Kalau ada pertanyaan, silahkan tinggalkan komentar. Sekian.

Estu~

Mengoreksi Kapasitas Hardisk Sistem Operasi

Tumis-Tempe
ps: foto tak ada hubungan sama isi postingan

Nah ini sebenarnya sering saya lupa, tapi nyari pas butuh. Mesin penuh, service matik.

Nyari pembagian partisi

# sudo fdisk -l

Nyari kepastian ukuran partisi yang terpakai

# sudo df -h

Nyari ukuran folder pada posisi $(pwd)

# sudo du -sh

Nyari list ukuran deretan folder, demi mengetahui folder mana yang menghabiskan space paling besar

# sudo du -h --max-depth=2 .

Sepertinya itu aja kali ini. Lanjut cara benerinnya diposting selanjutnya. Kalau ada nemu yg lain nanti, akan saya tambahin disini.

Estu~

Upgrade BlankOn Tambora Menjadi BlankOn Uluwatu

Screenshot from 2017-11-13 16-40-47

CATATAN: RESIKO DITANGGUNG SENDIRI.
Penulis tutup mata jika langkah-langkah dibawah ini mengakibatnya keharusan memasang ulang OS di Laptop/PC masing-masing.

Ini adalah surhatan saya. Langkah berikut adalah pengalaman penulis, tidak ada jaminan akan berlaku sama jika diuji orang lain.

Berawal dari; oleh karena suatu sebab musabab, repo Tambora tidak lagi sehat dan beberapa kerjaan saya membutuhkan paket-paket lain. Jadi intinya saya g bisa masang-masang tools buat ngetik aneh-aneh.

Diputuskan: DIST-UPGRADE ke Uluwatu

Kondisi:
Laptop Thinkpad X260, terpasang BlankOn Tambora 64bit.

Karena dipakai kerjaan, jadinya proses ini saya cicil harap-harap cemas.

Step-step nya adalah:

  1. Ganti repo menuju Uluwatu.
    deb http://arsip-dev.blankonlinux.or.id/blankon uluwatu main restricted extras extras-restricted
    
  2. Update dan install kernel baru. Reboot setelah itu.
    sudo apt install linux-headers-amd64 linux-image-amd64
    
  3. Benerin applikasi yg ngaco gegara upgrade kernel (wifi install ulang driver dan virtualbox upgrade sekalian). Reboot setelah itu.
    sudo apt-get install firmware-iwlwifi --reinstall
    sudo sh VirtualBox-5.1*
    
  4. Upgrade aplikasi yg biasa dipakai. Bisa disorting via sudo apt list --upgradable. Aplikasi yang saya upgrade sebangsa Firefox, terminator, calibre dkk. Beberapa paket compiler juga.
    sudo apt install lsb aptitude inkscape vim zsh s3cmd zsync make sudo rsync build-essential tzdata openssh-client nano tar unzip audacious automake firefox xchat curl gedit dpkg gedit git reprepro terminator time wget tree sed bash whois p7zip openssl samba mount unrar mc net-tools nmap cron debootstrap gparted lsb
    
  5. Hapus paket yang bentrok. VLC saya hapus.
    sudo apt remove vlc
    
  6. Kalau sudah yakin, kita mulai dari upgrade. Dalam proses ini ada beberapa pertanyaan terkait ada config yang berubah seperti lsb-release. (Saya lupa yg lain, ada 2-3 kali).
    sudo apt upgrade
    
  7. Lanjut dengan dist-upgrade. Setelah selesai, silahkan reboot. Jangan lupa berdoa (beneran harap-harap cemas ini)
    sudo apt dist-upgrade
    

Step-step setelah selesai dist-upgrade dan masalah-masalah yang timbul:

  1. Bersihkan sisa-sisa paket
    sudo apt clean && sudo apt autoremove
    
  2. Benerin driver touchpad.
    sudo apt install xserver-xorg-input-libinput --reinstall &&
    sudo apt remove --purge xserver-xorg-input-synaptic
    
  3. Atur tap dan natural scrolling dari panduan ini.
    sudo modprobe -r psmouse
    sudo modprobe psmouse
    

    Kemudian buka gnome-control-center, atur sesuai kebutuhan (enable tap dan natural scrolling)

Sudah, itu saja yang saya lakukan.

Beberapa kutu yang masih ada adalah:

  1. Tampilan grub masih biru bawaan Debian, berbeda dari Tambora yg sudah ada khas logo BlankOn di pojok kanan.
  2. Network applet belum muncul.
  3. Paket VLC rusak.

Menuju RC3. Yay!!
Estu, yg mumet mainan Tsung.

RVM over SSH

Bukan materi baru, cuma baru nemu aja solusinya setelah mikir dua hari.

Kasus:

  • Delpoy Ruby on Rails via ssh
    laptop$ ssh estu@ip-mesin "cd ~; deploy.sh"
    
  • Ruby dibantu rvm.

Kendala:

  • Log stdout:
    bundle not found
    

Mitigasi:

Di server via login langsung:

server$ echo $PATH

Ouput tidak sama dengan ‘echo PATH’ dari ssh:

laptop$ ssh estu@ip-mesin "echo $PATH"

Solusi:

    1. Set env dari .bashrc ke /etc/environment. Samakan hasil “echo $PATH”. Kira-kira begini:
      PATH="/home/ubuntu/.rvm/gems/ruby-2.3.3/bin:/home/ubuntu/.rvm/gems/ruby-2.3.3@global/bin:/home/ubuntu/.rvm/rubies/ruby-2.3.3/bin:/home/ubuntu/bin:/home/ubuntu/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/ubuntu/.rvm/bin"
      export GEM_PATH=/home/ubuntu/.rvm/gems/ruby-2.3.3:/home/ubuntu/.rvm/gems/ruby-2.3.3@global
      export GEM_HOME=/home/ubuntu/.rvm/gems/ruby-2.3.3
      
    2. Disable env dari .bashrc.
    3. Reboot
    4. Tambahkan opsi –login pada baris ssh dan sederhanakan opsi perintah
      laptop$ ssh estu@ip-mesin  bash --login "./deploy.sh</code>"
      

 

Dah gitu aja.

Selamat istirahat.
Estu~

Molecule, Automate Testing Tool untuk Ansible Roles

logoMolecule

Dulu jaman masih cuma ngetik di chef, adalah tool namanya kitchen-vagrant yang biasa dipakai untuk ujicoba resep di chef (cookbook). Ansible role yang isinya mirip-mirip buku resep (cookbook) di chef juga butuh tool ujicoba. Ditemukanlah repo molecule di github beserta dokumentasinya!

Mencoba menjalankan role ansible dalam virtualbox, kemudian menguji hasil dari role. Untuk tools uji bawaan molecule adalah Testinfra. Memuaskan.

Molecule sendiri ditulis menggunakan python. Namun dalam pemakaian saya saat ini, saya menggunakan serverspec sebagai tools uji yang notabenenya serverspec ditulis dengan ruby. Dyar.

Untuk tipe OS yang saya gunakan adalah debian jessie64 atau xenial64. OS bawaan dari molecule adalah trusty64.

Mari kita coba! Lanjutkan membaca “Molecule, Automate Testing Tool untuk Ansible Roles”

Membuat Jenkin Jobs dengan Groovy(5); Post Build Steps

logo-jenkinsIni udah masuk step terakhir. Post Build Steps adalah bagian dimana ketika selesai build jobs, jenkins disuruh ngapain lagi.

Saya biasa mengisi di step ini untuk beberapa kerjaan, diantaranya:

  1. Mengirim notifikasi ke slack
  2. Mengirim surel ke pihak-pihak tertentu
  3. Menyimpan file hasil build (save artefak)
  4. Mengunggah file hasil build ke s3
  5. Memanggil jobs lain saat jobs ini sukses.
  6. Dan masih banyak lagi…

Berikut saya lampirkan contoh potongan kode post build steps:

publishers {
archiveArtifacts {
pattern("Release/*.apk")
onlyIfSuccessful()
}
downstream("${app}/StagingDeploy", 'SUCCESS')
mailer('admin@email.com', false, true)
  slackNotifier {...}
s3BucketPublisher {...}
}

Itu saja dari saya. Gistnya bisa diintip disini. Semoga memberi pencarahan.

Estu~