Mac OS X Lion'da cronjobs eklerken hata


37

Şimdiye kadar, Mac'ime crontask eklemeyi hiç denemedim. Sürprizime göre, bir hata attı ..

[hayek@mac:/www/] 02:33:22 PM: crontab -e                                                                                                         1 .
crontab: no crontab for hayek - using an empty one
crontab: "/usr/bin/vi" exited with status 1

Neden bu hatayı attığını nasıl öğrenebilirim?

Mac OS X Lion 10.7.2 kullanıyorum


2
Belirli bir nedenden dolayı cron kullanıyor musunuz? OS'de büyük ölçüde launchd yerini oldu x
Daniel Beck

Bir cronjob gerektiren bant genişliği kullanımını izlemek için vnstat kullanmak istedim. Alternatif bir uygulama kullanabileceğimi biliyorum, ancak eğer mümkünse Mac'te cron'un nasıl çalışacağını bilmek faydalı olacaktır.
Hayek

1
crontab fileTabloyu harici bir dosyadan yüklemeye çalıştınız mı ? Veya farklı bir editör kullanarak EDITOR=NANO crontab -e?
Lri

@DanielBeck cron kullanıyorum çünkü piyasaya sürülmekten daha yeni bir giriş yapmak çok daha hızlı.
Doug Harris,

Ne crontab -lgösterir? İçinde başka mesaj var /var/log/cron.log/var/log/system.log?
Doug Harris

Yanıtlar:


41

~ / .Vimrc ekle:

    autocmd filetype crontab setlocal nobackup nowritebackup

Büyük basit numara! benim için iyi çalışıyor.
Tri Nguyen,

Bu en iyi cevaptır ve iyi çalışır - kabuk profilinde bir env değişkeni ayarlamanın yanı sıra düzenlemeyi ~/.vimrc
içeren sonuçtan daha basittir

Bunu doğru cevap olarak işaretlemek, çünkü kendi cevabım artık uygun ya da en etkili değil.
Hayek

1
Bu Mac OS High Sierra'da da çalışıyor! Bunu gönderdiğiniz için teşekkür ederiz
Kearney Taaffe

44

Sorun ortaya çıktı vive cron ile ilgisi yoktu. Bunu export EDITOR=vimdüzeltmek


2
Evet, sorunu bulduğunuzu anlıyorum ve çözüm şudur: ne?
Gökhan Barış Aker

3
Yapmayı deneyin, export EDITOR=vimsonra bir deneyin .
Hayek

@Hayek'e teşekkürler. Geciktiğim için üzgünüm, sizin kadar çabuk cevap veremedim: P. Ancak, kudretli 'sudo' ile crontab'ı çalıştırmak sorunumu çözdü.
Gökhan Barış Aker

Çalışmana sevindim.
Hayek

1
Ben de aynı sorunu yaşadım. Ayar EDITOR=vimsorunu çözmedi - sadece yeni bir hataya yol açtı crontab: temp file must be edited in place. Vim'i çok tercih ederim, ancak cronjobs'u o kadar nadiren düzenlerim ki, bunu yaparken yeterince mutlu oluyorum NANO... ancak biri düzeltmeyi biliyorsa çok ilgileniyorum.
ricardo

35

İlgili bir konuda, mesajı alırsanız:

crontab: temp file must be edited in place

Deneyin:

1) .bash_profile dosyasına ekle

alias crontab="VIM_CRONTAB=true crontab"

2) .vimrc'ye ekle

if $VIM_CRONTAB == "true"
    set nobackup
    set nowritebackup
endif

Kaynak: http://drawohara.com/post/6344279/crontab-temp-file-must-be-edited-in-place


2
Bu doğru cevap!!
Jacob

Bu benim için çalıştı ve bunun doğru cevap olması gerektiğini düşünüyorum.
Shubhamoy

1
alias crontab "export VIM_CRONTAB=true; /usr/bin/crontab"
Csh

1
Ayrıca OP'nin sorusu @xgMz'de açıklanan hatayı tam olarak belirtmese de, bunun daha iyi bir cevap olduğunu düşünüyorum. crontab, yazma / kaydetme davranışındaki vim yedeğini görünmüyor, bu yüzden burada açıklandığı şekilde devre dışı bırakmak sadece çalışıyor.
Shyam Habarakada

MacOS Sierra'daki vim ve cron ile bu sorunu daha yeni yaşadım. Bu doğru cevap!
James McCormac,


2

Aynı sorunu yaşadım ve masayı oluşturmak için verilen tavsiyelere uydum:

crontab file

Ve bu cron masasını yarattı ve sonra kaçabildim

crontab -e

varsayılan düzenleyici olarak vi ile ve hiç problem yaşamadım. Vi dosyayı kaydedemedi, ancak bir kez oluşturulmuşsa erişebiliyor. Bu, çalışabilmekle tutarlıdır:

sudo crontab -e 

Bir merak olarak, tablolar içinde saklanır

/usr/lib/cron/tabs/UserName

sadece sudo olarak okunabilir.


0

Bunu teşhis etmenin en iyi yolu, basit bir girişle yeni bir crontab oluşturmaktır:

* * * * * /bin/date >> /tmp/cron_output

Bu işe yararsa sorun, eklediğiniz komutla ilgilidir. Bunu bizimle paylaşıp sonuçları bir crontab yerine doğrudan Terminal.app'den çalıştırdığınızda sonuçları paylaşır mısınız?


1
Önerdiğiniz komutla aynı hata. Terminalde beklendiği gibi /bin/datedöner Wed Nov 23 15:03:49 PST 2011.
Hayek

Tamam, cevabınızı yeni gördüm, bu da neden aynı hatayı alacağınızı açıklıyor - sadece sorunun teşhisine yardımcı olabileceğini düşündüm :)
tog22

0

cron fırlatma lehine kaldırıldı.

Lingon , piyasaya sürülen aracıları ayarlamak için harika bir araçtır; Eskiden bedavaydı ama şimdi 3 dolar gibi görünüyor.

Wikipedia'da tüm anahtarları ve onları etkinleştirmek / devre dışı bırakmak için kullandığınız launchctl aracını tanımlayan iyi bir başlatma sayfası vardır.



-1

Aynı sorunu OSX'te de gördüm. Cevap, sudo komutunu kullanarak root olarak çalışmaktır, örneğin:

sudo crontab -e

Bu fikri yukarıda Gökhan Barış Aker'den aldım.


ile sudokök kullanıcı altında yer cron işleri için gidiyoruz. Cron dosyaları normal kullanıcılar ve root dosyaları için farklıdır.
Timofey
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.