Cron Job'a hakim olma ve Temel Sunucu Görevlerini Otomatikleştirme

Yazan makale:
  • Özel Makaleler
  • Güncelleme: Eylül 06, 2017

Web barındırma kolay, anlaşılır ve hareket halindeyken profesyoneller için mükemmel olacak şekilde tasarlanmıştır. hosting sunucularını yönetme ve ilişkili görevler.

Bu amaçla, neredeyse Unix veya Linux tabanlı her sunucu, “cron Job”Veya“ Crontab. ”

Bu yazılım yardımcı programı Microsoft Windows'daki görev zamanlayıcıya çok benziyor, belirli zamanlarda belirli şeyleri yapması ve kullanıcının bu görevleri el ile yapmasını sağlaması söylenebilir. Bu özellikle rutin sunucu bakım, yedekleme ve iletişim prosedürlerinin tamamlanmasının saatlerce süreceğini düşünürse özellikle önemlidir. Çoğu insan, ofisteki bir günden sonra eve gitmek ve akşamlarını dosyaları yedeklemek ve kişileri yönetmek için harcamak yerine rahatlamak istemektedir.

Her insanın günlük, haftalık veya aylık olarak planlanabilmesi nedeniyle bu insanlar şanslıdır, hatta bazı durumlarda daha da ayrı olabilir ve Crontab hizmet programı dahilindeki sunucuya görevin nasıl yerine getirileceğine dair özel talimatlar verilebilir. , ne zaman tamamlandığını bilmek ve eldeki iş gerçekten bittiğinde ne yapılması gerektiğini.

Kullanıcılar, sunucularının tüm ağır kaldırma işlemlerini saatlerce gerçekleştirirken rahatlayabilirler; ya da sadece kendi ofislerinde çalışmakta zorlanırken işin tamamlanmasını planlayabilirler. Otomatik olduğundan, günün her saatinde bir Cron işi gerçekleşebilir.

Bir Cron İşin Formatını Kullanarak Zaman Anlatmayı Öğrenme

Bir Cron işi tam anlamıyla kolay bir şey değildir; Aslında, standart olarak en gelişmiş yapılandırmalardan biri olarak kabul edilir. Linux or Unix Web sunucusu. Bu kısmen, bu işleri programlamak için kullanılan dil çok arkaik ve bazı durumlarda tamamen geriye doğru olduğu için. Söz konusu Cron işine veya Cron sekmesine belirli bir zaman söylemek söz konusu olduğunda, işler kesinlikle geriye, baş aşağı ve biraz kafa karıştırıcıdır.

Bir Cron işi aracılığıyla zaman bildirme biçimi şöyledir:

DAKİKA SAAT GÜNÜ-AYLIK AYLIK GÜNLERİ HAFTASI

Hepsi bir satır, hatta bir sayıdaki kasılma, tek tip bir daralma içerisinde yan yana. Çoğu geliştiriciyi ve sunucu operatörünü zayıflatmak ve aslında verimli bir Cron işi geliştirmek için takılana kadar birçoğu yapmak yeterlidir.

Cron işinin zamanının her yönünün sayısal olduğunu not etmek önemlidir; Ayın adı, gün adı ya da bir görevin yerine getirilmesi gereken zamanın gelişiminde kullanılan diğer kelimeler yoktur.

Bu nedenle, bir Cron işinin zamanının kesin sayılara dönüştürüldüğü zamanın nasıl göründüğüne dair bir fikir edinmek için Temmuz 10th'da 30 için bir Cron işi ayarlayalım.

30 10 07 07 *

Yukarıdaki örnekte, işin yedinci ayın yedinci gününde onuncu saatin 30. Dakikasında tamamlanması gerektiği belirtilmektedir. Tüm sayılar ay veya gün yalnızca bir rakam olsa bile, iki rakam uzunluğundadır. Bu, tek bir hane sık sık Cron işinin geçersiz olmasına neden olacak ve basitçe asla gerçekleştirilmeyeceğinden, hatırlamak önemlidir. Con yapısının sonunda, yıldız işareti, işin haftanın herhangi bir gününde yapılması gerektiğini gösterir. Bu önemlidir, çünkü Çarşamba günü 03 olarak ayarlamak, görevin yalnızca Salı günü olsaydı, yalnızca Temmuz 7. Bu, her yedi veya sekiz yılda bir gerçekleşmesi muhtemeldir; bu, çoğu geliştiricinin göz önünde bulundurması için biraz emicidir.

Bir Cron işi oluştururken yapılması gereken bir diğer önemli nokta, saat formatının 24-saatlik sivil zamandan ziyade 12-saat askeri saat olmasıdır. Cron işinin saatini 10 pm olarak değiştirmek için, saat geçerli 22 yerine 10 olarak değiştirilir.

Cron İş Örnekleri

Son olarak, bir kullanıcı yalnızca bir görevi günlük, aylık veya hatta yıllık olarak tamamlamak istiyorsa, belirli bir süreyi tamamen ayarlama sürecini atlayabilir. Bunun yerine, Cron iş süreci, bu sık aralıklarla bir işin ne zaman yapıldığını belirleyen değişkenlerin kullanılmasını sağlar. Bunlar şunları içerir:

  • @günlük
  • @aylık
  • @yıllık

Saat ve dakikalar kullanılarak zaman kesinlikle kontrol edilemediği ve belirlenemediği için, bu işler sunucunun iç saatine göre, istenen aralıkta tam olarak gece yarısında gerçekleşecek. Bu, aylık aralığın her ayın ilk günü tam olarak gece yarısında gerçekleşeceği anlamına gelir. Yılbaşı aralığı her yılın ilk günü tam olarak gece yarısında gerçekleşecek; ve @ günlük aralık yılın her günü tam olarak gece yarısında gerçekleşecektir.

Bu, belirli bir tarih, saat ve haftanın gününü ayarlamaktan çok daha kolaydır, ancak ayın veya yılın ilk günü gece yarısı gerçekleştirilmek üzere belirli görevlerin belirli müşteriler için bazı dezavantajları olabilir. Tam olarak gece yarısında gerçekleşen görevleri zamanlarken hem yöneticilerin hem de site ziyaretçilerinin ihtiyaçlarını göz önünde bulundurun.

“COMMAND” Değişkenini Kavramak ve Bununla Ne Yapmalı?

Yukarıdaki örnekte görülebileceği gibi, gerçek bir Cron işi oluşturmak nispeten kolaydır. Tarih önce tanımlanmalı ve daha sonra Cron işinin işlevi hemen sonra tanımlanmalıdır. Bu işlev, bir PHP betiği çalıştırmak veya sunucunun dosyalarını ve verilerini uzak veya yerel bir dosyada depolayan özelleştirilmiş bir yedekleme komut dosyası çalıştırmak da dahil olmak üzere her şey olabilir. Açıklama için, daha önce kullanılmış olan örnek üzerine çalışacağız ve Cron işine Temmuz 7. Bu PHP betiğine "backup.php" adı verilir ve PHP dosyasının, sunucu tarafından yapılması istendiğinde site dosyalarını ayın yedisinde toplayan, sıkıştıran ve depolayan tam bir yedekleme betiği olduğunu varsayacağız. İşte böyle görünüyor:

30 10 07 07 * http://your-domain-name.com/backup-scripts/backup.php

Bu Cron işi, sunucunun Cron sekmeleri listesine girildiğinde, otomatik olarak 10: 30'te her Temmuz ayının her Temmuz 7'inde çalıştırılır. “Backup-script” dizininde bulunan PHP yedekleme betiğini çalıştıracaktır ve Cron iş kurulumunun gerçek dehasının çalıştığı yer burasıdır.

Kullanıcılarının site yedeklemeleri ve önbellek basmaları gibi şeyleri gerçekleştirmeleri için gelişmiş komutlar yerine, kullanıcılara belirli bir zamanda veya belirli bir tarihte varolan komut dosyalarını belirli bir zamanda yürütme olanağı verir. Bu, kullanıcının zaten bildiği şeylerin ötesinde gelişmiş bir programlama bilgisine gerek olmadığı anlamına gelir. PHP, daha sofistike bir kullanıcının Linux sunucusu için geliştirebileceği çok daha gelişmiş dosyalar ve programlama dilleri gibi, yedekleme sitesi dosyalarına mükemmel bir şekilde sahiptir.

Bu basit kurulum, hemen hemen her şeyi yapmak için kullanılabilir, önceden yazılmış bir betik, kullanıcı girişinden bağımsız olarak bu eylemlerin yürütülmesini sağladığı sürece. Bu, bir Cron sekmesinde Cron sekmesi tarafından yürütülen herhangi bir komut dosyasının tam otomatik olması ve kendi başına gerçekleştirilebilmesi anlamına gelir. Örneğin, Cron işine her gün aynı anda bir WordPress indeksi veya tema dosyası yürütmesini söylemek imkansızdır (ve sadece mantıksız). Cron işi kesinlikle dosyayı yürütürken, hiçbir şey yapmaz ve kullanıcı girdisi başka bir şekilde sağlanana kadar durağan olarak durur.

Bu nedenle, yedekleme komut dosyaları veya başkalarının Cron işleriyle çalışacak şekilde kodlanması veya indirilmesi durumunda, işlevlerini başarılı bir şekilde gerçekleştirmek için tam olarak sıfır kullanıcı girdisine gereksinim duyduklarından emin olun. Otomatik görev zamanlayıcısı, yürütmekte olduğu dosya içindeki otomatik bir işlemle eşleştirilmelidir. Bu kuralın istisnası yoktur.

Tipik bir Sunucuda Genel Cron Sekmesi Dosyasına Mastering

Yürütme için belirtilen her belirli Cron işi, Cron sekmesi olarak bilinen daha büyük bir dosya içinde yer alır. Bazı sunucuların birden çok uygulama türü ve otomatik giriş için birden fazla Cron sekmesi vardır, ancak bu durum, en gelişmiş sunucu operatörleri ve sahipleri için nadir ve büyük ölçüde ayrılmıştır. Sadece bir Cron sekme dosyasına sahip olanlar, dosyayı içermek üzere listelenen özel otomatik görevlerinin her biri ile birlikte dosyayı düzenlemek, silmek veya görüntülemek için aşağıdaki komutları kullanabilirler.

crontab -r

Bu komut tüm Cron sekme dosyasının kendisini kaldırır (böylece “r”) veya siler. Bu, onu tüm komutlardan ve otomatik komut dosyalarından etkili bir şekilde temizler ve yeniden oluşturulabilecek boş bir dosyaya geri yükler. Bu, dosyayı bozmayı ya da bir şekilde uygunsuz görevleri ve zamanları yönetmeyi başaranlar için uygun bir seçenektir. Bazen baştan başlamak çok daha kolay.

crontab -e

Bu durumda, “e”, “düzenle” anlamına gelir. Dosyayı silmek yerine bir Cron sekmesinde açıklanan işlevleri düzenlemek isteyen kullanıcılar, bu komutun komut satırı editörüne götürülmesini sağlar. Yeni görevler ekleyin, eskileri kaldırın veya Cron sekmesi belgesinde listelenen Cron işlerinin her biri için geçerli zamanlama zamanlarını değiştirin.

crontab -l

Bu durumda, “L” yi “bakışla ilişkilendirerek” hatırlamak yeterince kolaydır. Bu komut, bir sunucu yöneticisinin, Cron sekme dosyalarının tüm içeriğini sunucudan tamamen kaldırmadan ve içeriği düzenleme yeteneği olmadan kolayca görüntülemesini sağlar. Cron sekmesi içeriğinin salt okunur görüntüsü, hangi görevlerin hangi zamanlar için planlandığını hatırlamak ve dosyanın bütünlüğünü doğrulamak için mükemmeldir.

Cron İşinde Bir Cron Sekmesi Otomasyon Dosyalarında Ustalaşmak Neden Önemli?

Genel olarak, bir sunucu hakkında otomatikleştirilen tek şey, sabit diskinin eğrilmesi ve donanım özelliklerinin performansının olmasıdır. Bunun ötesinde, sunucu, sadece bir yazılım kontrol panelinin görüntülenmesi veya bir kullanıcının sabit diske yerleştirdiği PHP veya Perl kurulumunu yükseltmenin ötesinde ve ötesinde olan rutin ve olağanüstü görevleri yerine getirmesi için eğitimli ve eğitimli olmalıdır.

Bir sunucunun düzenli olarak uygulayabileceği en önemli işlevlerden birinin, verilerin ve ayarların yedeklendiği bir site oluşturulması olduğunu hatırlamak önemlidir. Bu süreci bir Cron işi olmadan otomatik hale getirmenin neredeyse hiçbir yolu yoktur ve internetin doğası ve günlük olarak bir siteden geçen tüm kötü amaçlı ziyaretçiler nedeniyle, bu işlemin günlük veya haftalık olarak otomatikleştirilmemesi önemli sonuçlara yol açabilir. ve yıkıcı veri kaybı.

Bununla birlikte, bunun ötesinde, Cron iş süreci kullanılarak otomatikleştirilmesi gereken bir takım görevler vardır. Bu görevler arasında, eski görüntüleri veya basılı içeriği site ziyaretçilerine gösterebilecek tüm site önbelleklerini temizleme; eski dosyaları silmeyi, eski dizinleri ve görüntüleri temizlemeyi ve bir sunucunun sabit disk sürücüsünde depolanan her şeyin güncel ve bozulmamış olduğundan emin olmayı da içerir.

Sağlıklı bir kişisel bilgisayar otomatik olarak disk bakımını, antivirüs ve kötü amaçlı yazılım taramalarını, yazılım güncellemelerini ve dosya silme işlemlerini zamanladığından, sağlıklı bir sunucunun kendisinin özen göstermesi ve iyi durumda kalması için yapılandırılması gerekir. Aksi takdirde, kayıplara, reklamlara, içerik oluşturmaya ve hatta arama motoru sıralamasının durumuna yol açacak kazalara, hack girişimlerine ve veri kaybına karşı savunmasız hale gelir.

Öğrenmesi Kolay ve Dağıtımı Kolay

Standart bir Cron sekmesinde bir Cron işi oluşturmak, bir sunucu yöneticisinin yapabileceği en kolay şeylerden biridir.

Süreç standart komut satırında yer alır ve her zaman dilimini iki basamaklı bir koda ayırır.

Görevleri otomatikleştirmek için herhangi bir yeni programlama dili hakkında ek bilgi gerektirmediğinden, hizmet, bir yöneticinin zaten sahip olduğu mevcut programlama ve sunucu işlemleri bilgisine dayanır. Bu durumda, temel sunucu işlevlerini otomatikleştirmeye ve site verilerinin ve işlemlerin bütünlüğünü sağlamaya başlamamak için bir neden yoktur.

Jerry Low hakkında

WebHostingSecretRevealed.net (WHSR) 'nin kurucusu - 100,000 kullanıcıları tarafından güvenilen ve kullanılan bir hosting incelemesi. 15'in üzerinde web barındırma, bağlı kuruluş pazarlaması ve SEO konusunda yılların tecrübesi. ProBlogger.net, Business.com, SocialMediaToday.com ve daha fazlasına katkıda bulundu.