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

Це не про редактор, це про дозволи користувачів. Спочатку ставте кореневим:

sudo su -

Потім відредагуйте crontab для належного користувача:

crontab -u username -e

Після збереження файлу можна перевірити його правильність збереження, виконавши це:

crontab -u username -l

1
Це рішення спрацювало на мене. Варіант, який на диво не спрацював для мене, був:sudo crontab -u username -e
Ендрю Майнер

7

Я зіткнувся з цією проблемою саме зараз. Намагаючись вирішити проблему, мене тут посилали від Google. У всякому разі, ось як я це вирішив.

використання

кронтаб -е

що ви зробили правильно.

Натисніть "i", щоб вставити вашу роботу. Наприклад,

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

~

Не забудьте натиснути повернення після рядка. Якщо ви не натиснете кнопку return, це буде так

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

Натисніть ESC та введіть: wq, щоб зберегти та вийти з файлу. Слід сказати "crontab: встановлення нового crontab"

Я зрозумів, що якщо ти не натиснеш return після своєї лінії, це не врятує все.

Сподіваюся, це допомагає.


Дякую. Я продовжував виходити, :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 отримую цей метод, але не можу знайти повідомлення про початок. Тому я просто розміщую цей метод, він працював на мене. І ви можете також google цей метод, щоб знати, чому він працює? Наступного разу я вдосконалю свою відповідь. Вибачте за мою погану англійську.
Пегас
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.