Uzantı noscript. NoScript uzantısı Chrome için kullanılabilir hale geldi. Hangi tarayıcılarla çalışır

cron- içinde görevleri gerçekleştirmek için tasarlanmış bir arka plan programı programı kesin zaman veya düzenli aralıklarla. İşleri düzenlemek için crontab yardımcı programı kullanılır.

Liste

Program dosyasını basitçe açarak değiştiremezsiniz. Metin düzeltici... Düzenlemek için crontab -e komutunu kullanmanız gerekir.

Bir zamanlama dosyasına basit bir örnek. Her saat bir ekran görüntüsü alma:

SHELL = / bin / bash MAILTO = kullanıcı adı 0 * * * * scrot

temel ayarlar

Yürütülebilir görevler için bir ortam seçme:

KABUK = / bin / bash

Görevin tamamlanmasıyla ilgili mesajın gönderileceği kullanıcının adı:

MAILTO = kullanıcı adı

Ad yerine bir e-posta adresi de kullanabilirsiniz:

POSTA [e-posta korumalı]örnek.org

İsteğe bağlı ayarlar

Kullanıcının dizinini belirledik:

ANA SAYFA =

Yürütülebilir dosyaların dizinlerini belirledik:

YOL = / sbin: / bin: / usr / sbin: / usr / bin

Tepede başlatılan komut dosyasının grafik kullanması gerekiyorsa ekranı kaydederiz:

EKRAN =: 0.0

Görevin zamanlamasını seçme

Başlangıç ​​zamanı şu şekilde temsil edilir:

Dakika saat gün_ ayın ay gün_ hafta komutu

"*" sembolü - herhangi bir değer anlamına gelir.

Minimum süre 1 dakikadır. Bunun nedeni, cron'un her dakika görev listesini taraması ve tamamlanması gerekenleri aramasıdır.

Ek cron değişkenleri

crontab ile kontrol

Bir zamanlama dosyası ekleme:

Crontab program_dosyası_adı

Geçerli zamanlama dosyasının içeriğini görüntüleyin:

Crontab -l

Geçerli zamanlama dosyasını silme:

Crontab -r

Geçerli zamanlama dosyasını düzenleme (ilk başlatmada, desteklenen metin düzenleyicilerin bir listesi görüntülenecektir):

Crontab -e

Bu anahtar, belirli bir kullanıcı için yukarıdaki işlemleri gerçekleştirmenizi sağlar:

Crontab -u kullanıcı adı

-u öğesinin yalnızca crontab'ı root olarak çalıştırarak kullanılabileceğini unutmayın.

Örnekleri

Her dakika:

* * * * *

Her saat, cron değişkenlerini kullanarak:

@ saatlik ~ / script.sh

Komut dosyasını her gün 03:15'te çalıştırın:

15 3 * * * ~ / script.sh

Her pazartesi:

0 0 * * 1

Her çift saatte:

* */ 2 * * *

Yukarıdakiyle aynı, ancak tamamen ayrıntılı:

* 0 ,2 ,4 ,6 ,8 ,10 ,12 ,14 ,16 ,18 ,20 ,22 * * *

Her 10 dakikada bir:

*/ 10 * * * *

Yeni yıl :

59 23 31 ara *

Hafta içi her gün 22:00'de:

0 22 * * 1 -5

Grafiksel bir kabuk (GUI) ile bir program başlatmak; her dakika "Çalışıyor!" Yazılı bir mesaj görüntülenecektir:

0 -59 * * * * EKRAN =: 0 gdialog --msgbox "Çalışıyor \!" 25 20> / dev / boş

* EKRAN =: 0 - monitör numarası

GUI sürümleri

GTK +

Çok kullanışlı bir program var: Zamanlanmış görevler(gnome programı). o temsil eder grafik arayüzü cron için ve yeni başlayanlar için faydalı olacaktır, çünkü anlaşılır dil görevin yürütme süresini açıklar. Örneğin:

15 * * * *

her saat 15 dakikada;

* 0 * * *

00:00 ile 00:59 arasında her dakika.

Adanmış malzemelerimizde Ubuntu Sunucusu zaman zaman, herhangi bir görevi bir programa göre gerçekleştirme sorunu gündeme gelir. Her seferinde aynı şeyi açıklamamak için, yardımcı olması gereken bu materyali oluşturmaya karar verdik. sistem yöneticileri Linux'ta görev zamanlayıcıda ustalaşın ve etkili bir şekilde kullanın.

Ubuntu Sunucusu görev zamanlayıcıyı kullanır cron- arayüzlü zamanlayıcı Komut satırı... Sistemin önemli bir parçasıdır ve kurulumdan hemen sonra çeşitli sistem görevlerini yerine getirerek çalışmaya başlar. Amacımız, özellikle göründüğü kadar zor olmadığı için hizmetimize sunmaktır.

İki tür zamanlama vardır cron: kullanıcı ve sistem. İlkinin kullanıcılar tarafından oluşturulması ve kullanıcı hakları dikkate alınarak yürütülmesi, ikincisinin yönetim veya sistem amaçları için kullanılması ve herhangi bir kullanıcı adına çalıştırılabilmesi bakımından farklılık gösterirler.

Özel bir zamanlama oluşturmak veya değiştirmek için şu komutu yazın:

Crontab -e

Yardımcı programı ilk başlattığınızda, bir düzenleyici seçmeniz istenecektir, seçmenizi öneririz. mcedit(mc'nin kurulu olmasını gerektirir) veya nasıl çalışacağınızı bildiğiniz başka bir düzenleyici.

Zamanlama satırlarının formatı aşağıdaki gibidir:

Dakika saat gün ay gün_ hafta komutu

  • Dakika- 0'dan 59'a dakika cinsinden süre
  • Saat- 0'dan 23'e
  • Gün- 1'den 31'e kadar ayın günü
  • Ay- 1'den 12'ye kadar veya harf atamaları ocak - aralık
  • Haftanın günü- 0'dan 6'ya (0 - Pazar) veya sat - güneş
  • Takım- yürütülecek komut yorumlayıcı biçiminde bir satır, şöyle yazılmasına izin verilir komut1 && komut2 arka arkaya birden çok komut çalıştırmak için.

Dakika, saat, gün aşağıdaki gibi belirtilebilir:

  • Anlam- bir tarih veya saati belirten bir sayı, bir joker karaktere izin verilir * Tam aralık
  • Birden çok değer- virgülle ayrılmış birkaç değer belirtilebilir, örneğin 2,14,22
  • Değer aralığı- tire ile gösterilir, örneğin 2-10
  • Değerlerin adımı- paydası adım olan bir kesir ile gösterilir, örneğin * / 3 - her üç değerden biri 0, 3, 6, 9, vb. Pay, bir değer aralığı veya bir yıldız işareti olmalıdır.

Aşağıdaki yazma örneğini göz önünde bulundurun:

0 8-19 / 2 * * 1 / ana sayfa / ivanov / deneme

Bu, Pazartesi günleri 8'den 19'a (8, 10,12,14,16) kadar her iki saatte bir test komut dosyasını Ivanov'un ana dizininde çalıştırdığı anlamına gelir.

Genel bir hataya karşı sizi hemen uyarmak istiyoruz, periyodik bir yürütme belirtirken, tüm tarihler açıkça belirtilmelidir, yıldız işareti, bunların yokluğunu değil, tüm değer aralığını belirtir. Örneğin, 10'dan 15'e kadar her saat başı bir komut dosyası çalıştırmanız gerekiyorsa, bu yanlış olacaktır:

* 10-15 * * * / ana sayfa / ivanov / test

Bu satır betiği başlatacak her dakika 10 ila 15 saat aralığında. Doğru olacak:

0 10-15 * * * / ana sayfa / ivanov / deneme

Bu giriş, betiğin belirtilen aralığın her saatinin başında çalışmasına izin verecektir.

Tarihe ek olarak, bir dizi özel dize kullanabilirsiniz:

  • @yeniden başlat- yeniden başlatma sırasında komutu yürüt
  • @yıllık veya @yıllık- girişe benzer şekilde 1 Ocak'ta gerçekleştirin: " 0 0 1 1 * "
  • @aylık- benzer şekilde her ayın 1. günü gerçekleştirin " 0 0 1 * * "
  • @haftalık- her Pazar gerçekleştirmek için eşdeğerdir " 0 0 * * 0 "
  • @günlük veya @gece yarısı- her gün gece yarısı, " 0 0 * * * "
  • @saatlik- saatte bir, " 0 * * * * "

Yani her gece yarısı senaryomuzun günlük uygulaması için şunları yazabilirsiniz:

@gece yarısı / ev / ivanov / test

Planlamayı tamamladıktan sonra dosyayı kaydedin ve düzenleyiciden çıkın. Özel zamanlama şuraya kaydedilecek: / var / biriktirme / cron / crontabs mevcut kullanıcının adı altında.

Sistem ve yönetim görevleri için bir dosya sağlanır / etc / crontab içindeki girişlerin sözdizimi, ek bir değerin varlığında farklılık gösterir - adına görevin başlatılacağı kullanıcı:

Dakika saat gün ay gün_ haftanın kullanıcı komutu

Böyle bir kayda bir örnek:

0 19 * * 1-5 kök / etc / yedekleme

Buna göre pazartesiden cumaya saat 19:00'da senaryo çalıştırılacak / vb / yedekleme kullanıcı adına kök.

Bu dosya ayrıca sistem çizelgelerini de içerir, bu yüzden düzenlerken dikkatli olmalısınız. Tüm sistem ve idari görevler içine yerleştirilmelidir.

Gördüğümüz gibi cron kullanımı oldukça kolaydır, ancak aynı zamanda Ubuntu Sunucusunda programları ayarlamak için zengin fırsatlar sunar. Bu makalenin, yöneticilerin bu araçta ustalaşmasına yardımcı olacağını umuyoruz.

Tanıtım

Siteyi yerleştirerek, katılımımız olmadan sorunsuz bir şekilde çalışmasını sağlamak istiyoruz.

Bu, süreçleri otomatikleştirmeniz gerektiği anlamına gelir ve burada cron kurtarmaya gelir.

cron- program, arka plan programı için otomatik başlatma programları ve komut dosyalarını gereken zamanda sunucuda.

Timeweb panosunda Crontab

Hesabınızın ödemesi yapıldıysa ve istenmeyen postalara yakalanmadıysanız, Crontab bölümü kullanılabilir ve işlevseldir:

Timeweb kontrol panelindeki Crontab arayüzü kolay ve sezgiseldir: daha önce cron deneyimi olmayan acemi kullanıcılar bile görevlerin nasıl oluşturulacağını kolayca anlayabilir. Bir görev oluşturduktan sonra, otomatik olarak yedeklemeler, postalar yapabilir, önbelleği temizleyebilir ve diğer tipik eylemleri gerçekleştirebilirsiniz.

Timeweb kontrol panelindeki Crontab, herhangi bir kullanıcının görevlerini otomatikleştirmesine ve istenen sonucu elde etmesine yardımcı olacaktır.

Temel bilgilerden sonra cron ile çalışırken dikkat edilmesi gereken nüanslardan bahsedeceğim.

Crontab bölümünde yeni görevler oluşturulur. Bunu yapmak için alanları doldurmanız gerekir:

  • İsim... Görevimizin adı bu.
  • Dosya tipi ve dosya yolu... Komut dosyasının yazıldığı dile bağlı olarak, dosya türünü ve yolunu seçin. Bir komut dosyası, web sunucusu değişkenleri gerektiren bir görevde çalıştırılırsa, onu doğrudan php yorumlayıcısı aracılığıyla çalıştırmak hatalarla sonuçlanır. Bu nedenle, tarayıcının adres çubuğu üzerinden başlatıldığında çalışan bir komut dosyası kullanmanız durumunda, "HTTP isteği" dosya türünü seçmeli ve adreste belirtildiği gibi istek için URL'yi belirtmelisiniz. bar "siteniz / yol / / komut dosyası / komut dosyası .php? parametre1 = değer1 & parametre2 = değer2 ".

Gerekirse, Crontab bölümünde bir yönetici kutusu belirtin. Komut dosyası çalıştırıldığında konsolda bir mesaj görünürse bu posta kutusu mesajları alacaktır.

nüanslar

Cron ile çalışırken akılda tutulması gereken küçük nüanslar.

1. Cron, hesap ödenmişse ve herhangi bir kısıtlama yoksa çalışır.

ile bir dosya oluşturarak durumu kontrol edebilirsiniz. php uzantısı(örneğin twtest.php) kod ile:

Ve tarayıcıdaki dosyaya erişerek.

Tarayıcıda bilgileri göreceksiniz:

kullanıcı kimliği = 12345 (oturum açma) gid = 600 (müşteri) grup = 600 (müşteri) - cron ve postanın mevcut olduğunu gösterir

kullanıcı kimliği = 12345 (oturum açma) gid = 600 (müşteriler) grup = 601 (yeni müşteriler), 600 (müşteriler), 660 (spam gönderenler) - desteğe yazıyoruz

2. Başlatmakta olduğunuz dosyanın okuma ve yürütme izinlerine (r + x) sahip olması gerekir.

Varsayılan olarak, barındırmadaki dosyalar 600 izinle oluşturulur, şu komutu kullanarak ssh üzerinden izinleri gerekli olanlara değiştirebilirsiniz:

Chmod 744 twtest.php

veya içinde Dosya yöneticisi, Timeweb'in bununla ilgili bir talimatı var:

3. E-postaları gereksiz mektuplarla kirletmemek için,bir dosyaya günlük yazmak için sık yürütülen komut dosyalarını yapılandırın konsol yerine.

SSH üzerinden CRON

Zamanlayıcıyı ssh üzerinden kurmak o kadar çok anlatıldı ki yeni bir şey söylemek mümkün olmayacak.

ssh üzerinden bağlanma, ayrıntılı olarak açıklanmıştır. yardım Merkezi zaman ağı:

Okuduktan sonra cd komutu ile dizinler arasında dolaşarak scriptin bulunduğu dosyayı bulmanız gerekiyor. Dosyayı bulduktan sonra pwd girin ve yolu kopyalayın (örnek "/ home / c / cc123456 / public_html / test /")

Dosyanın hangi izinlere sahip olduğunu bilmiyorsanız şunu girin:

Chmod 744 dosya adı

ssh ile bağlanırken komut ile görevleri düzenleyebilirsiniz.

Crontab -e

Sunucu ilk kez bir editör seçmenizi isteyecektir:

Bir düzenleyici seçin. Daha sonra değiştirmek için "select-editör"ü çalıştırın. 1. / bin / ed 2. / bin / nano<---- easiest 3. /usr/bin/mcedit 4. /usr/bin/vim.basic 5. /usr/bin/vim.tiny Choose 1-5 :

Sistem, 2 numaranın altındaki basit bir nano düzenleyiciye işaret ediyor. Kuvvetleri hesaplamadıysanız veya yanlışlıkla vi'yi seçtiyseniz, paniğe kapılmayın, Esc tuşuna basın, ardından iki nokta üst üste q yazın ve enter tuşuna basın.

Düzenleyiciyi değiştirmek için şu komutu girin:

editör seç

ve nano'yu seçin.

Ödevler satır satır yazılır. Örnek:

1 2 3 4 5 / opt / php56 / bin / php /home/с/cc123456/public_html/twtest.php

İlk beş değerin değerleri şunlardır:

  • 1 dakika - 0'dan 59'a kadar bir sayı
  • 2 saat - 0'dan 23'e kadar bir sayı
  • Ayın 3. günü - 1'den 31'e kadar bir sayı
  • Yılın ayının 4. sayısı - 1'den 12'ye kadar bir sayı
  • Haftanın 5. günü - 0 ile 7 arasında bir sayı (0-Paz, 1-Pzt, 2-Sal, 3-Çar, 4-Per, 5-Cum, 6-Cts, 7-Paz)

Her parametre için virgülle ayrılmış gerekli sayıda değeri ayarlamak mümkündür. Örneğin "saat" alanına 8.23 ​​yazarsanız, görev sabah 8'de ve akşam 23'te başlatılacaktır. Aralığı ayarlayabilirsiniz: 9-18, programın her saat başı 9'dan 18 saate kadar başlayacağı anlamına gelir. "*", "olası tüm değerler" anlamına gelir. Örneğin, "saatler" alanında "*" belirtilmesi, "her saat başı çalıştır" anlamına gelir. "/" sembolü, görevin ek sıklığını belirtmek için kullanılır. Örneğin, "dakika" alanındaki "* / 3", "her üç dakikada bir" anlamına gelir.

"/ opt / php * / bin / php" php * / = php53 / php5.3 / php54 / php5.4 / php56 / php5.6 / php70 / php7.0 / php71 / php7.1 /

Son giriş, dosyanın yolunu ve başlattığımız dosyanın adını gösterir.

nüanslar

  1. "Crontab" bölümündeki kontrol panelinde yapılan değişiklikler ssh ile yapılan girişlerde yapılan değişiklikleri silecektir!
  2. Hem "ayın günü" hem de "haftanın günü" alanları tanımlanırsa, bu tür bir görev ayın gününden bağımsız olarak haftanın belirtilen her gününde yürütülür. Örneğin, aşağıdaki komut, 7'si Çarşamba ile aynı olmasa bile, her Çarşamba ve her ayın 7'sinde 09:19'da çalışır.

19 9 7 * 3 / tercih / php56 / bin / phpn /home/с/cc123456/public_html/twtest.php

Özel durumlar

Görevi dakikada bir defadan daha sık çalıştırmak için uykuyu kullanırız.

Bunu yapmak için crontab'a şunu yazın:

* * * * * / opt / php56 / bin / php /home/k/konoplev/tmp/twtest.php; / bin / uyku 30; / opt / php56 / bin / php /home/k/konoplev/tmp/twtest.php

dosyayı her 30 saniyede bir çalıştırmak için.

Bazen, cron çalıştırma zamanlayıcısını kullanırken, komut dosyasının yürütülmesinin ne kadar sürdüğünü bilemezsiniz. Çift komut dosyası yürütmesini önlemek için önceki komut dizisi yürütmesinin tamamlanıp tamamlanmadığını kontrol etmek gerekir.

Mantıksal bir seçenek, bir kilit dosyası oluşturmak ve komut dosyasını çalıştırırken dosyanın varlığını kontrol etmek olacaktır. Ancak Timeweb barındırmada ve diğer barındırmada bir işlemci sınırlaması vardır. Komut dosyası, koşullara ve yürütme süresine bağlıdır; bu, komut dosyasının yürütme süresini tahmin edemeyeceğimiz anlamına gelir. Komut dosyası, kuralları ve kısıtlamaları ihlal ederek yürütülürse ( ), ardından işlem barındırma tarafından sona erecektir. Ardından kilit dosyası silinmeyecek, bu da komut dosyasının dosya silinene kadar tepe üzerinde çalışmayacağı anlamına geliyor.

Mühendislik bölümünden maestro, sorunun nasıl çözüleceğini anlattı.

Önce /home/c/cc123456/tmp/twtest.sh dosyasında bir sh komut dosyası oluşturun:

#! / bin / bash [e-posta korumalı] no_spaces = `echo $ komutu | sed -e "s / \ s / _ / g" -e "s | / | _ | g" ` pidfile = / var / tmp / $ no_spaces.pid kilit dosyası = / var / tmp / $ no_spaces.lock[[-e $ pidfile]] ise pid = `cat $ pidfile 2> / dev / null` ps h $ pid> / dev / boş 2> / dev / boş eğer [[$? -eq 0]] sonra 1'den çıkın else rm $ lockfile fi fi echo $$> $ pidfile / usr / bin / flock -w 0 $ kilit dosyası $ komutu rm $ pid dosyası

Kontrol panelinde, crontab bölümünde "Yürütülebilir ikili dosya" türünü seçin.

"Tam yol" alanına şunu yazın:

/home/c/cc123456/tmp/twtest.sh / opt / php56 / bin / php /home/c/cc123456/tmp/twtest.php

Neresi

  • /home/c/cc123456/tmp/twtest.sh - test komut dosyamız
  • / opt / php56 / bin / php - gerekli yorumlayıcının yolu
  • /home/c/cc123456/tmp/twtest.php - betiğimizin yolu

Gerekli başlatma zamanını belirtiyoruz ve bir isim buluyoruz.

Çözüm

Artık cron ile nasıl çalışacağınızı ve görevleri otomatik olarak nasıl başlatacağınızı biliyorsunuz. Daha detaylı bilgi cron için bkz. "man cron". İyi şanlar!


Tepe