Crontab dosyamı / tmp içine kaydedeyim mi?


11

Bir sunucuya ssh ve cron için bazı günlük işler (özellikle Kerberos biletlerini yenilemek için oturumu kapatmak ve hala ekran veya tmux'daki programlarımın devam etmesini istiyorum) eklemek istiyorum. Bu yüzden koşuyorum crontab -eve aşağıdakileri ekliyorum,

00 00 * * * kinit -R
00 12 * * * kinit -R

Kaydettiğimde, editör bana soruyor:

File Name to Write: /tmp/crontab.HMpG7V 

İçindeki dosyalar /tmpişletim sistemi tarafından silinebilir mi? Özellikle sunucudan çıkış yaptıktan sonra?

Crontab dosyamı nerede saklayacağım? Crontab dosyasını $ HOME veya daha iyi bir alan altına kaydedebilir miyim?


Crontab dosyasını $ HOME altında kaydedebilir miyim? Neden bir sembol bağlantısına ihtiyacım var?
Tim

Yanıtlar:


15

crontab -eyeni crontab'ınızda hata olup olmadığını kontrol edebilmeniz ve bu crontab ile bu crontab'ın üzerine yazmanızı engelleyebilmesi için gerçek crontab yerine / tmp içinde bir dosya açar. Hata yoksa, gerçek crontab'ınız güncellenecektir. Eğer crontab -esadece gerçek crontab düz yazdım, o zaman nedeniyle yeni crontab bir sözdizimi hatası çalıştırmak için başarısız senin cronjobs tüm risk olur.

sudoedit, visudo, vipw, Vb aynı prensiple çalışır.

Endişelenmeyin, gerçek crontab'ınız diskte kalıcı bir yerde yaşıyor.


sonunda crontab dosyam nerede saklanıyor? Sunucudan çıkış yaparsam crontab dosyama ne olacak? (Yönetici değilim ve sunucuya root erişimi yok)
Tim

1
gerçek crontab'ınız /var/spool(tipik olarak) bir yerde yaşıyor , ancak gerçek crontab'ınıza asla dokunmamalısınız ve crontab -ebunun yerine asla kullanmanıza gerek yoktur . Ham crontab dosyasını yine de düzenlemek için muhtemelen doğru erişim düzeyine sahip değilsiniz.
jayhendren

çıkış yaparsanız, crontab'ınıza hiçbir şey olmaz. / tmp içinde yaşamıyor.
jayhendren

(1) crontab dosyası tek bir kullanıcı için mi yoksa tüm kullanıcılar için mi? (2) crontab dosyasında yaptığım düzenlemenin işe yarayıp yaramadığını nasıl doğrulayabilirim?
Tim

crontabs kullanıcı başına. cronjob'ınızın çalıştığını doğrulamak için cron günlüklerini kontrol edebilirsiniz. genellikle /var/log/cron.log biçimindedir, ancak başka yerler de olabilir.
jayhendren

5

/tmpgeçici crontab dosyasının yazıldığı yerdir. Kaydettikten ve çıktıktan sonra crontab, sisteminizdeki farklı, daha uygun bir dizinde (genellikle /var/spool/crondoğru hatırlıyorsam) değişiklikleri yapar. Endişelenmeyin, işletim sistemi / tmp'nizi silebilir, ancak hiçbir zaman crontabs'ınızı almaz.


1

Crontab dosyaları / var / spool / cron / crontabs / dizininde kullanıcının kullanıcı adı veya kullanıcı kimliği altında bulunur. Burada bulunan crontab'ın artık giriş hesabınıza bağlı olmadığı durumlar ortaya çıkabileceğinden, ihtiyacınız olduğunda kolayca geri yükleyebilmeniz için /home/userid/.crontab adlı bir dizini ana dizininize kaydetmeniz önerilir. için. Bu, isterseniz revizyon kontrolü altına almanızı da sağlar.

Giriş dizininiz başka bir sisteme taşınırsa, sistem yöneticiniz bunu hesaba katmadıkça genellikle biriktirme dizinindeki crontab buna eşlik etmez. / Var / spool, bir sistemin yeniden yapılması gerektiğinde her zaman yedeklenmez veya geri yüklenmez.

Bu nedenle, crontab'ınızın bir kopyasının ana dizininizin altında tutulması önerilir.

~ / .Crontab'ı düzenlemek için favori düzenleyicinizi (pico, vi, emacs, vb.) Kullanın ve ardından / var / spool / crontabs öğesine uygulamak için crontab kullanın. Bunun gibi:

% pico ~/.crontab; crontab ~/.crontab

Takma adları beğenirseniz, bunun yerine bir tane çalıştırabilirsiniz.


1
Evimin crontab dosyasını başka bir yerde crontab dosyalarını geçersiz kılmak için bir şey yapmam gerekir mi?
Tim

Sadece "crontab ~ / .crontab" komutunu çalıştırın ve bunu / var / spool / cron / crontabs dosyasında uygulayın. Herhangi bir değişiklik yapmadan önce ~ / .crontab dosyasını düzenlemek için pico, emacs veya vi kullanın.
JonathanS

Bu aslında soruyu cevaplamıyor.
kimse

@AndrewMedico: Birincil soru "crontab dosyamı nerede saklayacağım? Crontab dosyasını $ HOME veya daha iyi bir alanın altına kaydedebilir miyim?" Yoksa buradaki yorumda Tim'in sorusundan mı bahsediyorsun?
JonathanS
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.