Mac crontab никогда не создается


12

Я пытаюсь установить cron на моем Mac, но кажется, что он никогда не заканчивает создание crontab для моего пользователя. Я открываю терминал и ввожу:

$ crontab -e 

Который возвращает это:

crontab: no crontab for jjmay - using an empty one




















~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
"/tmp/crontab.rBdeP6yv1U" 0L, 0C

И затем он ждет там, пока я не закроюсь из окна, я позволил этому идти в течение 20 минут. Я открываю другое окно терминала, чтобы проверить создание моего crontab, и ничего не получаю.

$ crontab -l 
crontab: no crontab for jjmay

Любые идеи о том, почему я не могу создать это, или я могу вручную создать свой crontab, чтобы я мог его редактировать?


Прошло некоторое время с тех пор, как я испортил файлы crontab в OS X, но я предполагаю, что это: "/tmp/crontab.rBdeP6yv1U" 0L, 0C указывает, что вы либо не в правильном каталоге, либо у вас нет прав на запись в этот каталог. В каком каталоге вы вводите "crontab -e"? JDB
JDB

@JDB спасибо. Я не знал, что мне нужно быть в определенном каталоге. Я просто находился в моем каталоге по умолчанию, когда открывал терминал, просто в своем каталоге пользователя по умолчанию. / Пользователи / <my_username> /
Jage

Ответы:


22

Дело не в редакторе, а в правах пользователя. Сначала станьте пользователем root:

sudo su -

Затем отредактируйте crontab для соответствующего пользователя:

crontab -u username -e

После сохранения файла, можете убедиться, что он сохранен правильно, запустив это:

crontab -u username -l

1
Это решение сработало для меня. Вариант, который неожиданно для меня не сработал, был:sudo crontab -u username -e
Эндрю Майнер

7

Я столкнулся с этой проблемой только сейчас. Пытаясь решить эту проблему, меня направили сюда из Google. Во всяком случае, вот как я это решил.

использование

crontab -e

что вы сделали правильно.

Нажмите «я», чтобы вставить свой cronjob. Например,

1 * * * * /Users/Wong/Documents/abc.command

~

Не забудьте нажать клавишу возврата после строки. Если вы не нажмете возврат, это будет так

1 * * * * /Users/Wong/Documents/abc.command

Нажмите ESC и введите: wq, чтобы сохранить и выйти из файла. Должно быть написано "crontab: установка нового crontab"

Я понял, что если вы не нажмете кнопку возврата после своей строки, это не спасет все это.

Надеюсь, поможет.


Спасибо. Я продолжал выходить с, :q!пока ваше решение не :wqимело значения.
KeitelDOG

1
Добро пожаловать. :q!позволяет выйти без сохранения во время :wqзаписи в файл перед выходом.
Ричард Вонг

Я догоняю команды VIM, так что теперь я знаю много вещей, которые я должен был знать!
KeitelDOG

1

Закрытие окна терминала не приведет к сохранению crontab.

Поскольку он использует vim для создания файла, посмотрите, как использовать VIM, и переходите оттуда.

launchd - предпочтительный метод (Apple) в 10.5 и 10.6, но вы не спрашивали об этом, просто как создать crontab.


1

Отображаемое окно - редактор vi. В традиционных системах Unix vi является редактором по умолчанию; похоже, Mac OS X сохранила эту традицию.

Задайте для переменных среды EDITORи VISUALокружения имя (полный путь, если его нет $PATH) вашего любимого редактора. Например

export EDITOR=emacs VISUAL=emacs
crontab -e

Этот параметр должен войти в ваш ~/.profile(при условии, что Mac OS X читает этот файл при входе в систему; если есть OSX-способ определения переменных среды для всего сеанса, вы можете определить их там).


0

Это мое решение: сначала измените ваш редактор. export EDITOR=vim затем измените .vimrc autocmd filetype crontab setlocal nobackup nowritebackup это будет работать.


Что это делает? Я, например, был бы очень осторожен с изменением конфигурационных файлов, скажем, от какого-то анонимного незнакомца на интеренте, который даже не объясняет, что эти изменения должны делать.
Дэвид Ричерби

Прости за это. Я сталкивался с этой проблемой раньше, потом я гуглял, получаю этот метод, но не могу найти исходный пост. Так что я просто опубликовать этот метод, он работал для меня. И вы можете также Google этот метод, чтобы узнать, почему он работает? В следующий раз я улучшу свой ответ. Извините за мой плохой английский.
Пегас
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.