Operasi Pada Banyak Berkas di Linux

Problem Set:

Pada suatu pekerjaan saya mendapat pasokan gambar dengan ukuran yang besar dan penamaan yang tidak seragam. Untuk itu saya perlu mengurangi ukuran gambar dan menyeragamkan nama berkasnya.

Solusi:

Untuk ukuran besar gambar, gunakan ImageMagick

di Ubuntu

$ sudo apt install imagemagick

Mengubah ukuran (besar dan dimensi) berkas gambar. Kebutuhannya mengubah lebarnya dan tinggi mengikuti sesuai aspect ratio. Dalam hal ini mengubah menjadi berukuran lebar 1280px

$ mogrify -resize 1280x -format jpg *

Mengubah huruf kapital menjadi bukan huruf kecil:

$ rename 'y/A-Z/a-z/' *

Mengubah space kosong dengan dash (-):

$ rename "s/ /-/g" *

Catatan semua operasi dilakukan pada direktori masing2 gambar.

Perintah yang Ekuivalen Dengan update-grub di Fedora

Bila di Ubuntu kita menggunakan update-grub untuk mendeteksi OS lain agar dapat boot, maka di Fedora (atau sistem berbasis RHEL lainnya) gunakan perintah:

$ grub2-mkconfig -o /boot/grub2/grub.cfg

Jangan lupa memakai sudo sebelum perintah di atas dijalankan, atau su terlebih dahulu.

Wis, ngono thok … :)

Instal PDFtk Melalui Snap

Pagi-pagi di kantor seperti biasa saya menyalakan komputer desktop. Setelah menyala dengan tampilan login prompt gdm, saya masukan username dan password. Namun malah kembali lagi ke login prompt. Artinya tidak ada kesalahan password karena tidak ada pesan kesalahan password yang muncul.

Di Ubuntu Gnome 16.04 kejadian login prompt balik lagi pernah beberapa kali saya alami. Walaupun tidak sering tapi kadang terjadi.

Kali ini sudah dicoba berkali-kali, saya restart baik secara paksa maupun saya pijit tombol I/O. Masih juga belum berhasil.

Akhirnya setelah saya pikir sejenak, mungkin ini saatnya saya mulai beralih mengupgrade 16.04 LTS ke 18.04 LTS, setelah beberapa waktu lalu saya coba upgrade 16.04 ke 18.04 di salah satu HDD. Bismillah, akhirnya saya putuskan mengupgrade distribusi dengan perintah:

$ sudo do-release-upgrade

Lagipula versi 18.04 sudah masuk ke 18.04.1, artinya sudah lebih stabil (harusnya), hehe…

Singkat cerita akhirnya selesailah proses upgrade. Pada saat proses tersebut ada opsi untuk menghapus atau menguninstal paket-paket yang sudah tidak dipakai lagi.

Nah, sampailah pada tool penting yang harus ada sehubungan dengan pekerjaan yang saya lakukan membutuhkan tool ini yaitu pdftk.

Ternyata di rilis 18.04 ini sudah tidak tersedia. Googling sebentar, tiba-tiba teringat kalau di rilis yang baru ini sudah tersedia sesuatu yang bernama Snap. Apa itu? Silakan dilihat di https://snapcraft.io/

PDFtk yang saya butuhkan ternyata tersedia di itu. Walaupun yang ada adalah binary pdftk dari Ubuntu versi 16.04 yang dipaketkan ulang menggunakan Snap untuk di versi 18.04.

Saya instal saja

$ sudo snap install pdftk

Mudah-mudahan tidak ada masalah.

Catatan:
– Snap melalui proxy, masukan setting proxy di /etc/environment
– Restart snapd daemon: systemctl restart snapd

Menggabungkan Berkas PDF Menggunakan pdftk

_Screenshot from 2018-08-13 16-11-55
Ilustrasi: PDF viewer pada Ubuntu

Saya menggunakan Inkscape dalam melakukan pekerjaan desain 2D vektor. Namun sayang sekali Inkscape tidak mendukung gambar vektor SVG dalam multi halaman. Hal ini lebih disebabkan karena spesifikasi SVG saat ini tidak mendukung dokumen multi halaman.

Sebelumnya di Mac saya biasa menggunakan Preview untuk keperluan ini. Tinggal diinsert PDF yang diinginkan, kemudian pada sidebar thumbnail-nya bisa di-drag ke atas ke bawah untuk urutan halamannya.

Bagaimana dengan di Ubuntu? Tidak usah khawatir karena kita bisa membuat berkas vektor multi halaman dalam format PDF menggunakan pdftk.

Untuk di Ubuntu instal terlebih dahulu:

$ sudo apt install pdftk

Untuk membuat PDF multi halaman terlebih dahulu simpan terlebih dahulu masing-masing berkas PDF dengan “save a copy” pada Inkscape, lalu pada direktori tempat Anda jalankan perintah:

$ pdftk *.pdf cat output nama-file.pdf

Keterangan
*.pdf wildcard untuk berkas-berkas pdf sumber yang akan Anda gabung. Saran saya pada saat membuat file PDF di Inkscape penamaan berkas dibuat berurutan seperti yang Anda inginkan agar urutan halaman sesuai juga dengan yang Anda inginkan.

Cara lain bisa dengan cara menuliskan masing-masing PDF sumber:

$ pdftk file1.pdf file2.pdf cat output nama-file.pdf

Kira-kira demikian. Mudah-mudahan ada manfaatnya.

Update 2018/08/20
Artikel yang lebih lengkap:
https://www.maketecheasier.com/combine-multiple-pdf-files-with-pdftk/

Widianto Nugroho

Setup Desktop Linux Harian (Versi Saya)

View this post on Instagram

#Gnome3 #GnomeShell menggunakan #GnomeExtension: (1) "Dash to panel", untuk memindahkan ikon-ikon aplikasi pada #dash ke #GnomePanel. Panel dapat dipindahkan posisinya ke bawah agar tampilan desktop menyerupai Windows atau Chrome OS (gambar 1); (2) "Dynamic panel transparency" untuk membuat efek panel menjadi transparan secara dinamis pada saat jendela-jendela aplikasi dalam keadaan tidak di-maximize. Bila di-maximize maka panel akan berwarna hitam (bandingkan gambar 1, 2 dan 3); (3) "Arc menu", seperti tombol "Start" pada Windows; (4) "Topicons plus" untuk memindahkan status aplikasi Dropbox dan Franz (untuk Whatsapp, Telegram, dan lain-lain) ke panel. Untuk tampilan default Gnome Shell, lihat gambar 4. Untuk mendownload Gnome Extension (bila belum tersedia pada sistem) dan mengaktifkannya, gunakan #GnomeTweaks: Tweaks > Extension. Untuk mengaktifkan ikon: Tweaks > Desktop, "On"kan "Icons on Desktop". #GnomeDesktop #Linux

A post shared by Widianto Nugroho (@widiantonugroho) on

Melanjutkan artikel sebelumnya, perihal memindahkan data menggunakan rsync, kita setup komputer yang akan kita gunakan sehari-hari untuk bekerja.

Setelah sistem operasi berhasil diinstall, yang saya lakukan adalah membalik arah scroll mouse (atau touchpad) menjadi natural scrolling. Namun berdasarkan artikel di sini, tambahkan perintah:

$ xinput set-prop {device id} {property number} -1 -1 -1

Selanjutnya, ikuti petunjuk dari artikel-artikel dengan kata kunci “things to do after installing Ubuntu [versi]”. Untuk yang saya install dan gunakan sehari-hari Ubuntu Gnome agak sedikit berbeda, namun paket apa yang harus diinstal relatif sama, yaitu:

Update/Upgrade

$ sudo apt update
$ sudo apt upgrade

Menginstal codec untuk menjalankan multimedia

$ sudo apt install ubuntu-restricted-extras

Selanjutnya, menginstal paket-paket aplikasi yang dibutuhkan, untuk kebutuhan saya: Inkscape, Gimp, Blender.

Kemudian menghapus/menambah shortcut aplikasi pada “Favorites”, semacam “Dock” pada Mac. Favorites secara default berada di sisi kiri layar desktop.

Yak, itu saja nampaknya. Semoga ada manfaatnya.

PS: Untuk ilustasi di atas, desktop dikustomisasi menggunakan Gnome Extension, silakan dicoba bila berminat :)

Widianto Nugroho

Memindahkan Data Menggunakan rsync

_Screenshot from 2018-08-10 09-48-10
Proses rsync

Dalam kegiatan pekerjaan sehari-hari adakalanya karena satu dan lain hal kita harus berganti atau mengganti komputer.

Beberapa hari yang lalu, komputer yang saya pakai tiba-tiba mengalami masalah pada power supply sehingga tidak mau dinyalakan. Solusinya diganti menggunakan komputer lain.

Untuk keperluan ini maka kita setidaknya perlu melakukan 2 hal:

  • Membackup dan memindahkan data
  • Mensetup komputer baru sesuai dengan kebutuhan dan kebiasaan

Di artikel ini saya akan membahas yang pertama yaitu membackup dan memindahkan data di/dari/ke komputer dengan sistem operasi Linux (Ubuntu Gnome).

Untuk data yang tidak seberapa banyak maka cukup diperlukan copy-paste. Bagaimana bila datanya berpuluh-puluh giga?

Bila data yang akan kita pindahkan mencapai puluahm giga atau lebih kita perlu cara yang praktis dan memudahkan kita. Pastinya memakan waktu lama, perlu di-stop terlebih dahulu dan kemudian di-resume kembali, dan seterusnya.

Tool atau utilitas yang saya gunakan di Linux adalah rsync. Rsync adalah perintah baris (command line) sehingga dijalankan melalui terminal.

Perintah rsync dapat digunakan untuk memindahkan data di dalam komputer lokal, misal dari eksternal hard disk ke internal hard disk, atau data di lokal ke host lain melalui jaringan atau LAN.

Perintah rsync (dari manual):

Local:  rsync [OPTION...] SRC... [DEST]

Access via remote shell:
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST

Access via rsync daemon:
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST

Jadi, format perintahnya adalah:

$ rsync [OPSI...] SUMBER... [TUJUAN]

Untuk kebutuhan saya, yang saya lakukan adalah (melalui remote shell atau ssh):

Pull

$ rsync -azP --no-links --exclude=".*" --exclude=".*/" username@[IP ADDRESS]:/path/ke/dir/sumber /path/ke/dir/tujuan

Push

$ rsync -azP --no-links --exclude=".*" --exclude=".*/" /path/ke/dir/sumber username@[IP ADDRESS]:/path/ke/dir/tujuan

Selanjutnya host remote akan meminta password dan rsync akan memproses.

Keterangan Opsi:

-a untuk archive mode
-z untuk menkompress data pada saat transfer
-P (P besar) untuk memperlihatkan progress pada saat transfer
--no-links untuk tidak mentransfer file atau direktori yang berupa symbolic link (file atau direktori yang sebetulnya ada di lokasi lain)
--exlcude=".*" untuk tidak mentransfer file yang disembunyikan (nama file diawali tanda titik)
--exclude=".*/" untuk tidak mentransfer direktori yang disembunyikan (nama direktori diawali tanda titik)

Untuk menstop paksa gunakan Ctrl+C. Untuk melanjutkan ulangi perintah yang sama. Rsync akan memeriksa keseluruhan proses yang sudah dilakukan, dan kemudian melanjutkannya.

Kita tidak perlu diminta memilih men-skip atau menimpa file yang sudah dikopi sebelumnya. Rsync sudah melakukannya untuk Anda dan melanjutkan apabila ada file yang terpotong di tengah-tengah pada saat transfer terhenti.

Oya, rsync biasanya sudah tersedia di berbagai OS Linux. Jadi Anda tidak usah menginstalnya terlebih dahulu.

Untuk mensetup, akan saya bagi di artikel selanjutnya. Demikian, mudah-mudahan ada manfaatnya.

Widianto Nugroho
widiantonugroho.com