Для справки, все 3 варианта будут работать. Однако опция iCal имеет больше ограничений, чем другие.
(Есть графические интерфейсы для редактирования cron и launchd, как упоминалось в других ответах)
Cron - самый прямой и хорошо известный, и есть много доступных учебников. Coles Notes должен добавить последнюю строчку снизу к вашему crontab (редактируя /etc/crontabили используя crontabв командной строке):
MM HH DD MM WKD -- Minutes, Hour, Day, Month, Weekday (eg. Sun, Mon)
MM HH * * * USERNAME /PATH/TO/SCRIPT
00 3 * * * chealion /myscript.sh "Runs at 03:00 every day"
В Mac OS X cronфактически был заменен, launchdно launchdобратно совместим со cronзначением, которое вы все еще можете использовать, cronно он фактически launchdвыполняет всю работу.
Если вы хотите использовать, launchdвы также можете проверить другие вопросы здесь, в Super User: (например, как я запускаю команду launchd от имени root? ), Где вы хотите сохранить свой файл конфигурации (файл plist) а когда он запускается, зависит от того, в каком каталоге он хранится и как он загружается (например, использовали ли вы sudo или нет) - аналогично cron.
Ниже приведен пример ежедневного запуска launchd plist (убедитесь, что файл и метка совпадают - за исключением plist для метки) - этот скрипт запускается ежедневно в 3 минуты после полуночи:
Стоит также отметить, что запускаемые задачи, если они были запланированы на то время, когда компьютер спит или выключен, будут запускаться, когда компьютер снова станет доступным (его включение или пробуждение) - хотя только один раз, независимо от того, сколько дней он может иметь было. Изменить: Я только что был в документе Apple, в котором говорилось, что если машина выключена, то вы потеряете все события запуска в течение этого времени, (ваш скрипт не запустится при запуске), (сон запускает скрипт при пробуждении)
Другой вариант - использовать « at » (проверьте страницу руководства с «man at»). Скрипт может перепланировать себя, например:
echo "sh $0 $@" | at `date +%H:%M` tomorrow
(используйте «+ 10 минут» вместо «завтра», чтобы запускать его каждые 10 минут; чтобы остановить планирование, просто выполните «at -l», чтобы получить список идентификаторов запланированного задания, а затем «at -r id », чтобы удалить задание).
Преимущества: быстрое исправление, не требуется доступ sudo / root, простое создание сложных шаблонов расписаний. Недостаток: нестандартный метод планирования для OS X (который запускается)
Сэр, для вашего примера запустил конфигурационный файл, я могу поцеловать вас. Но я не буду.
Пол Д. Уэйт
5
launchdэто путь под OS X.
zneak
Да, это было мое впечатление. Похоже, что в Tiger возникли некоторые проблемы, но с тех пор Apple, похоже, обострила их.
Пол Д. Уэйт
На Os 10.7.4 нет файла / etc / crontab. ): Итак, я сделал «какой crontab», и это дало мне / usr / bin / crontab, но это искаженный файл.
Герман Ингальдссон
@HermannIngjaldsson / usr / bin / crontab - это программа; если вы запустите его в терминале с помощью crontab -e, он перейдет в текстовый редактор на основе терминала для файла, который станет вашим личным crontab при сохранении.
Марк Рид
8
LaunchControl - еще один графический интерфейс для launchd / launchctl. Хотя альтернативы, упомянутые другими, вполне способны запускать сценарий ежедневно, с помощью LaunchControl вы можете настраивать сложные расписания (например, «один раз в будний день, в выходные дни каждый час между 14:00 и 20:00»). Также это (AFAIK) единственный инструмент, который фактически проверяет работу. Если работа не работает должным образом, это покажет вам, почему.
Попробовать можно столько времени, сколько вы хотите.
Абсолютно. Причина, по которой я разместил этот ответ в первую очередь, заключалась в поддержке разработчика.
Марк Холл
5
CronniX - хороший интерфейс с графическим интерфейсом для планирования заданий cron на Mac ... Довольно приличный, если вы не хотите углубляться в документацию cron.
Вы должны найти достаточно учебников, cronесли вы Google для этого.
Это зависит от того, что вы хотите: сценарии iCal будут выполняться только в том случае, если вы вошли в систему, cronвыполняет сценарий без входа в систему. Я не знаю, выполняет ли iCal сценарий, если Mac был выключен во время выполнения сценария был казнен. cronделает это
Предупреждение: если вы используете этот инструмент, убедитесь, что для RunAtStartнего установлено значение false (если вы не хотите, чтобы оно было истинным). Я потратил час на то, чтобы понять, почему мой Finder зависает и мешает загрузке рабочего стола при загрузке. Отключение RunAtStartне мешает фиксированному расписанию.
Андреа Лаззаротто
1
Я всегда использую Lingon для этого, но похоже, что он не в разработке. Вы можете попробовать Crontooie , но я никогда не использовал его лично. Или просто отредактируйте файл crontab в терминале.
Мне кажется, Lingon находится в стадии активного развития ; текущая версия 3 доступна в AppStore вместе с предыдущей версией 2. Оба стоят несколько долларов и получают очень смешанные отзывы. Лично я пользуюсь Lingon 3 с некоторым успехом, но не рекомендую его для этой цели по сравнению с другими инструментами, упомянутыми в других ответах (cron, at и т. Д.).
2013 года
В прошлый раз я использовал Lingon более 2 лет назад. В то время он работал нормально для меня, но я не использовал последние версии. Жаль, что это не так надежно, как раньше.
Если событие календаря соответствует вашим потребностям, встроенное приложение Automator также позволяет создавать сигналы календаря, которые запускаются событиями календаря. Вы можете использовать некоторые встроенные действия на основе пользовательского интерфейса, чтобы делать то, что вы хотите, или вы также можете запустить какое-либо приложение или пользовательский AppleScript, JavaScript или сценарий оболочки.
Ответы:
Для справки, все 3 варианта будут работать. Однако опция iCal имеет больше ограничений, чем другие.
(Есть графические интерфейсы для редактирования cron и launchd, как упоминалось в других ответах)
Cron - самый прямой и хорошо известный, и есть много доступных учебников. Coles Notes должен добавить последнюю строчку снизу к вашему crontab (редактируя
/etc/crontab
или используяcrontab
в командной строке):В Mac OS X
cron
фактически был заменен,launchd
ноlaunchd
обратно совместим соcron
значением, которое вы все еще можете использовать,cron
но он фактическиlaunchd
выполняет всю работу.Если вы хотите использовать,
launchd
вы также можете проверить другие вопросы здесь, в Super User: (например, как я запускаю команду launchd от имени root? ), Где вы хотите сохранить свой файл конфигурации (файл plist) а когда он запускается, зависит от того, в каком каталоге он хранится и как он загружается (например, использовали ли вы sudo или нет) - аналогично cron.Ниже приведен пример ежедневного запуска launchd plist (убедитесь, что файл и метка совпадают - за исключением plist для метки) - этот скрипт запускается ежедневно в 3 минуты после полуночи:
Стоит также отметить, что запускаемые задачи, если они были запланированы на то время, когда компьютер спит или выключен, будут запускаться, когда компьютер снова станет доступным (его включение или пробуждение) - хотя только один раз, независимо от того, сколько дней он может иметь было. Изменить: Я только что был в документе Apple, в котором говорилось, что если машина выключена, то вы потеряете все события запуска в течение этого времени, (ваш скрипт не запустится при запуске), (сон запускает скрипт при пробуждении)
Другой вариант - использовать « at » (проверьте страницу руководства с «man at»). Скрипт может перепланировать себя, например:
(используйте «+ 10 минут» вместо «завтра», чтобы запускать его каждые 10 минут; чтобы остановить планирование, просто выполните «at -l», чтобы получить список идентификаторов запланированного задания, а затем «at -r id », чтобы удалить задание).
Возможно, вам придется сначала запустить соответствующий демон (atrun) с (см. Https://superuser.com/a/43680 ):
Преимущества: быстрое исправление, не требуется доступ sudo / root, простое создание сложных шаблонов расписаний. Недостаток: нестандартный метод планирования для OS X (который запускается)
источник
launchd
это путь под OS X.crontab -e
, он перейдет в текстовый редактор на основе терминала для файла, который станет вашим личным crontab при сохранении.LaunchControl - еще один графический интерфейс для launchd / launchctl. Хотя альтернативы, упомянутые другими, вполне способны запускать сценарий ежедневно, с помощью LaunchControl вы можете настраивать сложные расписания (например, «один раз в будний день, в выходные дни каждый час между 14:00 и 20:00»). Также это (AFAIK) единственный инструмент, который фактически проверяет работу. Если работа не работает должным образом, это покажет вам, почему.
Попробовать можно столько времени, сколько вы хотите.
источник
CronniX - хороший интерфейс с графическим интерфейсом для планирования заданий cron на Mac ... Довольно приличный, если вы не хотите углубляться в документацию cron.
источник
cron
если вы Google для этого.Это зависит от того, что вы хотите: сценарии iCal будут выполняться только в том случае, если вы вошли в систему,
cron
выполняет сценарий без входа в систему. Я не знаю, выполняет ли iCal сценарий, если Mac был выключен во время выполнения сценария был казнен.cron
делает этоисточник
Обновление: вы можете проверить некоторые приложения в Mac OS X App Store, которые делают это:
LaunchD Task Scheduler
Plisterine
Lingon также, по-видимому, доступен, в зависимости от того, какую ОС вы используете.
источник
Если вы хотите попробовать БЕСПЛАТНО, я бы порекомендовал вам задачу до рассвета
http://www.macupdate.com/app/mac/33283/task-till-dawn
источник
Вот простая бесплатная утилита для генерации plist XML:
http://www.gieson.com/Library/projects/utilities/launcha/
С помощью этой утилиты нет необходимости устанавливать программу, просто сохраните результаты в папке Library / LaunchAgents.
источник
RunAtStart
него установлено значение false (если вы не хотите, чтобы оно было истинным). Я потратил час на то, чтобы понять, почему мой Finder зависает и мешает загрузке рабочего стола при загрузке. ОтключениеRunAtStart
не мешает фиксированному расписанию.Я всегда использую Lingon для этого, но похоже, что он не в разработке. Вы можете попробовать Crontooie , но я никогда не использовал его лично. Или просто отредактируйте файл crontab в терминале.
источник
... все командные строки, которые вы вводите для ".... cut ....", будут запускаться каждые пять минут.
30 лет прогресса, и «cron» до сих пор мой любимый планировщик.
-С
источник
Если событие календаря соответствует вашим потребностям, встроенное приложение Automator также позволяет создавать сигналы календаря, которые запускаются событиями календаря. Вы можете использовать некоторые встроенные действия на основе пользовательского интерфейса, чтобы делать то, что вы хотите, или вы также можете запустить какое-либо приложение или пользовательский AppleScript, JavaScript или сценарий оболочки.
источник