Крон? Запущений? iCal ??
Якщо так, то як?
Крон? Запущений? iCal ??
Якщо так, то як?
Відповіді:
Для довідки, всі 3 варіанти спрацювали б. Однак опція iCal має більше обмежень, ніж інші.
(Є графічні інтерфейси для редагування cron і запуску, як згадується в інших відповідях)
Cron є найпростішим вперед і добре відомим, і є багато навчальних посібників. Нотатки Коулса - це додавання останнього рядка знизу до вашої 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: (наприклад, як запустити команду запускати як root? ) Щодо того, куди ви хочете зберегти файл конфігурації (файл plist) як коли він працює, залежить від того, в якому каталозі він зберігається і як він завантажений (наприклад, використовували ви судо чи ні) - схоже на cron.
Зразок запуску щоденного запуску плістів (будьте впевнені, що файл і ярлик однакові - мінус пліст для мітки) слід - цей сценарій запускається щодня о 3 хвилині ночі:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>local.IDENTIFIER_HERE.SOMETHING</string>
<key>KeepAlive</key>
<false/>
<key>RunAtLoad</key>
<false/>
<key>UserName</key>
<string>USERNAME HERE</string>
<key>Program</key>
<string>/PATH/TO/SCRIPT</string>
<key>ProgramArguments</key>
<array>
<string>Argument_1</string>
<string>Argument_2</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>00</integer>
<key>Minute</key>
<integer>03</integer>
</dict>
</dict>
</plist>
Варто також зазначити, що завдання запуску, якщо вони були заплановані, коли комп'ютер спить або вимикається, вони запускатимуться, коли комп'ютер знову стане доступним (увімкнивши його або розбудивши його) - хоча лише один раз незалежно від того, скільки днів у нього може бути були. Редагувати: Я щойно був у документі Apple, який сказав, що якщо машина вимкнена, ви втратите будь-які події запуску протягом цього часу (ваш сценарій не запускатиметься при запуску), (увімкнено сценарій запуску після пробудження)
Іншим варіантом є використання " at " (перевірте сторінку керівництва з "man at"). Сценарій може перенести себе, наприклад:
echo "sh $0 $@" | at `date +%H:%M` tomorrow
(використовуйте "+ 10 хвилин" замість "завтра", щоб запускати його кожні 10 хвилин; щоб припинити планування, просто зробіть "при -l", щоб перелічити заплановані ідентифікатори завдань, а потім "at -r id ", щоб видалити завдання)
Можливо, вам доведеться спочатку запустити відповідний демон (atrun) (див. Https://superuser.com/a/43680 ):
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist
Переваги: швидке виправлення, не потрібен доступ до sudo / root, прості у виконанні складні схеми розкладу Недолік: не стандартний метод планування для OS X (який запускається)
launchd
це шлях під OS X.
crontab -e
, він перенесе вас у текстовий редактор на основі терміналу у файлі, який стане вашим особистим кронт-кодом, коли ви збережете його.
LaunchControl - це ще один графічний інтерфейс для запуску / startctl. Хоча альтернативи, згадані іншими, цілком здатні запускати сценарій щодня, за допомогою LaunchControl ви можете налаштувати складні графіки (наприклад, "раз на будній день, у вихідні щогодини між 2:00 та 8:00"). Також це (AFAIK) єдиний інструмент, який фактично підтверджує роботу. Якщо робота не працює, як очікувалося, вона покаже вам, чому.
Безкоштовно намагатись, скільки хочеш.
cron
якщо ви перейдете на нього в Google.Це залежить від того, що ви хочете: сценарії iCal виконуватимуться лише в тому випадку, якщо ви ввійшли в систему, cron
виконує сценарій без входу в систему. Я не знаю, чи iCal виконує скрипт, якщо в той час, коли сценарій повинен був бути перетворений на Mac були страчені. cron
робить це.
Оновлення. Ви можете переглянути деякі програми в магазині додатків Mac OS X, які роблять це:
Lingon, здається, також доступний, залежно від ОС, яку ви працюєте.
Ось проста, безкоштовна утиліта для генерації XML-файлів:
http://www.gieson.com/Library/projects/utilities/launcha/
За допомогою цього утиліту не потрібно встановлювати програму, просто збережіть результати у папці «Бібліотека / LaunchAgents».
RunAtStart
його встановлено на значення false (якщо ви не хочете, щоб це було правдою). Я витратив годину, з'ясовуючи, чому мій Finder замерзне і зупинить завантаження робочого столу під час завантаження. Відключення RunAtStart
не заважає встановленому графіку.
Я завжди використовую для цього Lingon , але, схоже, це ще не в розвитку. Ви можете спробувати Crontooie , але я ніколи особисто його не використовував. Або просто відредагуйте файл crontab в терміналі.
Якщо ви хочете спробувати БЕЗКОШТОВНУ, я б запропонував Завдання до світанку
sp@mactop ~ $ crontab -l
*/5 * * * * /usr/local/bin/cinco.sh
sp@mactop ~ $ cat /usr/local/bin/cinco.sh
#!/bin/sh
....cut....
sp@mactop ~ $
... будь-який командний рядок, який ви введете для ".... вирізати ....", запускається кожні п'ять хвилин.
30 років прогресу, і "cron" - це все ще мій улюблений планувальник.
-С
Якщо подія календаря відповідає вашим потребам, вбудований додаток Automator також дозволяє створювати Календарні сигнали, які викликаються подіями календаря. Ви можете використовувати деякі вбудовані дії на основі інтерфейсу користувача, щоб робити те, що вам потрібно, або ви також можете запустити якийсь додаток або користувальницький сценарій AppleScript, JavaScript або оболонки.