Python Virtualenv and Crontab

Subscribe Dengan Account Google Untuk Membaca Artikel Tanpa Iklan
Python Virtualenv and Crontab

Crontab adalah salah satu utility program yang ada pada sistem operasi Linux, Crontab digunakan untuk melakukan eksekusi perintah secara otomatis pada waktu tertentu. Untuk memahami lebih lanjut tentang Crontab, ikuti urain di bawah ini

Perintah Dasar Crontab



  • crontab -e Mengubah atau membuat file crontab jika belum ada.

  • crontab -l Menampilkan isi file crontab.

  • crontab -r Menghapus file crontab.

  • crontab -v Menampilkan waktu terakhir mengubah isi file crontab. (Hanya tersedia dibeberapa sistem).


Crontab Parameters


# m h dom mon dow command

Baris yang dikomentari di atas menampilkan parameter tentang bagaimana crontab mendefinisikan setiap cronjob.

Daftar Parameter Crontab



  • m - Minute (menit) - 0 to 59

  • h - Hour (jam) - 0 to 23

  • dom - Day of Month (tanggal) - 0 to 31

  • mon - Month (bulan) - 0 to 12

  • dow - Day of Week (nomor hari) - 0 to 7 (0 dan 7 adalah hari minggu)


Berikut ini grafik untuk mempermudah:
* * * * * perintah yang akan dieksekusi
– – – – –
| | | | |
| | | | +—– day of week (0 – 7) (Sunday=0)
| | | +——- month (1 – 12)
| | +——— day of month (1 – 31)
| +———– hour (0 – 23)
+————- min (0 – 59)

Parameter-parameter di atas memungkinkan kita untuk membuat suatu jobs yang berjalan pada waktu-waktu tertentu. Setiap parameter yang dipilih dapat mengatur details waktu eksekusi sampai ke menit. Ada karakter khusus yang dapat membuat crontab lebih fleksibel.

Karakter Khusus


Kita dapat menggunakan karakter khusus disebuah cron untuk memperbolehkan pengguna menentukan interval waktu bagi sebuah job untuk dieksekusi. Karakter khusus ini dipakai di crontab untuk mendeklarasi cronjob.

Karakter khusus: Asterisk (bintang)

Karakter Asterisk (bintang) merupakan karakter wild card yang dipakai untuk membuat sebuah job dijalankan setiap menit, setiap jam, setiap, hari, setiap bulan (tergantung posisi dimana ia ditulis, lihat grafik di atas).

Contoh:

* * * * * /home/user/script.sh

Karakter khusus: Koma

Karakter koma saat kita ingin mengeksekusi sebuah job di dua waktu atau lebih. Contoh di bawah ini misalnya, kita ingin mengeksekusi /home/user/script.shsetiap menit ke 0, 15, dan 25.

0,15,25 * * * * /home/user/script.sh

Karakter khusus: Hyphen (-)

Karakter - dipakai untuk memberikan jarak waktu antar eksekusi job.

0-59 0-23 * * * /home/user/script.sh

Karakter khusus: Forward Slash (/)

Karakter / dipakai jika kita ingin memberikan interval antar eksekusi job. Pada contoh di bawah ini kita ingin agar script.sh dieksekusi pada menit ke 0 lalu 20 kemudian 40 dan 60.

*/20 * * * * /home/user/script.sh

Contoh Crontab


Sebagian besar crontab dapat memiliki metode sendiri dalam pembuatannya dengan menggunakan wild card atau mendefinisikan sebuah jarak.

Setiap menit setiap hari

 # m h dom mon dow command
* * * * * /home/user/script.sh

Atau
 # m h dom mon dow command
0-59 0-23 0-31 0-12 0-7 /home/user/script.sh

Setiap 10 menit setiap hari
 # m h dom mon dow command
*/10 * * * * /home/user/script.sh

Atau
 # m h dom mon dow command
0-59/10 * * * * /home/user/script.sh

Atau
 # m h dom mon dow command
0,10,20,30,40,50 * * * * /home/user/script.sh

Setiap 5 menit pada pukul 6 pagi dimulai pada 6:07
 # m h dom mon dow command
07-59/5 06 * * * /home/user/script.sh
# Perintah ini akan berjalan pada 6:07, 6:012, 6:17, 6:22, 6:27, seterusnya sampai 6:57

Setiap hari tengah malam
 # m h dom mon dow command
0 0 * * * /home/user/script.sh

Atau
 # m h dom mon dow command
0 0 * * 0-7 /home/user/script.sh

Tiga kali sehari
 # m h dom mon dow command
0 */8 * * * /home/user/script.sh

Atau
 # m h dom mon dow command
0 0-23/8 * * * /home/user/script.sh

Atau
 # m h dom mon dow command
0 0,8,16 * * * /home/user/script.sh

Setiap weekday (Senin - Jumat) jam 6 pagi
 # m h dom mon dow command
0 06 * * 1-5 /home/user/script.sh

Setiap weekend (Sabtu - Minggu) jam 6 pagi
 # m h dom mon dow command
0 06 * * 6,7 /home/user/script.sh

Atau
 # m h dom mon dow command
0 06 * * 6-7 /home/user/script.sh

Sebulan sekali setiap tanggal 20 jam 6 pagi
 # m h dom mon dow command
0 06 20 * * /home/user/script.sh

Setiap 4 hari sekali jam 6 pagi
 # m h dom mon dow command
0 06 */4 * * /home/user/script.sh

Setiap 4 bulan sekali tanggal 10 jam 6 pagi
 # m h dom mon dow command
0 06 10 */4 * /home/user/script.sh

Penggunaan String Khusus


Kita juga dapat menggunakan string khusus sebagai pengganti kelima parameter di atas untuk memudahkan pembacaan.

  • @reboot - Dijalankan sekali setiap kali sistem dihidupkan

  • @yearly - Dijalankan sekali setahun 0 0 1 1 *

  • @annually - Sama seperti @yearly

  • @monthly - Dijalankan sekali sebulan 0 0 1 * *

  • @weekly - Dijalankan sekali seminggu 0 0 * * 0

  • @daily - Dijalankan setiap hari 0 0 * * *

  • @midnight - Sama seperti @daily

  • @hourly - Dijalankan setiap jam 0 * * * *


Contoh Penggunaan String


Setiap jam
@hourly /home/user/script.sh

Setiap bulan
@monthly /home/user/script.sh

Bagaimana untuk menjalankan CronTab pada kode python ?


Pastikan terlebih dahulu kamu telah berada pada mode environment, bagaimana cara membuat python virtual environment baca artikel berikut : konfigurasi python virtualenv

-  login sebagai super user 

sudo -i

-  buka crontab
crontab -e

-  setting crontab misal setiap 17 menit
*/17 * * * *    cd /var/www/MyProject && venv/bin/python3.6 scraper.py

-  simpan crontab
ctrl+o lalu tekan enter kemudian ctrl+x

- lihat status crontab 
crontab -l

baca artikel lainya :

sumber referensi : https://help.ubuntu.com/community/CronHowto

jika ada pertanyaan tentang python bisa hubungi kami  Halovina :)