Cara Menjalankan atau Mengulangi Perintah Linux Setiap X Detik Selamanya


Seorang administrator sistem sering kali perlu menjalankan perintah berulang kali dalam jangka waktu tertentu. Seringkali tugas seperti itu dapat diselesaikan dengan mudah menggunakan perintah cron sederhana. Dalam sebagian besar kasus, hal ini seharusnya berhasil, namun periode terpendek di mana Anda dapat menjalankan perintah cron adalah setiap 1 menit. Percaya atau tidak, dalam banyak kasus hal ini terlalu lambat.

Dalam tutorial ini, Anda akan mempelajari teknik skrip sederhana untuk memantau atau mengawasi perintah tertentu dalam keadaan berjalan terus-menerus, mirip dengan perintah teratas (pantau terus proses dan penggunaan memori) setiap 3 detik secara default.

Kami tidak akan berhenti membahas alasan mengapa Anda perlu menjalankan perintah sesering ini. Saya yakin setiap orang memiliki alasan berbeda mengenai hal ini dalam pekerjaan sehari-hari atau bahkan di PC dan laptop di rumah.

1. Gunakan Perintah jam tangan

Tonton adalah perintah Linux yang memungkinkan Anda menjalankan perintah atau program secara berkala dan juga menampilkan output di layar. Ini berarti Anda akan dapat melihat keluaran program tepat waktu. Secara default, jam tangan menjalankan kembali perintah/program setiap 2 detik. Intervalnya dapat dengan mudah diubah untuk memenuhi kebutuhan Anda.

Pantau Penggunaan Memori

“Watch” sangat mudah digunakan, untuk mengujinya, Anda dapat langsung menjalankan terminal Linux dan mengetikkan perintah berikut:

watch free -m

Perintah di atas akan memeriksa memori bebas sistem Anda dan memperbarui hasil perintah bebas setiap dua detik.

Seperti yang terlihat pada output di atas, Anda memiliki header, yang menampilkan informasi tentang (dari kiri ke kanan) interval pembaruan, perintah yang sedang dijalankan, dan waktu saat ini. Jika Anda ingin menyembunyikan header ini, Anda dapat menggunakan opsi -t.

Pertanyaan logis berikutnya adalah – bagaimana mengubah interval eksekusi. Untuk tujuan tersebut, Anda dapat menggunakan opsi -n, yang menentukan interval eksekusi perintah. Interval ini ditentukan dalam hitungan detik. Jadi misalkan Anda ingin menjalankan file script.sh setiap 10 detik, Anda dapat melakukannya seperti ini:

watch -n 10 script.sh

Perhatikan bahwa jika Anda menjalankan perintah seperti yang ditunjukkan di atas, Anda perlu cd ke direktori (pelajari Pelajari 15 Contoh Perintah cd) di mana skrip tersebut berada atau tentukan jalur lengkap ke skrip tersebut.

Opsi berguna lainnya dari perintah jam tangan adalah:

  1. -b – mengeluarkan bunyi bip jika perintah yang keluar bukan nol.
  2. -c – Menafsirkan urutan warna ANSI.
  3. -d – menyoroti perubahan pada keluaran perintah.

Pantau Pengguna yang Masuk, Waktu Aktif dan Rata-Rata Beban

Katakanlah Anda ingin memantau pengguna yang login, waktu aktif server, dan memuat output rata-rata dalam fase berkelanjutan setiap beberapa detik, lalu gunakan perintah berikut seperti yang ditunjukkan:

watch uptime

Untuk keluar dari perintah, tekan CTRL+C.

Di sini, perintah 'uptime' akan dijalankan dan menampilkan hasil yang diperbarui setiap 2 detik secara default.

Pantau Kemajuan Perintah Salin

Di Linux, saat menyalin file dari satu lokasi ke lokasi lain menggunakan perintah cp, perkembangan data tidak ditampilkan, untuk melihat perkembangan data yang disalin, Anda dapat menggunakan watch perintah bersama dengan perintah du -s untuk memeriksa penggunaan disk secara real time.

cp ubuntu-15.10-desktop-amd64.iso /home/tecmint/ &
watch -n 0.1 du -s /home/tecmint/ubuntu-15.10-desktop-amd64.iso 

Jika menurut Anda proses di atas terlalu rumit untuk dilakukan, saya sarankan Anda menggunakan perintah Salin lanjutan, yang menunjukkan kemajuan data saat menyalin.

2. Gunakan Perintah tidur

Sleep sering kali digunakan untuk men-debug skrip shell, tetapi ia juga memiliki banyak tujuan berguna lainnya. Misalnya, jika dikombinasikan dengan perulangan for atau while, Anda bisa mendapatkan hasil yang cukup mengagumkan.

Jika Anda baru mengenal skrip bash, Anda dapat memeriksa panduan kami tentang bash loop di sini.

Jika ini pertama kalinya Anda mendengar tentang perintah "sleep", perintah ini digunakan untuk menunda sesuatu selama jangka waktu tertentu. Dalam skrip, Anda dapat menggunakannya untuk memberi tahu skrip Anda agar menjalankan perintah 1, tunggu selama 10 detik, lalu jalankan perintah 2.

Dengan loop di atas, Anda dapat memerintahkan bash untuk menjalankan perintah, tidur selama N detik, lalu menjalankan perintah lagi.

Di bawah ini Anda dapat melihat contoh kedua loop:

untuk contoh perulangan

for i in {1..10}; do echo -n "This is a test in loop $i "; date ; sleep 5; done

Liner di atas, akan menjalankan perintah echo dan menampilkan tanggal saat ini, total 10 kali, dengan jeda 5 detik di antara eksekusi.

Berikut ini contoh keluarannya:

This is a test in loop 1 Wed Feb 17 20:49:47 EET 2016
This is a test in loop 2 Wed Feb 17 20:49:52 EET 2016
This is a test in loop 3 Wed Feb 17 20:49:57 EET 2016
This is a test in loop 4 Wed Feb 17 20:50:02 EET 2016
This is a test in loop 5 Wed Feb 17 20:50:07 EET 2016
This is a test in loop 6 Wed Feb 17 20:50:12 EET 2016
This is a test in loop 7 Wed Feb 17 20:50:17 EET 2016
This is a test in loop 8 Wed Feb 17 20:50:22 EET 2016
This is a test in loop 9 Wed Feb 17 20:50:27 EET 2016
This is a test in loop 10 Wed Feb 17 20:50:32 EET 2016

Anda dapat mengubah perintah echo dan date dengan perintah atau skrip Anda sendiri dan mengubah interval tidur sesuai kebutuhan Anda.

Contoh perulangan while

while true; do echo -n "This is a test of while loop";date ; sleep 5; done

Berikut adalah contoh keluaran:

This is a test of while loopWed Feb 17 20:52:32 EET 2016
This is a test of while loopWed Feb 17 20:52:37 EET 2016
This is a test of while loopWed Feb 17 20:52:42 EET 2016
This is a test of while loopWed Feb 17 20:52:47 EET 2016
This is a test of while loopWed Feb 17 20:52:52 EET 2016
This is a test of while loopWed Feb 17 20:52:57 EET 2016

Perintah di atas akan dijalankan hingga dihentikan atau diinterupsi oleh pengguna. Ini bisa berguna jika Anda perlu menjalankan perintah yang berjalan di latar belakang dan Anda tidak ingin mengandalkan cron.

Penting: Saat menggunakan metode di atas, sangat disarankan agar Anda mengatur interval cukup lama untuk memberikan waktu yang cukup bagi perintah Anda untuk selesai dijalankan, sebelum eksekusi berikutnya.

Kesimpulan

Contoh dalam tutorial ini berguna, namun tidak dimaksudkan untuk sepenuhnya menggantikan utilitas cron. Terserah Anda untuk menemukan mana yang lebih cocok untuk Anda, tetapi jika kita harus memisahkan penggunaan kedua teknik tersebut, saya akan mengatakan ini:

  1. Gunakan cron ketika Anda perlu menjalankan perintah secara berkala bahkan setelah sistem di-boot ulang.
  2. Gunakan metode yang dijelaskan dalam tutorial ini untuk program/skrip yang dimaksudkan untuk dijalankan dalam sesi pengguna saat ini.

Seperti biasa jika Anda memiliki pertanyaan atau komentar, jangan ragu untuk menyampaikannya di bagian komentar di bawah.