Betiklerinizi Cron ile zamanlayın

Bash Script Yazmaya Giriş

Alex Scriven

Data Scientist

Neden betikleri zamanlayalım?

 

Betikleri zamanlamanın yararlı olduğu birçok durum vardır:

  1. Düzenli yapılması gereken görevler. Günlük, haftalık, günde birden çok kez olabilir.
    • Kendinize takvim hatırlatıcısı koyabilirsiniz; peki ya unutursanız?
  2. Kaynakları en iyi kullanma (betikleri sabah erken saatlerde çalıştırma)

Betikleri cron ile zamanlamak, modern veri altyapılarını etkili kullanmak için gereklidir.

Bash Script Yazmaya Giriş

Cron nedir?

 

Cron, 70'lerden beri Unix benzeri sistemlerin parçasıdır. İnsanlar o zamandan beri tembel!

Adı, Yunanca zaman anlamına gelen chronos kelimesinden gelir.

crontab adı verilen ve içinde her biri crontab'a neyi ne zaman çalıştıracağını söyleyen cronjobların bulunduğu bir dosya ile yönetilir.

Bash Script Yazmaya Giriş

Crontab — cronjob’ların sürücüsü

 

Şu anda programlanmış zamanlamaları (cronjobları) aşağıdaki komutla görebilirsiniz:

crontab -l
crontab: no crontab for user

Görünüşe göre bir zamanlama (cronjob) oluşturmamız gerekiyor!

Bash Script Yazmaya Giriş

Crontab ve cronjob yapısı

Vikipedi'den bu harika görsel, crontab dosyası içinde bir cronjobun nasıl kurulduğunu gösterir. Bir satırda bir tane olmak üzere birden çok cronjob olabilir.

Bir crontab’ın yapısı

  • Ayarlanacak 5 yıldız vardır; her biri bir zaman birimi için
  • Varsayılan * 'her' anlamına gelir
Bash Script Yazmaya Giriş

Cronjob örneği

Bazı cronjob örneklerine bakalım:

5 1 * * * bash myscript.sh

  • Dakika yıldızı 5 (saatin 5 geçesi). Saat yıldızı 1 (01:00 sonrası). Son üçü *, yani her gün ve ay
    • Genel: her gün 01:05'te çalıştır.

 

15 14 * * 7 bash myscript.sh

  • Dakika yıldızı 15 (saatin 15 geçesi). Saat yıldızı 14 (14:00 sonrası). Sonraki ikisi * (Ayın her günü, yılın her ayı). Son yıldız 7. gün (Pazar).
    • Genel: her Pazar 14:15'te çalıştır.
Bash Script Yazmaya Giriş

Gelişmiş cronjob yapısı

Günde birden çok kez veya her 'X' zaman aralığında çalıştırmak da mümkündür:

  • Belirli aralıklar için virgül kullanın. Örneğin:
    • 15,30,45 * * * * ikinci yıldızın belirttiği saatlerde 15, 30 ve 45. dakikalarda çalışır. Burada her saat, her gün vb.
  • 'Her X artışta' için eğik çizgi kullanın. Örneğin:
    • */15 * * * * her 15 dakikada bir çalışır. Ayrıca her saat, gün vb. için.
Bash Script Yazmaya Giriş

İlk cronjob’ınız

extract_data.sh adlı bir betiği her sabah 01:30'da çalışacak şekilde zamanlayalım. Adımlarınız şunlardır:

  1. Terminalde crontab -e yazarak cronjob listenizi düzenleyin.
    • Hangi düzenleyiciyi kullanmak istediğinizi sorabilir. nano, vi (vim)'e göre daha kolay bir seçenektir.
  2. Cronjob'ı oluşturun:
    • 30 1 * * * extract_data.sh
Bash Script Yazmaya Giriş

İlk cron job’ınız

  1. Kaydetmek için düzenleyiciden çıkın

nano (Mac) kullanıyorsanız ctrl + o, sonra enter, ardından çıkmak için ctrl + x.

crontab: installing new crontab iletisini göreceksiniz

  1. crontab -l çalıştırarak orada olduğunu doğrulayın.
30 1 * * * extract_data.sh

Güzel iş!

Bash Script Yazmaya Giriş

Ayo berlatih!

Bash Script Yazmaya Giriş

Preparing Video For Download...