Hati-hati Menggunakan Bintang dan Rsync pada Crontab

Pengalaman pribadi hari libur pekan kemarin tetiba ada telepon mengabarkan bahwa server tidak bisa diakses. Via pesan whatsapp dikirimi error komputer server seperti ini:


Ada proses rsync yang sedang berjalan tapi error. Beberapa hari sebelumnya memang seting backup otomatis dari Linux server ke Synology dengan menggunakan rsync. Ini dikarenakan server backup yang sama-sama Linux sudah penuh. Sehingga backup otomatis dengan rsync diarahkan ke Synology.

Sebagai pemula saya menduga syntax rsync pada crontab harus diedit. Tapi bagaimana caranya? Untuk masuk ke subfolder /etc/fstab maupun crontab -e saja tidak bisa.

Kemudian saya sarankan Synologynya agar dishutdown terlebih dahulu. 

Beberapa saat kemudian dikirimi jepretan proses yang terlihat pada layar komputer Linux server seperti ini:


Menurut dugaan saya ini ada proses yang berjalan menuju pemulihan. Setelah proses ini saya meyakini tampilan akan kembali normal seperti semula. Kira-kira bener enggak ya menurut master-master yang baca tulisan di sini? 

Dari balik telepon saya hanya menyarankan agar menunggu proses tersebut dengan sedikit bersabar, jangan panik dan tetap tenang. 

Akan tetapi tidak lama berselang ada pesan masuk whatsapp mengabarkan bahwa server sudah bisa berjalan. 

Sayangnya dengan jalan pintas mereboot system Linux. Ya sudah, mau gimana lagi? ini mah otomatis bisa masuk command prompt. 

Sekarang lanjut melihat konfigurasi rsync pada crontab dengan menggunakan perintah berikut ini pada terminal.

root@server:~# crontab -e

Jika login menggunakan user yang bukan root berarti:

user@server:~$ sudo crontab-e

Maka akan ditampilkan konfigurasi tabel cron. Kemudian perhatikan pada syntax pengaturan waktunya. Yang sebelumnya menggunakan bintang saya sarankan edit menjadi:

* 17 * * 6 rsync -rvzh /data /mnt/backup

Script sebelumnya begini:

* * * * * rsync -rvzh /data /mnt/backup

Besoknya karena ada permintaan backup harus dipercepat saya edit lagi. Untuk syntax baris 1-3 saya biarkan seperti contoh di atas yang hanya dijadwal setiap pekan. Sedangkan folder yang paling aktif dan paling banyak diseting backup setiap hari. Alhamdulillah setelah satu pekan berjalan belum ada komplain.

Pada kasus saya di atas syntax rsync pada crontab realnya ada 4 (empat) baris dengan folder asal serta folder tujuan yang berbeda-beda. Saya cukupkan contoh di atas hanya satu dan itu cukup mewakili. Dimana /data adalah path data pada server utama yang akan dibackup. Dan /mnt/backup adalah folder tujuan yang sudah dimount dengan shared folder pada Synology.

Adapun penjelasan bintang pada script tersebut adalah:
  • Bintang yang pertama menunjukan menit dan diisi angka 0-59 yang artinya menit kesekian. Atau diisi * yang berarti setiap menit
  • Bintang yang kedua menunjukan jam dan diisi 0-23. Pada contoh syntax pertama; 17 menunjukan jam 5 sore. Jika diisi bintang berarti setiap jam
  • Bintang keempat menunjukan tanggal dan diisi 0-31. Jika diisi * berarti backup dijadwalkan setiap tanggal berapapun
  • Bintang kelima menunjukan bulan dan diisi 0-12. Jika diisi bintang berarti menjadwalkan backup tanpa dibatasi bulan tertentu
  • Bintang keenam menunjukan hari dan diisi 0-7. Penghitungan harinya 0=minggu, 1=senin, 2=selasa, 3=rabu, 4=kamis, 5=jum'at, 6=sabtu dan 7=minggu. Jika diisi * berarti setiap hari
Selain karakter khusus {*} dalam script cronjobs, ada juga {,} yang menunjukan dua waktu atau lebih dan {-} untuk memberikan jarak waktu pada proses backup otomatis.

Mungkin pembahasan seputar hal tersebut harus dalam artikel tersendiri. Poin yang ingin disampaikan dalam artikel saat ini adalah agar berhati-hati dalam menerapkan script pada crontab.

Bisa jadi error yang saya alami karena syntax yang digunakan membebani sistem. Sedangkan data sekian terabyte sudah nggak sabar pergi ke ruang hardisk baru.

Semoga pengalaman ini bisa dijadikan pelajaran buat pemula seperti saya.





Baca Juga

Tidak ada komentar:

Posting Komentar