Hayatınızı kolaylaştıran çeşitli sıradan ve tekrarlayan görevleri otomatikleştirmek için crontab Linux komutundan yararlanın. Bu mükemmel ve kullanımı kolay araç, bazı komut dosyaları ile birleştirildiğinde, yalnızca her türlü görevi otomatikleştirmekle kalmaz, aynı zamanda basit insan hatalarını veya unutkanlığı önlemeye yardımcı olur.

Burada crontab'ın ne olduğunu, otomatik işlerin nasıl ekleneceğini ve bazı gerçek dünyadan örnekler öğreneceksiniz.

Crontab nedir?

Crontab, neredeyse tüm Linux makinelerinde arka planda çalışan bir arka plan programı işlemidir ve otomatikleştirilmiş görevleri belirli zaman aralıklarında zamanlamak ve yürütmek için kullanılır. Ayrıca, yazılım geliştiricileri tarafından arka planda zaman alan görevleri çalıştırmak için de sıklıkla kullanılır.

Bu, toplu e-postalar göndermek, Twitter beslemenizi kontrol etmek, yedekleme yapmak veya sadece bir hatırlatma yapmak dahil ancak bunlarla sınırlı olmamak üzere herhangi bir şey olabilir.

Temel Crontab Komutları

Makinedeki her Linux kullanıcısının, aktif crontab işlerini içeren kendi crontab dosyası vardır. Crontab dosyasını görüntülemek ve değiştirmek için kullanacağınız bazı temel terminal komutları şunlardır:

instagram viewer

  • crontab-l Tüm crontab işlerini listeleyin.
  • crontab -e Crontab dosyasını düzenleyin.
  • crontab -r Crontab dosyasındaki tüm girişleri kaldırın.

Yukarıdaki komutlar, mevcut kullanıcılar crontab dosyası. Farklı bir kullanıcının crontab dosyasını değiştirmeniz gerekirse, -u seçeneği. Örneğin, jdoe kullanıcının crontab dosyası şu komutla:

Ubuntu Linux: Kullanıcıları Gruplara Kolay Şekilde Ekleme ve Kaldırma

Ubuntu Linux'ta kullanıcıları daha iyi yönetmek mi istiyorsunuz? Cevap, gruplar oluşturmak ve ardından Ubuntu kullanıcı ekle özelliğini kullanmaktır.

sudo crontab -ujdoe -e

Crontab İşlerinin Biçimi

Her crontab işi bir satırdan oluşur ve aşağıdaki gibi biçimlendirilir:

DAKİKA SAAT GÜN AY HAFTA GÜNÜ KOMUT

Aşağıdaki tablo, crontab işinin farklı unsurlarını açıklamaktadır:

Eleman Ranage Açıklama
Dakika 0 - 59 Crontab işini yürütme dakikası.
Saat 0 - 23 Crontab işini yürütme saati.
Gün 1 - 31 Crontab işinin yapılacağı ayın günü.
Ay 1 - 12 Crontab işinin gerçekleştirileceği ay.
Hafta içi 0 - 6 Crontab işinin yapılacağı haftanın günü.
Komut Terminalde çalıştırabileceğiniz herhangi bir Linux komutu.

Bir joker karakteri belirtmek için herhangi bir alanda yıldız işareti (*) kullanabilirsiniz; bu, crontab işinin o zaman dilimine bakılmaksızın yürütüleceği anlamına gelir. Örneğin, aşağıdaki crontab işi her gece tam olarak 3: 20'de yürütülecektir:

20 3 * * * /root/backup.sh

Çoklu Değerler

Her bir zaman dilimi ayrıca birden fazla öğe içerebilir. Tam değerleri virgülle ayırarak belirtebilirsiniz ve aşağıdaki crontab işi her saat başı 20 ve 50 geçe geçe çalışacaktır:

20,50 * * * * /path/to/command.sh

Bununla birlikte, crontab işini belirli aralıklarla belirli bir süre içinde yürütmek istiyorsanız kullanabilirsiniz. * / DÖNEMve aşağıdaki crontab işi her üç saatte bir saati 15 dakika geçe otomatik olarak yürütülecektir:

15 * / 3 * * * /path/to/command.sh

Crontab İşlerini Sessiz Tutmak

Her şeye bağlı olarak, sisteminizin posta klasörüne girmemeleri için crontab işlerinden tüm çıktıları ortadan kaldırmak isteyebilirsiniz. Bunu ekleyerek yapabilirsiniz > / dev / null 2> & 1 herhangi bir crontab işine. Örneğin:

0 6 15 * * /path/to/backup.sh> / dev / null 2> & 1

Crontab İşleri Ekleme

Genel olarak, crontab işlerini eklemek veya değiştirmek için en çok kullanılan yöntem, crontab -e komut. Bu komutu terminalde çalıştırın:

crontab -e

Bu bir Metin düzeltici gibi nano crontab dosyanızın içeriğiyle. Her crontab işi bir satırda bulunur ve istediğiniz şekilde satır ekleyebilir, değiştirebilir ve kaldırabilirsiniz. Bittiğinde, dosyayı kaydedip kapatın Ctrl + Wve ardından Y ve Giriş anahtarlar, dosya içindeki tüm crontab işlerini anında etkinleştirir.

İş Ekleme Kısayolu

Crontab dosyasını manuel olarak değiştirmek yerine, bir iş eklemek için çalıştırabileceğiniz hızlı tek bir komut vardır. Örneğin, her Pazar saat 14: 00'da çalışan bu crontab işini eklemek istiyorsanız:

0 14 * * 0 /path/to/command.sh

İşi crontab dosyanıza tek komutla ekleyebilirsiniz:

(crontab -l; echo "0 14 * * 0 /path/to/command.sh";) | Crontab

Yukarıdaki komut şu anda crontab dosyanızdaki tüm işleri listeler, yeni işi yazdırır ve her şeyi Crontab içeriğini değiştiriyor.

Crontab Dosyasını Listeleme / Kaldırma

Şu anda crontab dosyanızdaki tüm işleri şu komutla listeleyebilirsiniz:

crontab -l

Ayrıca tüm crontab işlerini kaldırabilir ve crontab dosyanızın içeriğini şu komutla boşaltabilirsiniz:

crontab -r

Örnek: Sesleri Çalın!

Zamanın geçtiğini size bildirmek için çalışırken her iki saatte bir hızlı bir hatırlatmaya mı ihtiyacınız var? En sevdiğiniz ses klibini hemen hemen her formatta (.wav, .mp4, herhangi bir şey) ve şurada kaydedilmişse (örneğin) yakalayın /home/myuser/myalert.wav otomatik olarak crontab işiyle mi oynandı:

0 * / 2 * * * aplay /home/myuser/myalert.wav

En sevdiğiniz şarkının her Cuma öğleden sonra saat 17: 00'de otomatik olarak çalmasıyla size haftanın işinden güzel bir uğurlama yapmaya ne dersiniz? En sevdiğiniz şarkı klibini alın ve kaydedilmişse söyleyin /home/myuser/friday_song.mp4 crontab işini eklersiniz:

0 17 * * 5 aplay /home/myuser/friday_song.mp4

Örnek: Rsync ile Dosyaları Yedekleme

Crontab'ın birçok mükemmel kullanımından biri, dosyalarınızı otomatik olarak uzak bir sunucuya yedekleme yeteneğidir. Bununla önemli verileri tekrar kaybetme riskinizi önemli ölçüde azaltın mükemmel rsync öğreticisi.

Örnek: Sitelerin Çevrimiçi olup olmadığını kontrol edin

Belki de çeşitli sitelerin çevrimiçi olup olmadığını her beş dakikada bir otomatik olarak kontrol etmek ve herhangi bir sorun olduğunda e-posta ile bilgilendirilmek istersiniz. İşte tam da bunu yapacak şık bir küçük PHP betiği.


php
// Aşağıdaki siteleri bilgilendirmek için e-posta adresi
$ email = '[email protected]';
// Kontrol edilecek URL'leri tanımlayın
$ urls = [< br /> ' https://apexpl.io',
'https://google.com',
'https://some-junk-site-that-will-hopefully-never-exist.com'
];
// URL'leri gözden geçirin
$ down = [];
foreach ($ url olarak $ url'ler) {
// URL'yi kontrol et
$ status = check_url ($ url);
eğer ($ durum! = 200) {
$ aşağı [] = $ url;
}
}
// Sitelerimiz varsa e-posta gönder
if (count ($ down)> 0) {
mail ($ e-posta, "Acil - Siteler Çalışmıyor!", "Botunuz aşağıdaki siteleri tespit etti şu anda kapalı:
". implode ("
", $ down));
}
// Çıkış
çıkış (0);
/ **
* URL'yi Kontrol Et < br /> * /
function check_url (string $ url): int
{
// cURL ile gönder
$ ch = curl_init ();
curl_setopt ($ ch, CURLOPT_URL, $ url);
curl_setopt ($ ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, doğru);
curl_setopt ($ ch, CURLOPT_FOLLOWLOCATION, true);
$ response = curl_exec ($ ch);
// Durumu al ve bağlantıyı kapat
$ status = curl_getinfo ($ ch, CURLINFO_HTTP_CODE);
curl_close ($ ch);
// Geri dön
return $ status;
}

Dosyanın en üstünde kontrol etmek için e-posta adresini ve istenen URL'leri değiştirip kaydedin gibi bir yerde /home/myuser/check_sites.php . Bu komut dosyasının her beş dakikada bir çalıştırılması ve çalışmayan siteler için sizi e-posta yoluyla bilgilendirmesi için crontab işini ekleyin:

  * / 5 * * * * / usr / bin / php /home/myuser/check_sites.php> / dev / null 2> & 1  

Hayatınızı Otomatikleştirin!

Bu makale ile siz umarım crontab'ın otomasyon gücünü ve sizin sisteminizdeki birçok sıradan ve tekrarlayan görevi otomatikleştirmek için nasıl kullanılabileceğini anlamış olacaksınız. hayat.

crontab'ın ne olduğunu, crontab dosyası hakkında, crontab işlerinin nasıl biçimlendirildiğini ve nasıl kullanılabileceğine dair bazı gerçek dünyadan örnekler öğrendiniz.

4 Görevlerinizi ve İş Akışlarınızı Kolaylaştıracak Linux Otomasyon Uygulamaları

Zamandan tasarruf etmek ve tekrarlayan görevlerden kaçınmak mı istiyorsunuz? Cevap otomasyondur! İşte deneyebileceğiniz bazı yararlı Linux masaüstü otomasyon uygulamaları.

İlgili Konular
  • Programlama
  • Linux
Hakkında Yazar
Matt Dizak (13 Makale Yayınlandı)
Matt Dizak'tan Daha Fazla

Abone Olun Bülten

Teknoloji ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için haber bültenimize katılın!

Bir Adım Daha…!

Lütfen e-posta adresinizi onaylayın az önce size gönderdiğimiz e-posta.

.