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?
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?
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.
Ç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
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.
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.
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.
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
Etiketlerdeki diğer soruları oku cron