Ek cron değişkenleri. Linux Linux cron örnekleri üzerinde basit cron kurulum

Unix benzeri işletim sisteminde, kullanıcının programını belirtilen zamana yönetmek mümkündür. Bunun için, CRON Görev Zamanlayıcı, kullanıcılardan talimatlar alan ve elde edilen senaryolar için herhangi bir görevi gerçekleştiren kullanılmıştır. Müşterilerimiz bu fırsatı periyodik görevler yapmak için kullanabilirler.

ISPManager paneli 5'in cron araçlarını nasıl yapılandırır

CRON senaryolarını, bölümdeki kontrol panelinden yapılandırın Sistem → Planlayıcısı

Yeni görevler eklemek için "Oluşturmak". Cron-Script'in interaktif editörü açılacak:


Alanda "Takım" Komut dosyasının tam yolunu veya yürütülmesi gereken komutu belirtin (sistem komutları için, tam yolu belirtemezsiniz). Örneğin, script.pl dosyasının kök sitesine yerleştirilen tam yolu, şöyle görünecektir:

/Var/www/u12345/data/www/script.pl.

Çalıştırmak istediğiniz dosyanın, dosyanın sahibi için okunur + yürütme (R + X) olduğundan emin olun. Gerekli komutların haklarını değiştirin:

Chmod 750 script.pl

Alanda "Açıklama" Bu komut dosyasını gerçekleştiren unutmamak için bir not yapabilirsiniz.

Üs - dizideki listelenen seçeneklerden birini seçersiniz "Çalıştırmak": Her saat, günlük, haftalık, aylık, yıllık olarak, başlarken.

Uzman - Koşu periyodikliğinin esnek ayarı: dakikalar, saatler, aylar, aylar, haftanın günleri (0 - Pazar). Giriş formatı: * - tüm dakikalar; * / N - her N dakika; n - dakikaların başlangıcıyla N; A, b, c-e - dakikaların başlangıcıyla A, B, C, D, E

Temel fırlatma frekansı kurulum modunun örnekleri:



Çalışma periyoditesi kurulumunun uzman modunun örnekleri:

  • 05 dakikada bir saatte bir görev yapın

  • pazartesi günleri 1 saat 15 dakikada bir görev yapın

  • görevi 5 Nisan'da 0 saatte her yıl 1 dakikada gerçekleştirin

Tüm alanlar doldurulduğunda (alan hariç) "Açıklama", isteğe bağlıdır), tıklayın "TAMAM MI".

Komut dosyasının yürütülmesinde e-postaya rapor gönderme

Bildirimleri yapılandırmak için, komut dosyası yürütme bildirimlerinin geleceği için e-posta belirtin. Bunu yapmak için, bölüme gidin "Zamanlayıcı"


Düğmeye tıklayın "Ayarlar" ve alanda "E" Senaryoların yürütülmesi hakkında bildirimler göndermek istediğiniz e-postayı belirtin.


Komut dosyası ayarlarında, alanın önünde bir onay işareti bulunmadığından emin olun. "E-posta hakkında bir rapor göndermeyin".

CRON SSH tarafından nasıl yapılandırılır

Cron komut dosyalarını yapılandırmak Unix Shell üzerinden yapılır. Hangi programların başlatılması gerektiğini belirleyin ve tam yolunu sunucu diskinde bulabilirsiniz. Bunu yapmak için, programın başlatıldığı dizine CD komutundan geçin ve PWD komutuyla bu dizinin tam yolunu bulur. Yol böyle görünebilir - /home/u12345/scripts/script.pl.

Komut dosyasını çalıştırdığınız kullanıcı için dosyanın okuma izinleri + yürütme (R + X) olduğundan emin olun. Gerekli komutların haklarını değiştirin chmod 750 script.pl

750 - Dosyanın sahibinin tam hakları, Grup - okuma ve yürütme, gerisi yasaktır.

Komutu takip et crontab -e. - Zamanlayıcı, kullanıcının planını, adına kıçını kullandığınız adına değiştirecektir. İlk başladığınızda, bir metin editörü seçimi önerilecektir. Zaten tanıdığınız editörü seçin. Örnek olarak, bakacağız metin düzeltici vi. Komuta girdikten sonra, CRON için komut dosyasının metnini girebileceğiniz, VI metin editöründe (P) kendinizi bulacaksınız.

Kısa Referans Editör VI:

  • metin eklemek için I tuşuna basın, ardından metni girin.
  • karakterleri kaldırmak için ESC tuşuna basın ve ardından X yazın
  • değişiklikleri kaydetmeden VI'dan çıkmak için ESC tuşuna basın ve ardından yazın: q!
  • tasarruf etmek ve çıktı yapmak için, ESC tuşuna basın ve ardından: WQ

Cron için görevler satırda birer birer yazılmıştır. Her satırdan sonra, son veya sadece birinden sonra, enter tuşuna bastığınızdan emin olun, aksi takdirde görevler çalışmaz.

Görev bir dize gibi görünüyor. Başlangıçta, görevin periyodikliğini belirtmek için boşluklarla ayrılmış beş alan vardır. Sonrakinde çalışmak istediğiniz komutu takip eder:

field1 Field2 Field3 Field4 Field5 Takımı

İlk beş alanın değerleri:

  • dakika - 0 ile 59 arasında bir sayı
  • saat - 0 - 23 arasında bir sayı
  • ayın günü - 1 ila 31 arasında bir sayı
  • yılın ayı - 1 ila 12 arasındaki sayı
  • haftanın günü - 0 ile 7 arasında bir sayı (0-Sun, 1-Pzt, 2-W, 3-cf, 4-thu, 5-fr, \u200b\u200b6-sb, 7-su)

Her bir parametre için, virgül aracılığıyla birkaç değer ayarlayabilirsiniz. Örneğin, "Saat" alanında 1,4,22 yazacaksa, görev, sabah saat 1'de ve 22 saatte 1'de başlatılacaktır. Aralığı ayarlayabilirsiniz - 4-9, programın her saat 4 ila 9 saat arasında bir sürede başlatılması gerektiği anlamına gelir.

Sembol «*» "tüm olası değerler" anlamına gelir. Star «*» "Saat" alanında "her saat çalıştır" anlamına gelir. Sembol «/» Görevin ek periyodikliğini belirtmek için kullanılır. Örneğin, "* / 3" "Saat" alanında her üç saatte bir demektir. "Ayın günü" ve "haftanın günü" alanlarının tanımlandığı takdirde (eşit değil *), o zaman böyle bir görev, haftanın belirli bir gününde ayın gününden bağımsız olarak gerçekleştirilecektir.

13 13 10 * 5 /home/u12345/script.pl

böyle bir ekip, saat 13 dakikada 13 dakikada 13 dakikada ve ayın her 10. gününde, 10 numara cuma ile çakışmazsa bile yapılacaktır.

CRON, sistemi yüklerken komut dosyalarını çalıştırmanıza izin verir - Periyang derecesi yerine komut dosyasının başında @Reboot belirtin:

@Reboot /home/u12345/script.pl.

Bu en basit CRON komut dosyasıdır:

0 * / 3 * * 2.5 /home/u12345/script.pl

Script /home/u12345/script.pl, her üç saatte bir Salı günü ve Cuma günü otomatik olarak başlayacaktır. VI Düzenleyici'de böyle bir komut dosyasını girin, sonuçları çıkartın. Hatalara izin vermediyseniz, görev belirtilen periyodiklik ile gerçekleştirilecektir.

CRON, komut dosyasındaki hataları bildirdi:

/tmp/crontab.xxxxxxx: 1 satır, 9 Crontab Sembolleri: Yeni crontab'ı yükleme "/tmp/crontab.xxxxxxx": Bad dakika Crontab: Crontab dosyasındaki Errs, "t yüklenebilir mi? Aynı düzenlemeyi yeniden denemek ister misiniz?

Cron Cronab -L'de yüklü olan Cron Scripting listesini görüntüle:

Bash-2.05b $ Crontab -L 0 * / 3 * * 2.5 /home/u12345/script.pl

Günde bir kez bir program çalıştırmanız gerekiyorsa, gece zamanını seçin. 2 ila 8 gece arasında, sunuculardaki yük minimumdur. Program büyük kaynaklar gerektiriyorsa, geceleri günden daha hızlıdır.

Cron kullanmanın örnekleri

  • 0 dakikada saatte bir kez bir görev yapın - 0 * / 1 * * * /home/u12345/script.pl
  • 0 dakikada bir üç saatte bir görev yapın - 0 * / 3 * * * /home/u12345/script.pl
  • pazartesi günleri 1 saat 15 dakikada bir görev yapın - 15 1 * * 1 /home/u12345/script.pl
  • görevi 5 Nisan'da 0 saatte her yıl 1 dakikada gerçekleştirin - 1 0 5 4 * /home/u12345/script.pl
  • saat 10 dakikada aylık 1 sayı gerçekleştirin. - 10 6 1 * * /home/u12345/script.pl

PHP komut dosyası programında nasıl başlatılır

PHP-Cli tercüman kullanarak istenen frekansla PHP'deki komut dosyalarını başlatın. Komut dosyası komut dosyasını başlatmak için bir komut gibi görünmeyebilirsiniz. null 2\u003e & bir

Tüm PHP programları, önceden değişiklik yapmadan SAPI CLI üzerinden çalışamadığından, WGET ile çalıştırabilirsiniz:

Usr / bin / wget -o / dev / null -q http: //mysite.tld/cron.php? Eylem \u003d 123

Yardımcı programın yolunu, dosya sisteminin kökünden tamamen belirtin. Gereken işlev komut dosyasında kullanılıyorsa, göreceli yolların belirtildiği - komut dosyasının çalışmasının başlangıcında, geçerli çalışma dizinini görevlendirecek CHDIR () işlevi () işlevini kullanın. Veya dahili CD komutunu kullanın.

@Reboot CD / Home / U12345 && ./script.pl

Cron tarafından başlatılan programlardan hata mesajları nasıl alınır?

Periyodik olarak başlatılan görevlerin çalışmasını tam olarak kontrol etmek için programlar yürütürken hata mesajları alabilirsiniz. Bunu yapmak için, Cron-Script'in başında, bu satırı yerleştirin:

Mailto [email protected]."[email protected]" nereden haberdar olun, bildirimlerin geleceği bir e-posta adresidir. Birkaç adres belirtmek için, onları virgül aracılığıyla girin.

Cron'un görevi başlattığında, hangi komut dosyalarının görüntüleneceğini içeren bir e-posta alacaksınız. "Merhaba, Dünya" hattını yazdıracak bir komut dosyası yazarsanız ve CRON aracılığıyla yürütmeye koyarsanız, CRON'un böyle bir komut dosyasını yaptığında "Merhaba, Dünya" dizesinden bir mektup alacaksınız.

Komut dosyası tarafından görüntülenen metin gerekli değilse - CRON karakterleri\u003e / dev / null 2\u003e & 1 için string komut dosyasının sonuna ekleyin.

Cron için tamamen string şöyle görünecek:

0 1 * * / USR / BIN / PHP -Q $ Ana Sayfa / Script.php\u003e / dev / null 2\u003e & 1

Cron üzerinden yürütmek için ayarladığınız komut dosyaları sözdiziminin doğruluğunu kontrol edin. Scriptler, bir Web sunucusu ve Cron aracılığıyla ve benzeri aracılığıyla başlatıldığında bir hata ve iş eşsiz bir hata içerebilir. Başlamadan önce, komut dosyasını Unix Shell'deki komutla kontrol edin:

/ usr / bin / php -l script.php

Komut dosyasında hata yoksa, "Script.php'de sözdizimi hatası yok" mesajını göreceksiniz.

Kullanıcı adına komut dosyasını nasıl başlatabilirsiniz?

Güvenlik sistemini geliştirmek için, komut dosyası belirli bir kullanıcı adına çalışır. Kullanıcının komut dosyasını başlatma hakkına sahip olduğundan emin olun. Komut dosyasının ana kısmının önünde belirtin sU -L user_ adScript'i başlatmak istediğinizden.

Örneğin, TeamSpeak3 sunucusunu başlatmak için, aşağıdaki komut TS3Server kullanıcısı adına kullanılır:

Su -L ts3server ./ts3server_startscript.sh başlatmak

Komut dosyası, kullanıcının giriş dizininde otomatik olarak yetkilendirmeye düştüğümüzü bulunur.

Kısıtlamalar

Cron üzerinden geçen programlar için, UNIX Shell'deki kullanıcı tarafından işletilen süreçlere göre tüketilen kaynaklar üzerindeki kısıtlamalar. Konuşuyoruz Programın yürütülmesi zamanında kısıtlamalarda, mevcut hafızanın sayısı, dosya boyutu ve benzeri için sınırlamalar.

CRON, sunucudaki görevlerin yürütülmesini otomatikleştirmek için kullanılır. Linux'ta çalışır ve belirli bir süre için bir program veya komut dosyasını çalıştırmak için mükemmeldir ve belirli bir periyodite ile bu işlemi önceden planlamıştır.

Cron Görev Zamanlayıcı Kurma

Aşağıdaki görevler, dahil etme süresini ve çalışmanın gerekli olduğunu gösteren komutu belirtmek istediğiniz dizeler biçiminde yazılmıştır. Her iş için ayrı bir dize verilir. Örneğin:

30 3 * * 2 /OurDirectory/myScript.pl

Daha anlaşılabilir basit kullanıcı Buradaki dil belirtildi: dakikalar / saat / gün / gündüz / takım. Bu örnek 3: 30'da, her salı günü, Cron'un dosyayı YouDirectory / MyScript.pl adıyla çalıştırması gerektiği anlamına gelir.

Değerleri virgül aracılığıyla listeliyorsanız, örneğin, "gün" noktasında 2,4,6 yazın, dosya her Salı, Perşembe ve Cumartesi günü belirtilen saatte çalışacaktır.

Değerleri bir tire aracılığıyla belirlerseniz, görev belirtilen zaman aralığında yürütülecektir. Örneğin, "saat" öğesinde 3-7 ayarlarsanız, dosyayı sabah 3 ila 7 arasında başlayacaktır.

Ayrıca, örneğin saat / 12'de, zamanın sütununda yazarak sıklığı da belirleyebilirsiniz. Sonra görev 12 saatte bir yürütülecektir.

"*" Olduğunu bilmek önemlidir, değer eksikliği değil, tüm olası değerler anlamına gelir. Yani, * * * * 1 / yourdirectory/myScript.pl ayarlarsanız, dosyanın her pazartesi çalışmasını istemek, tamamen yanlış olacak ve dosya her dakika çalışacak.

Bir diğer önemli özellik, dosyanın mutlak yolunu belirlemenin ihtiyacıdır. Böyle bir erişim haklarına sahip olması gereken dosyanın yanı sıra, en azından başlayabilir.

Sunulan örneklerden, Linux'taki bu görev zamanlayıcının çok uygun bir araç olduğu açıktır, bu yüzden size bazı özellikleriyle daha fazla ayrıntı sunuyoruz.

Cron ile çalışma en kolay ve en yaygın yöntemi barındırma yönetimi panelidir. Bununla birlikte, cron konfigürasyonu farklı panellerde farklı gerçekleşir.

Bazen barındırma, yönetim panelinden Cron ile çalışma sağlamadığıdır. Böyle bir durumda, SSH protokolü kullanılır. Macun programını kullanarak sunucuya bağlanır ve komut satırında görevler tanıtılır.

İşe başlamak için komutu girin:

Crontab -e.

Daha sonra, VI - Metin Editörüne gireceksiniz, ancak bu editörler farklı barındırmadan farklı olabilir. VI'daki çalışmaları aşina değilseniz, komutu girebilirsiniz: Editor \u003d EE Crontab -e, sizi daha basit ve anlaşılır bir editöre yönlendirecektir.

Barındırma, açılan düzenleyiciyi desteklememesi durumunda, VI'nin çalışmalarıyla başa çıkmanız gerekecektir:

  • metni girmek için, "I" düğmesine basarak aynı moda gitmeniz gerekir;
  • moddan çıkmak için "ESC" düğmesini kullanın;
  • bir sembolü metin giriş modunda çıkarmak için, "ESC" tuşlarını ve ardından "x";
  • dosyadan Kaydet ve Çıktı ": WQ";
  • zorunlu olarak, her satırın sonundaki "Enter" tuşuna basın, CRON için gereklidir;
  • cron'daki mevcut görevleri zaten görüntülemek için, CRAFRAB-L komutunu girin.

Linux'ta Cron için görev örnekleri

- Görevi her 6 saatte bir her ayın her gününde bir 30 dakika boyunca yürütün:

30 * / 6 * * * /ourdirectory/myscript.pl

- Her yeniden başlatma işleminden sonra görevi yürütün:

@Reboot /yourdirectory/myscript.pl.

- Her ayın 15. gününün görevini 00 saat 00'da yapın:

0 0 15 * * /ourdirectory/myscript.pl

PHP dosyaları

PHP komut dosyalarını başlatmak için tercüman genellikle kullanılır. Evrensel Talimatlar İş yok, çünkü farklı hostingler çeşitli bir yazılım kullanıyor. Sonuç olarak, bu genellikle PHP'yi Cron'da çalıştırmak için yardım için başvurur. Aşağıdaki girişi girin:

1 2 * * 3 Kök Wget -O - -Q -T 1 http://mysite.com/file.php

Daha ayrıntılı olarak analiz edeceğiz:

  • "-O-" - Kaba ek dosyalar oluşturmaya, böylece işin konsolunda gerçekleştiğinden, sunucuyu aşırı çöpten ödeyemez;
  • "Q" - işlemler artık görüntülenmiyor;
  • "T-1" - İzin yalnızca bir tane bağlanma girişimi.

Cron kısıtlamaları

Cron'un kendisi sadece bir sınırı var - görevlerin yürütülmesi dönemi. Hostinginizin sunucusunu aşırı yüklerseniz, Cron'u birkaç dakikadan bir veya bir saatten daha sık koşmaya yasak olabilir. Ek olarak, CRON sadece sunucu kaynakları ile sınırlıdır: veri deposu, veri hacimleri, komuta yürütme süresi vb.

Sunucu yeniden başlatılırsa, CRON tüm görevlerinizi koruyacak, bununla yeniden başlatılacaktır.

Bildiri

Cron, çalışmaları hakkında bildirimler kurmak için bir konfigürasyona sahiptir. e-posta. Bu, çalışırken herhangi bir hata olursa özellikle yararlıdır. Böyle bildirimlerin postayla gönderilmesini sağlamak için, Crontab'daki çizgiyi girmeniz gerekir:

Mailto \u003d. [E-posta Korumalı]

Mailto \u003d gerekli postayı gösterir. Onları bir kerede bir zamanlar virgülle listelenebilir. Şimdi, bir hata aniden olursa, bu konuda bilgilendirileceksiniz. Bununla, komut dosyaları işlerinin sonuçları size gelecek. Ancak, bu özellik size müdahale ederse, görevin sonunda\u003e / dev / null 2\u003e & 1 komutunu girerek kapatılabilir.

(Zamanlanmış Görevler), bir programdaki komutların yürütülmesini veya kesinlikle atanmış bir zamanda yapılandırmak için kullanılır. Üzerinden Crontab. Belirli bir süre ve tam olarak şu anda belirttiğiniz komutu ayarlayabilirsiniz. Yapılandır Crontab. Görevin bir kez yürütülmesi böyle bir şekilde ay, gün, saat ve boş Veya örneğin, her 10 dakikada bir. Ayrıca birleştirebilirsiniz, örneğin, görevi saatte bir kez gerçekleştirmek için ilk 2 saate ihtiyacınız var, ardından sonraki 2 saat gerçekleştirmez.

Ayrıca tesislerden biri, görevlerin uygulanmasının sonuçlarını e-postaya gönderme yeteneğidir. Bunu yapmak için, uygun yazıyı tıklayın ve e-postayı girin.

Görevlerin ustası

İlk tanıdık S. Cron. Bizim için açılış ile başlar Usta usta. Bir sihirbazın yardımı ile, komut dosyalarının yürütülmesi zamanını ciddi bir uygulama bilgisi olmadan yapılandırabilir, sadece açılır listelerden belirli bir kombinasyon seçebilirsiniz. Ayrıca, komut dosyasına giden yolu veya gerçekleştirilecek komuta girmelisiniz. Cron..

Dilde yazılmış komut dosyasının lansmanının örneğini görelim. Perlkoşmak gerekiyor her 5 dakikada bir.

Ana pencerenin altında düğmeye bastıktan sonra Cron. İlk konfigürasyonunuzla yeni bir giriş görünecektir. Bu tür kayıtların sayısı sınırlı değildir.

Şimdi yapabileceğimiz ilk görevimiz var. etkinleştirme/kapat, değişiklik veya silmek Sağ tarafta bulunan düğmeleri kullanarak, görevlerin her birinin karşısındaki:

Görevi etkinleştirme / devre dışı bırakma;
- Görevi değiştirin;
- Görevi sil.

Manuel Crontab Yapılandırması.

Ayrıca bölümde, komut dosyasının başlangıç \u200b\u200bzamanını her zamanki biçiminde yapılandırmanıza izin veren bir manuel ayar vardır. Cron..

Zaman aralığı

Dakikalardan olabilir 0 önce 59
Saat olabilir 0 önce 23
Ayın günü 1 önce 31
Ay olabilir 1 önce 12
Haftanın günü 0 önce 7 Nerede 0 ve 7 - Pazar

Yapılandırabilirsin Crontab. Görevleri sadece belirli bir yerde değil
zaman ama aynı zamanda boş, saatlik, günlük, haftalık veya aylık,
Bir kombinasyon kullanarak * / X.

Örnek

* / 5 * * * * - Her beş dakikada bir komutu çalıştırın
0 * / 3 * * * - Her üç saatte bir koşu
0 12-16 * * * - Her saat 12'den 16'ya kadar komutu çalıştırın (12, 13, 14, 15 ve 16)
0 12,16,18 * * * - 12, 16 ve 18 saatte her saat komutu çalıştırın

*/1 * * * * / usr / bin / php ~ / site.ru / public_html / test.php - PHP Script Test.php'in her dakikasını çalıştırın
0 */1 * * * USR / bin / perl ~ / site.ru / public_html / test.pl - Test.pl Perl Script'in her saatinde koşmak

Takım

Ev dizininden komut dosyasına giden yolu ayarlamanız gerekir.
Örneğin: public_html / cgi-bin / script.pl
Sistemin kendisi sembolü değiştirecek ~/ (Bu kombinasyonun tam yolunu değiştirir)
Görünüyor: ~ / Public_html / CGI-Bin / Script.pl
Yolun sonunda bir sembol koyunsa & (Ampersand), komut dosyası arka planda çalışacaktır.
Bu sembolü kurmak isteğe bağlıdır.

İçindeki işlemlerde kontrol sağlayan faydalı mekanizma linux Görev Zamanlayıcı mı cron., dosya crontab. Bu dosyayı kullanarak vb dizininde, komut dosyaları, bir çalışma sistemi için yazabileceğimiz görevler, örneğin işleri kontrol etmek için eklenir. linux E-posta Sistemleri

Cron. - Demon servisi kullanılır linux / Unix Görev zamanlayıcı olarak sistemler. İblis, periyodik olarak komut dosyalarını yürütmek için çalıştırılmasını sağlar.

Oluşturulan dosyalar yerleştirilir veya dizin:
USR / Makara / Cron / Crontabs veya / var / Makara / Cron / Sekmeler
Onları yalnızca Crontab -E'nin yürütülmesiyle düzenlemeniz gerekir.
Yürütme süresine bağlı olarak, dosyalar dizine yerleştirilebilir:
/etc/cron.daily.
/etc/cron.weekly
/etc/cron.monthly

Cron görevleri oluşturma
Görev oluşturma B. crontab. Gerekli altı alanı doldurmuş gibi görünüyor, değerleri aşağıdakilerdir:
1. dakika - 0-59 arasında rakam
2. Saatler - 0-23 arası rakam
3. Ayın günü - 1-31'den basamak
4. Yıllık ay sayısı - 1-12 arası rakam
5. Haftanın günü - 0-7 arasındaki rakam
0 Pazar, 1-Pazartesi, 2-Salı, 3-Çarşamba, 4-Perşembe, 5-Cuma, 6-Cumartesi
Yukarıdaki parametrenin her biri için değerler ayarlanabilir:
a) virgülle - 3,7,9 (sırasıyla 3,7,9 ayın ayında)
b) tire ile - 3-9 (bir saatte bir saat 3,4,5,6,7,8,9) yürütülmesi anlamına gelir.
c) * - tüm olası değerlerde gerçekleştirilecektir
d) / - Dakika alanında * / 8 ek süre - * / 8, her sekizinci dakikada gerçekleştirilecektir.

Görevi nasıl başlatılır cron. Sistemi yüklerken. Sistemi yüklerken komut dosyasını başlatmak için Linux KULLANILDI Anahtar Kelime Yeniden Başlat. Örneğin:

Ek olarak, bir sonraki anahtar kelimeleri kullanabilirsiniz:
@Yearly - 0 0 1 1 * (yılda bir kez) ile aynı
@Daily - 0 0 * * * (günde bir kez) ile aynı
@hourly - 0 * * * * ile aynı (saatte bir kez)

Crontab komutları
- Cari hesap için görevleri görüntüleyin
crontab -l.
- İstediğiniz hesap için işleri görüntüleyin
crontab -u username -L
- Cron görevlerini düzenleme
crontab -e.
- Belirtilen bir kullanıcının cron görevlerini düzenleme
crontab -u username -e

Cron görevlerinin örnekleri:
Her gün sabah 7'de görevi gerçekleştirin
0 7 * * * kök /home/scripts/mount.sh
Görevi her gün 17: 30'da gerçekleştirin
30 17 * * * kök /home/scripts/mount.sh
İlk numaranın her ayını 0 saat 0 dakikada gerçekleştirin
0 1 * * kök /home/scripts/mount.sh
Her 4 saatte bir görevi gerçekleştirin
* * / 4 * * * kök /home/scripts/mount.sh
Yüklenirken iş gerçekleştirin Linux
@Reboot root /home/scripts/mount.sh.

Ek yapılandırma cron.
Görev raporu almak için cron. Posta değişkenini başlangıçta tanımlayabilirsiniz. cron. Senaryo
Mail \u003d mail.mail.local
Varsayılan olarak, harf, betiğin yanında görüntülenen tüm mesajları sunulacak, böylece bu olmayacak şekilde, Görev Cron Script\u003e / dev / null 2\u003e & 1 eklemeniz gerekir.
Cron mesajlarının alındığını devre dışı bırakmak için, posta değişkenini yüklenmemiş bırakmanız gerekir.
Posta \u003d ""
Örneğin, yol değişkenini kullanarak dosyanın yolunu komut dosyası ile belirlemek mümkündür.
Yolu \u003d / bin: / sbin: / usr / bin: / usr / sbin: / Ana Sayfa / Komut Dosyaları, Crontab'da SET parametre dizgisinde yazmanıza izin verecektir.
@Reboot kök mount.sh.
PHP tercüman kullanarak Cron üzerinden sriptleri başlatma
* 1 * * * / usr / local / bin / php - q mount.sh\u003e / dev / null 2\u003e & 1
USR / Yerel / Bin / Wet -O / Dev / Null -Q http: // "site.com/cron.php?action\u003d123"

Sistem yöneticileri ve sıradan kullanıcılar genellikle çeşitli bakım görevlerini otomatikleştirmek ve komut dosyalarını kullanarak Linux ile çalışmak zorundadır. Çok uygun, sadece senaryoyu çalıştırdın ve müdahaleleriniz olmadan ihtiyacınız olan her şeyi yapar. Bir sonraki adım bu şekilde, istediğiniz komut dosyasını doğru zamanda otomatik olarak başlatmayı yapılandırmaktır.

Bu görevler için bir Cron sistem hizmeti kullanarak Linux'teki görevler içindir. Bu, saatte bir kez, bir haftada bir kez, bir haftada bir kez, bir kez, herhangi bir zamanda veya herhangi bir aralık sayesinde ihtiyacınız olan komut dosyalarını yapmanızı sağlayan bir zamanlayıcıdır. Program genellikle diğer hizmetler tarafından bile kullanılır. işletim sistemi. Bu yazıda, Cron'un nasıl yapılandırıldığına bakacağız ve ana sık kullanılan örnekleri analiz edeceğiz.

Aslında, Cron, diğer Linux hizmetleri gibi bir hizmettir, sistemin başlangıcında başlar ve arka planda çalışır. Ana görevi, gerekli işlemleri doğru zamanda gerçekleştirmek için. Neyin ve ne zaman gerçekleştirileceği hakkında bilgi aldığı çeşitli yapılandırma dosyaları vardır. Servis, gerekli tüm verileri gösteren / etc / crontab dosyasını açar. Genellikle, modern dağılımlarda, aşağıdaki klasörlerden istenen komut dosyalarını başlatan, çalışma parçaları yardımcı programının lansmanı vardır:

  • /etc/cron.minuty - her dakika;
  • /etc/cron.hourly - her saat;
  • /etc/cron.daily. - her gün;
  • /etc/cron.weekly - her hafta;
  • /etc/cron.monthly - her ay.

Bu klasörler, belirtilen aralıkla gerçekleştirilmesi gereken komut dosyaları olmalıdır. Komut dosyaları yürütme haklarına sahip olmalı ve isimleri puan içermemelidir. Yeni kullanıcılar için zamanlayıcı ile çalışmayı büyük ölçüde kolaylaştırır. Ayrıca Crontab dosyasında, ANACRON komutu, CRON'un yanı sıra, yalnızca uzun bir süre içinde bir kez gerçekleştirilecek görevlerin, örneğin, günde bir kez, hafta, ay, yılın bir kez yapılması için tasarlanmıştır.

Bilgisayar her zaman çalışmaz ve zaman zaman kapanmasa bile, onları gerçekleştirmelerini sağlar. Görevin ayar tarihi, / var / biriktirme / anacron dosyasına yazılan en son zamandır ve ardından Anacron'u bir sonraki başlattığınızda, istenen işlemin doğru zamanda başlatılıp başlatılmadığını kontrol eder ve sonra başlarsa, başlar. . Cron servisinin kendisi gün boyunca veya tam olarak boyanmış zaman ve tarih ile görevleri yapmak için daha tasarlanmıştır.

Cron Yapılandırma

Görevi gerçekleştirmeniz gerektiğinde saati, tarihleri \u200b\u200bve aralıkları ayarlamak için, özel CRON dosyası sözdizimi ve özel bir komut kullanılır. Tabii ki, / etc / crontab dosyasını her zaman düzenleyebilirsiniz, ancak bu önerilmez. Bunun yerine, bir Crontab komutu var:

Her zaman seçenek ile yürütülmesi tavsiye edilir -, ardından metin editörünüz kuralları düzenlemek için kullanılacaktır. Komut, tüm mevcut CRON kurallarının zaten sunulduğu ve yenilerini ekleyebilmeniz için geçici dosyayı açar. Cron dosyasını tamamladıktan sonra, dosya işlenecek ve tüm kurallar, / var / makara / cron / cronabs / kullanıcı adına eklenecek ve eklediğiniz kullanıcıdan eklenen işlemler başlatılacaktır.

Bu nedenle, burada temiz olması gerekir ve komut dosyalarını kökten çalıştırmanız gerekirse, Crontab, kullanıcıdan değil, kökten yapılması gerekir. Genellikle neden olur.

Sözdizimi Crontab.

Dediğim gibi, zaman özel sözdizimi ile belirtilir, aynı cron görevinin yapılandırmasının sözdizimine bakalım:

dakika Saat Günü Ay Day_Nedeli / yol / / çalıştırılabilir / dosya

Komuta tam bir yol yazmanın gerekli olduğu söylenmelidir, çünkü CRON adına çalışan komutlar için, yol değişkeni farklı olacaktır ve hizmet ekibinizi bulamayacaktır. Bu, Cron ile ilgili en sık görülen problemlerin ikinci nedenidir. Tarih ve saat, "*" rakam veya sembolü kullanılarak belirtilir. Bu sembol, ilk alanda - sonra her dakika vb. Her zaman gerçekleştirmeniz gerektiği anlamına gelir. Şimdi, örneklere dönüyoruz.

Cron Ayarları Örnekleri

İlk önce Superuser için Cron görevlerini görebilirsiniz, bunun için -L seçeneğini kullanabilirsiniz:

Mevcut tüm komut görevlerini silebilirsiniz -R:

Superuser adına koşmamız gerektiğini varsayalım, / usr / Yerel / Bin / Cevaplar. Bazı servis komut dosyası. En kolay örnek, her dakika çalıştırmaktır:

* * * * / USR / Yerel / Bin / Hizmet

0 * * * * / USR / Yerel / Bin / Hizmet

Her gün sıfır saatin sıfır dakikasında koşun, 12 gecede:

0 * * * / USR / Yerel / Bin / Hizmet

0 0 1 * * / USR / Yerel / Bin / Hizmet

Herhangi bir gün, örneğin 15.:

0 15 * * / USR / Yerel / Bin / Hizmet

Yılın ilk ayının ilk gününün ilk gününde 0 saat 0 dakika:

0 0 * 1 0 / USR / Yerel / Bin / Hizmet

Veya her ayın haftasının sıfır gününde:

0 0 * * 0 / USR / Yerel / Bin / Hizmet

Haftanın herhangi birini, saatini ve günü, örneğin, Salı günü 15.30'ı seçebilirsiniz:

30 15 * * 2 / USR / Yerel / Bin / Hizmet

Pazartesi ilk gün olarak kabul edilir, Pazar günü yedinci veya sıfır gündür. Haftanın gününün kısaltılmış ismini, örneğin güneş - Pazar günü yazabilirsiniz:

30 15 * * Güneş / USR / Yerel / Bin / Hizmet

Belli bir aralık belirlemek için, "-" sembolünü, örneğin, her saat, sabahları yediden akşamları yedi olarak kullanmanız gerekir:

0 7-19 * * * / USR / Yerel / Bin / Hizmet

Komutu birkaç kez başlatmak istiyorsanız, ayırıcıyı kullanabilirsiniz ",". Örneğin, her gün 5 ve 35 dakika sonra (16:05 ve 16:35) bir komut dosyası başlatın:

5,35 16 * * * / USR / Yerel / Bin / Hizmet

Ayrı bir süre belirlemek istemeyebilirsiniz, ancak yalnızca komut dosyasını çalıştırmanız gereken aralığı, örneğin her 10 dakikada bir bir kez belirtin. Bunu yapmak için, ayırıcı eğik çizgiyi kullanın - "/":

* / 10 * * * * / USR / Yerel / Bin / Hizmet

Ek olarak, bazı sık kullanılan setler için değişkenler icat edildi, burada bunlar:

  • @Reboot. - Yüklendiğinde, sadece bir kez;
  • @yearly (@yearly) - yılda bir kez;
  • @Aylık. - ayda bir;
  • @haftalık - haftada bir;
  • @Daily, @midnight - her gün;
  • @saatlik. - her saat.

Örneğin, saatte bir kez bir komut dosyası başlangıç \u200b\u200bkomutu gibi görünecektir:

@Hourly / USR / Yerel / Bin / Hizmet

Klasörlerden birine bir komut dosyası eklemek için toplanırsanız, daha önce de söylemiştim, isminin puansız olması gerektiğini ve yürütme hakları olması gerektiğini söyledim:

sudo vi /etc/corn.daily/bascuup.

Komut dosyası bu şekilde gibi görünmelidir. Artık Cron'un nasıl yapılandırılacağını biliyorsunuz, her şeyin nasıl çalıştığını kontrol etmek için kalır.

Hata ayıklama

Kuralları yapılandırdıktan sonra, çalışıp çalışmadığını kontrol etmek istiyorum. Bunu yapmak için, komut dosyasının zaten tamamlanması ve Cron günlüğünü izlediği zamanı bekliyoruz. Bazen / var / log / cron bulunur ve bazen syslog'a yazar. Örneğin, croneb'de böyle bir dize var:

Her gün 19.40'da yapılmalı, şimdi günlüğe bakıyoruz:

gREP CRON / VAR / LOG / SYSLOG

Ve bu gerçekten günlüğümüzde gerçekten başarılı bir şekilde yapıldığını görüyoruz. Herhangi bir hata olsaydı, mesaj derhal görüntülenir.

Özel klasörlerden birinde olan komut dosyasını kontrol etmeniz gerekirse, daha kolay, daha kolay, sadece çalıştırmayı istediğiniz seçeneğe veya hatta komut dosyasının kendisinden geçerek çalıştırın:

sudo run-yolları /etc/cron.daily/

sonuç

Bu yazıda, CRON'u uygun otomatik görevler için nasıl yapılandırılacağını düşündük. Umarım bu bilgi sizin için kullanışlıdır.