Cron dosyasını manuel olarak düzenlemek kötü mü?


12

Genellikle komut satırları aracılığıyla yeni cron işleri tanıtmak için talimat verilir; ancak kullanıcı cron dosyasını manuel olarak düzenlemeyi (metin düzenleyicide) daha kolay (mevcut cron görevlerinin daha iyi kontrolüyle) buldum /var/spool/cron/crontabs/root.

Dosyayı metin düzenleyicide düzenlemek tehlikeli midir?

Varsayılan dosyadaki yorumlar kafa karıştırıcıdır. İlk satırda

# DO NOT EDIT THIS FILE - edit the master and reinstall.

Ama dördüncü satır

# Edit this file to introduce tasks to be run by cron.

2
Neden sadece /etc/cron.d altına bir şey koymuyoruz?
Zoredache

İyi bir fikir olabilir; ancak hangi dosyanın düzenleneceğini kastetmedim, düzenleme dosyasını editörle karşılaştırıyorum veya crontab komutunu çalıştırıyorum.
Googlebot

@ Sanırım tek fark crontab-e tarafından yapılan sözdizimi kontrolüdür. Sadece sözdizimi denetimli bir metin arabelleği. Her zamanki düzenleyicinizi de değiştirebilirsiniz ve crontab-e buna yüklenir. Xyntax'ın önemi, bir hata yaparsanız tüm dosyanın yok sayılmasıdır. Harici bir araç kullansanız bile, dosyayı okumak için crontab-e'yi kullanmalı ve bittiğinde crontab-e'ye geri göndermelisiniz. Böylece artık sözdizimi konusunda endişelenmenize gerek kalmaz. Dosyaları kullanıcı ve sistem görevlerinden ayırmak daha iyidir, bu nedenle kullanıcı / test görevleri için daha iyi /etc/cron.d kullanmalısınız.
m3nda

Yanıtlar:


22

Kullanıcı dosyasını crontabs altında değiştirirseniz, çalışması gerekir. Bununla birlikte, dikkate alınması gereken iki husus vardır:

  1. Dosyadaki cron girdisini yanlış yazdıysanız, crontab -ekomutu kullanmak yerine uyarılmazsınız .
  2. Kök olarak oturum açmadan veya sudo kullanmadan kullanıcı dosyanızı doğrudan crontabs altında düzenleyemezsiniz. İzin verilmedi hatası alırsınız.

Düzenle

Eklenecek bir nokta daha. Dosyayı doğrudan düzenlediğinizde, dosyayı iki kez açarsanız (aynı dosyaya erişen iki kullanıcı) metin düzenleyicisi tarafından uyarılabilirsiniz. Ancak, crontab -eaynı kullanıcının iki farklı kabuk oturumundan kullanıldığında cron listesinin üzerine yazılacaktır . Bu başka bir fark.


çok ince noktalar! Her zaman kök olarak çalıştığım için ikinci problemle hiç karşılaşmadım (tanımadım).
Googlebot

4
Ayrıca, varsayılan dosyadaki "düzenleme", yükseltme / yeniden yükleme işleminin üzerine yazılabileceğidir.
Chris S

Crontab'ı düzenleyen bir kullanıcının sağlayan santax denetimini doğrudan kaybettiğinden bahsetmediniz crontab -e.
Adam F

1
@AdamF: Bu, 1. noktadan bahsediyor!
Khaled

8

Doğru anlarsam, crontab -e kullanmak istemediğiniz için dosyayı bir metin düzenleyicisiyle manuel olarak düzenlersiniz. Sanırım bunun nedeni, editör olarak vi kullanıyor ve siz de ona aşina değilsiniz.

Daha tanıdık nano düzenleyiciyi çalıştırmak için crontab -e (ve bir düzenleyiciye ihtiyaç duyan diğer şeyleri) değiştirirsiniz.

export EDITOR=nano

önce

crontab -e

export EDITOR=nanoSonuna dahil edilecek ~ / .bash_profile dosyanızı düzenleyerek nano'yu varsayılan düzenleyici yapabilirsiniz .

Sorunuzu yanıtlamak için, dosyayı bilmeden doğrudan yazılabileceği için dosyayı doğrudan düzenlememelisiniz. 4. satır ne dediğini söyler, çünkü elle düzenlemeniz gereken crontab'dan gelir (ilk satır olarak söyler).


Açıklayıcı cevap için teşekkürler. Crontab komutu vi editörüne tamamen aşinayım; ancak linux masaüstümden sunucuya doğrudan bağlandığım için gedit (ssh terminalinde değil) kullanıyorum.
Googlebot

Ayrıca, ssh'ye her giriş yaptığınızda yazılmasını önlemek için export EDITOR komutunu bashrc dosyanıza eklemenizi öneririz.
m3nda

1
export VISUAL=vi

Bu, crontab editörünü değiştirmenin doğru yoludur.

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.