Crontab dosyasının konumu


52

diğerleri (çoğu?) gibi crontab'ımı düzenleyerek crontab -e, artımlı yedekleme, ntpdate, çeşitli rsync işlemleri gibi tüm rutin işlemlerin yanı sıra, masaüstü arka plan christmas'imi yılda bir kez temalı hale getiriyorum. Anladığım kadarıyla, yeni bir kurulumda veya yeni bir kullanıcıda bu, mevcut değilse, dosyayı da otomatik olarak oluşturur. Ancak, bu dosyayı başka bir kullanıcıya kopyalamak istiyorum, peki düzenlediğim gerçek dosya nerede?

Bu dağıtımlar arasında değişiyorsa, Centos5 ve Nane 17 kullanıyorum


15
Yılda bir kez masaüstü arka plan christmas temalı yapmak için +1
Celada

5
@Celada Sık olmayabilir, ama yine de rutin bir iş.
Jarmund

Yanıtlar:


53

cronBireysel kullanıcılar için dosyaların konumu /var/spool/cron/crontabs/.
Kimden man crontab:

Her kullanıcı kendi crontab'ına sahip olabilir ve bu dosyalar içeride /var/spool/cron/crontabsolsalar da, doğrudan düzenlenmeleri amaçlanmamıştır.


7
Anahtar sözcükler "doğrudan düzenlenmeleri amaçlanmamıştır", bu nedenle bu cevap, Celada'nın aşağıdaki komutu olmadan tamamlanmadı; bu, sorunun "başka bir kullanıcıya kopyala" kısmına daha güvenli bir cevap veriyor. Eğer insanlar crontab komutunu kullanmadan doğrudan crontab'ları düzenleme alışkanlığını kazanırlarsa, komutun sağladığı bir çok akıl sağlığı kontrolünden vazgeçerler.
Monty Harder,

@MontyHarder "doğrudan düzenlenmeye niyetli olmadıklarını" kabul ediyorum, ancak ya bir ihtiyaç varsa, crontab'a bir bash betiği ile giriş yapma ihtiyacı olduğu gibi. Tam dosyayı kullanmak zorundasınız, herhangi bir harici arayüzün bu durumda yardımcı olacağını sanmıyorum, yanılıyorsam düzeltin.
Prabhat Kumar Singh

@PrabhatKumarSingh Hala dosyayı doğrudan düzenlememelisiniz. Aşağıdaki Celada'nın komutunu okursanız, bir komut dosyasının bir crontab dosyasını doğrudan düzenlemeden nasıl değiştirebileceğini gösteren bir örnek görürdünüz. man crontabBunun nasıl çalıştığını açıklar.
Monty Harder

34

heemayl, Linux'taki crontab dosyalarının konumu konusunda doğrudur , ancak diğer işletim sistemlerinde farklı olabilir ve "teorik olarak" da Linux'ta farklı bir konumda olabilir. Temel olarak, dosyalara erişmek için özel bir arayüz sağlandığında, onu kullanmanız gerekir. Bu cron, dosyaları yüklemeden önce kontrol etmelerini sağlar, dosyaların sahip olması gereken izinlere sahip olmasını sağlar, vb.

Bu nedenle bir crontab'ı bir kullanıcıdan diğerine, bu arayüzü kullanarak dosyalara doğrudan erişerek değil, bu arayüzü kullanarak kopyalamanız gerekir.

crontab -u <user1> -l | crontab -u <user2>

3
Crontab dosyalarının işletim sisteminin kendisi dışındaki herhangi bir şey tarafından doğrudan manipüle edilmemesi için birçok neden vardır. Bu çok daha iyi bir çözüm. Resmi cevaba dahil edilmesi gerektiğini düşünüyorum.
Monty Harder

@MontyHarder Gerçekten "resmi" bir cevap yok. İstediği kişinin kendisi için kişisel olarak yararlı olduğunu seçtiği cevap (onay işaretli olan) ve topluluğun seçtiği cevap (en fazla oy alan) var. Kısacası, 15 temsilcisi var, Önerebileceğin bu onu upvoting tarafından doğru cevaptır. Ayrıca, diğer cevabın iyileştirilmesini önermek isterseniz, bu cevabı yorumlamanız gerekir - aksi takdirde, yazarı yorumunuzdan haberdar edilmeyecektir.
derobert

2
Bunun cevabı, kişinin çıktısını crontab -lbir dosyaya yönlendirmesi , dosyayı diğer sisteme taşıması ve ona yönlendirmesi gerektiğidir crontab. Veya doğrudan bile yapabilirsin ( crontab -l | ssh $remote_host crontab).
Blacklight,

6
"Dosyalara erişmek için özel bir arabirim sağlandığında, onu kullanmalısınız." Her uygulamanın sadece fs aracılığıyla göstermek yerine, yapılandırma dosyalarını düzenlemek için özel bir arayüz sağladığını düşünün. Bu takip edilmesi gereken sıkıntı olurdu.
Witiko

1
Asıl asker olarak, bu konuyu tartıştığımı düşünüyorum: Kabul edilen cevap, sorumu anlamıyla seçildi; Dosyanın konumu. Bu dosyaya yönelik niyetim önemsiz. Ek bilgilerde düzenleme yapmanın cevabı değiştirdiğini sanmıyorum, ancak gereksiz sayılabilir.
Jarmund
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.