Bir kullanıcı için birden fazla crontab


13

bir kullanıcı için birden fazla crontab dosyası kullanmanın bir yolu var mı? Kullanıcı başına crontab yerine proje başına crontab dosyası satırlarında bir şey düşünmek ...

Herhangi bir yardım için teşekkür ederiz ...

Yanıtlar:


13

Crontab'ınızı yine de ayrı bir dosyada tutmak ve yüklemek genellikle iyi bir fikirdir crontab filename. (Crontab dosyamı kaynak kontrol sisteminde tutuyorum.)

Birden fazla crontab dosyanız olabilir ve hepsini

cat file1 file2 file3 | crontab

crontabKomut normalde sadece kullanıcı başına tek bir crontab yönetir. Ancak /etc/cron.ddizine sistem crontab dosyaları ekleyebilirsiniz . Bu dosyalar, zaman belirtiminden sonra iş için kullanıcıyı belirten fazladan bir alana sahiptir ve kullanıcı başına birden çok dosyaya sahip olabilirsiniz. İçlerinden birinde sözdizimi hatası olsa bile, diğerleri yine de yürütülür.

Bu dizine dosya yüklemek için root erişimine ihtiyacınız olacaktır.

man 5 crontab detaylar için.

Bunun gibi normal crontab mekanizmasını atlatmanın iyi bir fikir olduğuna ikna olmadım, ama işe yaramalı.

(Bu, muhtemelen sisteminizin kullandığı "Vixie Cron" uygulamasını varsayar.)

NOT: Denemek cazip olabilir

crontab file1 file2 file3 # WRONG

ancak hızlı bir deneme, ilk dosya dışındaki tüm dosya adlarının sessizce yoksayıldığını gösterir. Kılavuz sayfası tek bir dosya adının kabul edildiğini söyler, ancak birden çok dosya adı verilirse ne olacağını söylemez.


Bunu bugün yaptım. Bunu yapmak kolay olurdu, ama bununla amaç, her proje "yöneticisi" nin kendi crontab'ı üzerinde kontrol sahibi olmasıdır. Bu yaklaşımla, birisinin dosyalardan birini her değiştirişinde olduğu gibi birleştirilmesi gerekir, bu da derlenmesi gereken tüm dosyaları takip etmek zorunda kalacağı anlamına gelir

1
Otomatikleştirmek için bir program (veya komut dosyası veya her neyse) oluşturun. crontabKomutu bir crontab girişinden çağırabileceğinizi unutmayın .
Keith Thompson

1
@MateuszKonieczny: Bu iyi bir neden, ancak crontab'ınızı yanlışlıkla silmek de kolaydır. crontabhiçbir argüman olmadan stdin'den yeni bir crontab okur.
Keith Thompson

1
@MateuszKonieczny: Hayır, sadece bir CVS deposunda tutuyorum ve $HOMEgüncellediğimde copoy yapıyorum . (CVS kullanıyorum çünkü Git yapmaya başladığımda Git yoktu.)
Keith Thompson

1
@KeithThompson Oh, yakaladım! İnsanların Fedora Core 24'ü evrim veya gnome olmadan "sıfırdan" çalıştırmalarına yardımcı olacak bir belge oluşturuyorum: github.com/barrycarter/bcapps/blob/master/FEDORA ve cron dosyamın bir kısmını paylaşmak istedim ama hepsini değil. Çözümünüz (GIT dizininde bc-public-cron ve bunun dışında bc-private-cron oluşturma) faturaya güzel bir şekilde uyuyor.
barrycarter

4

Neden bunu yapasın? Crontab'da birden fazla satır kullanabilirsiniz - bence bu işi de yapar.

Ayrıca kullanabileceğiniz dizinler de vardır:

cron.d/
cron.daily/
cron.hourly/
cron.monthly/
cron.weekly/

İşte şimdi nasıl :) Sadece bunu yapmanın bir yolu olup olmadığını bilmek istiyorum
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.