Bir Cron işi nasıl kurarım?

485

Düzenli bir şekilde çalışacak bir görev zamanlamak istiyorum ve Cron'un bunu yapmanın yolu olduğunu duydum.

Ubuntu'da Cron işlerini nasıl ekleyebilirim?

    
sordu Gabriel Solomon 16.08.2010 10:25

6 cevap

599

Bir kabuk komut dosyasını şu klasörlerden birine koyun: /etc/cron.daily , /etc/cron.hourly , /etc/cron.monthly veya /etc/cron.weekly .

Bunlar sizin için yeterli değilse, daha spesifik görevleri ekleyebilirsiniz. ayda iki kez ya da her 5 dakikada bir. Terminale gidin ve şunu yazın:

crontab -e

Bu, kişisel crontab'ınızı (cron yapılandırma dosyası) açacaktır. Bu dosyadaki ilk satır her şeyi açıklıyor! Her satırda, çalıştırmak için bir komut tanımlayabilirsiniz ve zamanlama, ve asmak istediğinizde biçimi oldukça basittir. Yapısı:

minute hour day-of-month month day-of-week command

Tüm numaralar için listeleri kullanabilirsiniz, ör. Dakika alanında 5,34,55 , 5 saatte, 34 geçmişte ve 55 saatin geçtiği saat tanımlanır.

Ayrıca aralıkları da kullanabilirsiniz. Bunlar şöyle tanımlanır: */20 . Bu örnek, her 20'ye karşılık gelir. Bu nedenle, dakika sütununda, 0,20,40 değerine eşittir.

Yani her Pazartesi öğleden sonra saat 5: 30'da bir komut çalıştırmak için:

30 17 * * 1 /path/to/command

veya 15 dakikada bir

*/15 * * * * /path/to/command

Haftanın gününün 0 ile Pazar günleri arasındaki 0-6 arasında olduğunu unutmayın.

Daha fazla burayı okuyabilirsiniz.

    
verilen cevap LassePoulsen 09.03.2018 03:07
93

Çalışmak istediğiniz iş, kullanıcıyla aynı ayrıcalıklarla çalıştırılabilirse, düzenleyebileceğiniz EDITOR="gedit" crontab -e dosyasını çalıştırarak düzenleyebileceğiniz bir kullanıcı crontab kullanmanızı öneririz ( gedit Bir terminalde crontab dosyası) veya basitçe crontab -e (varsayılan düzenleyiciyi kullanır).

Her 10 dakikada bir şeyler çalıştırmak isterseniz, örneğin, buna benzer bir satır eklersiniz

*/10 * * * * /usr/bin/somedirectory/somecommand

ve dosyayı kaydedin.

Kullanıcının crontab içeriğini crontab -l ile görebilirsiniz.

En esnek yol, bir terminalde sudo crontab -e çalıştırarak düzenleyebileceğiniz sistem crontab'ini kullanmaktır. Bu, komutlarınızı root olarak (o ayrıcalık düzeyine ihtiyacınız varsa) veya sistemde başka bir kullanıcı olarak çalıştırmanıza izin verecektir.

Sonra her 10 dakikada bir root gibi bir şey çalıştırmak isterseniz, örneğin, bu gibi bir satır eklersiniz

*/10 * * * * root /usr/bin/somedirectory/somecommand

ve dosyayı kaydedin. (kullanıcının satırı eklediğine dikkat edin)

Sistem kod dosyasının sudo crontab -l ile içeriğini görebilirsiniz.

Daha fazla ayrıntı at: İşte

    
verilen cevap Li Lo 16.08.2010 10:58
51

Bir GUI kullanarak yapmayı tercih ederseniz, Yazılım Merkezi'ne gidebilir ve Zamanlanmış görevler yükleyebilir (veya sudo apt-get install gnome-schedule dosyasını çalıştırabilirsiniz). Cron görevlerini eklemek için güçlü bir GUI sağlayacaktır.

Bu yöntemi kullanırsanız, varsayılan olarak görevlerin root olarak değil, kendi kullanıcınız olarak yürütüldüğünü unutmayın. Bu genellikle iyi bir şeydir.

    
verilen cevap Javier Rivera 16.08.2010 11:21
23

KDE'nin Görev Zamanlayıcısı'nı ( kde-config-cron ) öneririm . Buradan Görev Zamanlayıcısı modülündeki Sistem Ayarları 'na erişin.

Hem kişisel hem de sistem Crontabs'ı yönetir ve zaman sınırlarını yaratmanın kolaylığını beni çok şaşırttı (aşağıdaki ekran görüntüsüne bakın). Bence bu bölüm gerçekten çok az.

    
verilen cevap gertvdijk 01.02.2013 00:59
11

KDE Görev Zamanlayıcı düzenli Ubuntu'da çalışmaz. Sadece KUbuntu gibi KDE Sistemlerinde çalışır. KDE olmayan sistem için gnome programını kullanmayı tercih edersiniz

$ sudo apt-get install gnome-schedule

Uygulama, Tire'deki Zamanlanmış görevlerdir.

    
verilen cevap Antonio 11.02.2014 15:35
8

Bir bas komutunu kullanarak çalışmak için bir Cron işi ayarlamak istedim, bu yüzden betiğin yürütülmesi bir cron işi ekleyecekti.

Farkında olduğunuzu fark ettim:

crontab -e 

Ardından dosyayı oluşturur:

/var/spool/cron/crontabs/root

Kökün, crontab komutunu çalıştıran kullanıcının adı. Buna göre ve en azından 14.04'te yeni bir Cron işi oluşturmak için aşağıdaki bash komutlarını çalıştırabiliriz:

echo "30 17 * * 1 /path/to/command" > /var/spool/cron/crontabs/root

Ayrıca, dosya için doğru mülkiyeti ayarlamamız gerekiyor:

chown root:root /var/spool/cron/crontabs/root

Ve doğru izinleri ayarlayın:

chmod 600 /var/spool/cron/crontabs/root

crontab -e çalıştırdığınızda listede zaten Cron işleri varsa, aşağıdaki komutu kullanarak listeye ekleyebilirsiniz:

echo "30 17 * * 1 /path/to/command" >> /var/spool/cron/crontabs/root
    
verilen cevap Craig van Tonder 27.09.2016 22:25

Etiketlerdeki diğer soruları oku