Не работает cron mac os

А что это в хвалёной макоси не работает cron?

содержимое рутового кронтаба:

00-59 22-23 * * * shutdown -h now

ожидаю, что каждый день после 10 часов вечера крон должен вырубать комп, ан нет.

ну и кто там рассказывал сказки о том, какой макось прекрасный юникс?

линукс тут при том, что у него крон работает как надо, в отличие от.

Раньше, iirc cron не был включён по умолчанию. И его надо было разрешать отдельно.

Новый cron — это теперь launchd. И он вроде должен сам подхватывать, если есть /etc/crontab

чот подозрительный у тебя кронтаб, ты уверен, что он верен?

Если не так то где логи?

Вот что мне нравится в Linux, это то, что если я где, то просрал т в логах будет шум.

Открой для себя console (так и называется).

Ты что мне говоришь? Я говорю что я если просру кронтаб то получу выхлоп. А он говорит что вложил в кронтаб душу и в чем там проблема?

Ты спрашивал, где логи? Ну вот там их все видно.

Ну тогда в чем вопрос? Если есть логи то реши проблему и все. Этож тебе не Винда с сообщением «Не могу соедениться с эксчейндж червером

не, не подхватывает

разве? вроде всё правильно. м.б. где и накосячил, конечно.

с этого места поподробнее, если можно

что каждый день после 10 часов вечера вырубать комп

Ну про то, что использовать cron не рекомендуется, ибо для этого есть более вменяемые средства типа launchd, уже сказали.

Но у меня вопрос тупее. А чем вариант не устроил — зайти в настройки питания системы и там это расписание через гуй вбить? Или слишком некрасноглазо?

В макосе крон не нужен, ты как-то не правильно пытаешься ей пользоваться.

Источник

Как исправить проблемы с разрешениями Cron в MacOS Catalina и Mojave

Некоторые опытные пользователи Mac могли заметить, что определенные сценарии оболочки с cron, cron jobs и crontab либо не работают вообще, либо не могут работать должным образом в новейших версиях MacOS, особенно Mojave 10.14, Catalina 10.15 и новее. В зависимости от ситуации, это может сопровождаться ошибкой разрешений, ошибкой «операция не разрешена» или скриптом или заданием cron может просто незаметно завершиться сбой в фоновом режиме. Хотя существует множество причин, по которым задание cron может завершиться ошибкой, строгие меры безопасности в последних выпусках MacOS также могут быть виноваты и вызывать проблемы у некоторых пользователей.

В этой статье рассматривается решение проблем с разрешениями cron в последних версиях MacOS, включая MacOS Catalina и Mojave.

Обратите внимание, что это предназначено только для опытных пользователей Mac. Если вы не используете cron и у вас есть проблемы, связанные с разрешениями, вы не захотите вносить какие-либо из этих изменений.

Как предоставить cron полный доступ к диску в MacOS

Если cron имеет проблемы с разрешениями в последних версиях MacOS, вам необходимо предоставить cron полный доступ к диску на Mac. Вот как это сделать:

  1. Откройте «Системные настройки» в меню  Apple, затем выберите «Безопасность и конфиденциальность».
  2. Перейдите на вкладку «Конфиденциальность», затем выберите «Полный доступ к диску» в опциях бокового меню.
  3. Щелкните значок замка в углу и войдите в систему с паролем администратора, чтобы предоставить разрешение на изменение настроек полного доступа к диску.
  4. Теперь в Finder в MacOS откройте меню «Перейти» и выберите «Перейти к папке».

  • Введите путь: / usr / sbin / cron и выберите Перейти
  • Перетащите «cron» в список приложений и процессов с разрешением Full Disk Access, в списке теперь должно появиться «cron».

  • Закройте системные настройки и откройте окно sbin Finder по завершении.
  • Читайте также:  The forest как настроить графику

    Находясь в том же разделе настроек, вы также можете добавить приложение «Терминал» к параметрам «Полный доступ к диску», чтобы исправить ошибку терминала «Операция запрещена», с которой также могут столкнуться новые меры безопасности в MacOS и, возможно, smbd. тоже, если вы полагаетесь на него для работы в сети.

    Как упоминалось ранее, это только для опытных пользователей, и вы не должны предоставлять приложениям, процессам или чему-либо еще Полный доступ к диску, если вы точно не знаете, что делаете и почему вы это делаете. Cron может автоматически запускать процессы с полным корневым доступом в фоновом режиме на Mac, что имеет очевидное законное использование, а также последствия для безопасности, поэтому, если вам не нужна эта возможность, вам не следует изменять этот параметр.

    Вы всегда можете отозвать полный доступ к диску в MacOS в любое время, вернувшись к настройкам и изменив соответствующие настройки. Точно так же вы также можете настроить и контролировать, какие приложения могут получать доступ к файлам и папкам на Mac. Эти функции безопасности лучше всего оставить в покое для большинства пользователей, но опытные пользователи часто настраивают эти параметры для соответствия определенным приложениям и действиям на своих компьютерах.

    Cron довольно мощный и может использоваться для всех видов автоматизации, резервного копирования, создания сценариев и других расширенных действий. Вы всегда можете проверить crontab на наличие скриптов и изменить редактор crontab по умолчанию, если хотите.

    Помогло ли это решить какие-либо проблемы cron, с которыми вы сталкивались в новых версиях Mac OS? У вас есть какие-нибудь особые советы или хитрости для cron? Делитесь своими мыслями и впечатлениями в комментариях.

    Источник

    Как запустить задание cron на Mac?

    Как я могу заставить мой Mac (с самой последней ОС) выполнять задачу автоматически один раз в день? Например, я бы хотел, чтобы он автоматически загружал копию этого учебника по алгебре с открытым исходным кодом раз в день. У меня есть ощущение, что какая-то комбинация wget и cron должна работать, но, прогуглив и прочитав документацию cron, я просто не смог заставить ее работать правильно.

    Я думаю, что в OS X вы должны использовать launchctl для «заданий cron».
    Но в противном случае ваша задача должна быть легко сделать с помощью cronjob
    sudo crontab -e
    55 23 * * * wget http://www.math.columbia.edu/algebraic_geometry/stacks-git/book.pdf

    Это должно работать каждый день в 23:55

    Обновить

    Вы должны указать выходное местоположение WGET с -O /path/to/file

    Демон cron может быть активирован простым:

    Затем желательно ввести полный путь к вашему / usr / local / bin / wget (или где бы он ни находился). Крон не знает о $ PATH вашего пользователя. Надеюсь, это поможет.

    Читайте также:  Как отремонтировать ножной насос для подкачки шин

    Вы можете использовать Cronnix, который является бесплатным графическим интерфейсом для cron:

    Если вы находите синтаксис командной строки (и т. Д.) Слишком запутанным / загадочным, вы можете обратиться к инструменту с графическим интерфейсом для просмотра / редактирования / создания этих заданий.

    В прошлом я использовал Lingon , который теперь доступен и в Mac App Store. Мне не нужно использовать это очень часто, но это очень полезно, когда я делаю!

    Более элегантным решением (чем cron) является использование уведомлений iCal + Applescript.

    Сначала запустите AppleScript Editor (находится в / Application / Utilities) и вставьте следующий код:

    Сохраните скрипт и выйдите из редактора applecript.

    Откройте свой iCal и создайте новое событие на сегодня, установив желаемое время, выберите «повторить: каждый день» и в качестве будильника «Запустить сценарий» и выберите ваш скрипт.

    Если вы хотите получать уведомления о каждой загрузке, вы можете добавить еще одну тревогу с «Сообщение со звуком», «в дату».

    Я рекомендую макароны . Его преимущество заключается в том, что когда вы запускаете задание один раз в день, оно запускается, когда ваш компьютер включен, независимо от времени. Таким образом, вы не пропустите работу, потому что компьютер был выключен в указанное время.

    Macaroni — это инструмент, который обеспечивает регулярное обслуживание Mac OS X, включая процесс восстановления прав Mac OS X, а также обслуживание в стиле Unix. Вы могли бы сделать это самостоятельно, но разве у вас нет более интересных вещей, связанных с вашим временем?

    Источник

    crontab не работает на OSX El Capitan?

    Вопрос. cron должен работать в OSX El Capitan?

    Фон. Я использовал crontab в течение многих лет на OSX, но с El Capitan он, похоже, не работает. Я добавил свое имя пользователя в /usr/lib/cron/cron.allow и даже перезагрузил компьютер, но все равно мои задания cron ничего не делают и не отправляют мне сообщения об ошибках. Руководства предполагают, что Apple не хочет, чтобы люди использовали cron, но они не говорят, что это не работает (пока).

    Кажется, это работает для меня, но я думаю, что вам нужно указать редактор:

    env EDITOR=nano crontab -e

    Добавьте свои кроны, а затем сохраните файл с указанным именем и местоположением. В моем случае это файл в /tmp/crontab.xxxx .

    Тогда, если вы сделаете crontab -l , вы должны увидеть свои кроны.

    Это еще один ответ для тех, кто находит это через Google. Там не так много результатов.

    Для меня каким-то образом /usr/lib/cron была связана с /var/at (о которой я даже никогда не слышал…), а /var/at имел файл cron.allow , в котором не было моего имени пользователя, поэтому запустил Sudo vi /var/at/cron.allow и добавил свое имя пользователя (каким-то образом перенаправив echo в этот файл не сработало…) починил.

    Для Mojave, Полный доступ к диску не позволяет вам изменять системные файлы (которые включают в себя данные, относящиеся к конфиденциальности, а также конфигурацию системы, такую ​​как crontabs).

    Чтобы включить доступ:

    • Перейти к Системные настройки >Безопасность и конфиденциальность >Конфиденциальность >Полный доступ к диску
    • нажмите кнопку +
    • Добавьте свое терминальное приложение (например, /Applications/Utilities/Terminal.app или /Applications/iTerm.app)
    • Перезапустите приложение терминала
    • Настроить cron
    • Необязательно, но настоятельно рекомендуется: удалить приложение терминала из Полный доступ к диску по завершении

    На MacBook с использованием El Capitan (10.11.5) «cron» по-прежнему работает просто отлично.

    Читайте также:  Как починить лампы инфракрасный с трубками

    «/usr/lib/cron.deny» является значением по умолчанию (перечисляет только «Гость»), и «cron.allow» отсутствует. Не забывайте делать какие-либо настройки, чтобы заставить его работать (без модов init/config, ни chmod, ни file/dir не создает/удаляет и т.д.).

    (Использовал 10.6. * До тех пор, пока MacBook не умер в апреле. Начал использовать 10.11 в середине мая, восстановил мой crontab после обновления 10.11.5 («конец мая»). Поэтому не знаю, работал ли cron под 10.11, или повторно включен обновлением 10.11.5.)

    Попробуйте этот простой тест: «crontab -e», затем «*/5 * * * * date >> /tmp/z.date». Должны видеть новую дату каждые пять минут.

    Если это работает, попробуйте «*/5 * * * * env >> /tmp/z.date.1» и проверьте вашу среду. Например, стандартная переменная PATH довольно короткая.

    Кстати, «at» — это очередь пакетных заданий. «at», «batch» и «cron» часто группируются вместе, поскольку они делают вариации одного и того же.

    Если вы введете cd /usr/lib/cron , то ls вы увидите, что у вас есть at.deny и cron.deny , но нет at.allow или cron.allow . Запустите Sudo nano cron.allow и введите ваши имена пользователей по одному в строке. Создать копию для at.allow . Я создал эти два файла, и он начал работать.

    cron полностью пропустит все задания, пока машина спит. Попробуйте проверить настройки энергосбережения (см. Ниже).

    launchd (рекомендуемая Apple альтернатива) также не запускается, пока машина спит, но не пропускает задания. Вместо этого задания запускаются, когда машина просыпается.

    Согласно Apple, cron был объявлен устаревшим некоторое время назад. Должно быть, они наконец-то вытащили вилку из GM Эль-Капитана. Apple предлагает использовать launchd вместо cron. Вот учебник: launchd

    Источник

    cron и at не работают

    На моем Mac (да, да, я знаю. Но моя коробка с Linux работает) по какой-то причине cron и at не хотят работать. Они оба регистрируют, что задания были добавлены, без синтаксических ошибок или каких-либо проблем. Затем проходит время, и никто ничего не делает.

    52 18 * * * username touch

    Это должно было начаться в 6:52 вечера по тихоокеанскому времени, но этого не произошло. Зачем?

    Для at , я сделал: at 6:48 pm где jobs выглядит следующим образом:

    И ничего не случилось. Мысли?

    2 ответа 2

    Моя ставка — в том, что путь для cron недостаточно инклюзивен, чтобы включать прикосновение — либо добавьте директиву пути к cron, либо используйте полный путь для прикосновения

    Вы смотрели в свой почтовый ящик с mail ? Вы, вероятно, найдете там сообщения об ошибках от cron . Я обнаружил ожидаемую ошибку при запуске cron до того, как создал скрипт для его запуска. Одним из полезных элементов информации были параметры среды, которые часто имеют отношение к этим проблемам. Я получил информацию:

    Другая проблема, которую я вижу, это ваша командная строка:

    Что такое команда username ? Это не то, что я нахожу на моем Mac (MacOS X 10.7.2). Он находится в /usr/bin или /bin на вашем компьютере? Если нет, велики шансы, что его не найдут.

    Сценарий /Users/jleffler/bin/Cron/minutely на моем компьютере представляет собой сценарий (символическая ссылка на a), который читает профиль — я называю мой .cronfile — и затем выполняет команду /Users/jleffler/bin/minutely , все на основе на базовое имя файла в каталоге Cron . Это устанавливает мой PATH на что-то более полезное, чем системный PATH, предоставляемый cron .

    Источник

    Оцените статью