Вопрос

Я пытаюсь ознакомиться с заданиями cron, и я думаю, что уловил основную идею (планирование, синтаксис и т.д.), Но, похоже, я не могу правильно использовать ее на своем Mac с помощью Terminal - где именно мне найти Crontab?Как я должен ссылаться на пути к скриптам?

То, что я пытаюсь сделать, это запустить php-скрипт на удаленном компьютере (http://...) - Возможно ли это вообще?

Это было полезно?

Решение

Чтобы начать работу с launchd (вместо cron), вам нужно сначала создать пустой .plist файл, например local.mytask.plist и положи это куда-нибудь. ~/Library/LaunchAgents наверное, это хорошее место.Откройте это в текстовом редакторе и скопируйте приведенный ниже код

<?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>KeepAlive</key>
<false/>
<key>Label</key>
<string>local.mytask</string>
<key>ProgramArguments</key>
<array>
<string>/opt/local/bin/wget</string>
<string>http://someserver/somepage.php</string>
</array>
<key>StartInterval</key>
<integer>300</integer>
<key>RunAtLoad</key>
<true />
<key>StandardErrorPath</key>
<string>/dev/null</string>
<key>StandardOutPath</key>
<string>/dev/null</string>
</dict>
</plist>

Затем "активируйте" файл из командной строки:

sudo launchctl load /Users/my_username/Library/LaunchAgents/local.mytask.plist

Чтобы он загружался автоматически, создайте ~/.launchd.conf файл с той же строкой (минус sudo launch)

load /Users/my_username/Library/LaunchAgents/local.mytask.plist

Приведенные выше инструкции были скопированы с www.davidlanier.com и перепечатано здесь для вашей справки.

Другие советы

Тип crontab -e чтобы отредактировать вашу таблицу cron и crontab -l чтобы перечислить текущее содержимое..Тип man 1 crontab для получения дополнительной информации об этой команде и man 5 crontab для получения дополнительной информации о формате файла таблицы cron.

Например, чтобы загружать страницу stackoverflow каждый день в 10:00, запустите crontab -e, введите эту строку, а затем сохраните / завершите работу.Выходные данные будут записаны в файл в вашем домашнем каталоге.

0 10 * * * /usr/bin/curl -s http://stackoverflow.com > ~/stackoverflow.html

На тот случай, если кто-то еще, сражающийся с cron на Snow Leopard, наткнется на это, я восстановлю эту старую тему.

Да, launchd должен заменить cron, но на самом деле он не может делать определенные вещи, которые может cron.

Cron плохо интегрирован.Если он отправляет сообщение, оно попадает в /var/mail/имя_пользователя, о котором, конечно, Apple Mail ничего не знает.

crontab -e выдает сообщение "временный файл должен быть отредактирован на месте".Очевидно, vim не совместим с vi.Затем вы можете выполнить crontab "< /tmp/crontab.whatever" (загляните в /tmp и посмотрите, какое имя на самом деле используется), и оно окажется в нужном месте и, при условии, что вы не допустили опечатки, будет работать.

Да, потребовалось некоторое время, чтобы во всем этом разобраться :(

launchd - это мощный инструмент, но вы действительно не хотите писать plist самостоятельно.Получить Лингон.Это действительно хорошо разработанный графический интерфейс с открытым исходным кодом для создания задач запуска вашей системы и управления ими.

Cron был заменен на запускd начиная с 10.4.Вероятно, вам следует писать свои задачи, используя это, если только вы не планируете в какой-то момент перенести их на системы Linux / Unix.

Если вы все равно решите использовать cron, попробуйте ввести crontab -e или sudo crontab -e.Они предоставят вам разные файлы crontab, первый для пользователя, от имени которого вы в данный момент работаете, а второй - для пользователя root.

"Попадание" по URL-адресу может быть достигнуто множеством способов.В зависимости от локального скрипта, который вы используете для "попадания" в него, вы могли бы использовать некоторые из встроенных методов / классов языка.Например, скрипт Ruby будет использовать сеть/http но вы могли бы попробовать curl, если вы просто пишете скрипт bash.Делай man curl чтобы узнать больше, но основная команда - это просто curl http://google.com.

Вы больше не хотите использовать cron.Как уже заявляли другие, он был заменен launchd, и launchd, очевидно, будет будущим в Mac OS X.

Журнал MacTech недавно опубликовал серию статей о launchd, и я бы настоятельно рекомендовал их прочитать.Я знаю, что, безусловно, многому научился.

Сентябрь 2009 (Том 25, выпуск 9) 25.09 MacEnterprise:запуск на обед

Октябрь 2009 (Том 25, выпуск 10) Snow Leopard, запуск и обед Больше рецептов запуска и взгляд на изменения в Snow Leopard

В MacTech были и другие статьи, и я бы посоветовал поискать на их сайте.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top