Как известно, для запуска по расписанию команд в UNIX-подобных операционных системах используется утилита cron. В данном случае речь идет об ОС FreeBSD.
В личном кабинете хостинга обычно присутствует интерфейс для работы с инструкциями, размещаемыми в файлах crontab. Так как в моем случае скриптов несколько и запускать их нужно по очереди, сделать настройки через веб-интерфейс не получится.
Чтобы все работало как задумано, нужно разместить команды вызова скриптов в исполняемом файле (UNIX shell - .sh).
Подключитесь к серверу по протоколу SSH и создайте .sh-файл в домашней директории. Можно создать какую-нибудь папку внутри домашней директории.
Существует несколько вариантов запуска скриптов: кроме простого запуска, есть возможность сохранения результатов работы скрипта в файл, либо отправки их на e-mail.
• Запуск скрипта - результаты никуда не сохраняются и не отправляются:
# /usr/local/bin/wget -O /dev/null -q http://domen/path/file.php
• Запуск скрипта с сохранением результатов его работы в файл:
# /usr/local/bin/wget -O путь к файлу -q http://domen/path/file.php
В моем случае «путь к файлу» такой /home/m/mattweb/
• Запуск скрипта с отправкой результатов его работы на e-mail (результаты работы в файл не сохраняются):
# /usr/local/bin/wget -O - -q http://domen/path/file.php | /usr/bin/mail mail@host.ru
В файл нужно добавить соответствующие команды для запуска всех необходимых скриптов. Не забудьте проверить, правильно ли в команде указан путь к wget
:
# locate wget
Затем нужно сделать этот файл исполняемым:
# chmod +x имя_файла.sh
После проведения действий, описанных выше, можно зайти в личный кабинет хостинга и настроить запуск созданного файла с командами по расписанию.
Формат команды следующий:
минута час день_месяца месяц день_недели команда
Допустимые значения:
- минута: от 0 до 59
- час: от 0 до 23
- день_месяца: от 1 до 31
- месяц: от 1 до 12 (можно использовать 3 первые буквы из названия месяца без учета регистра от jan до dec)
- день_недели: от 0 до 6 (0 — воскресенье, можно использовать сокращенное название дня недели от sun до sat)
Каждое из полей даты и времени может быть обозначено символом * - будет соответствовать любому возможному значению. Также для этих полей можно указывать диапазоны значений, разделенные дефисом.
Почитать о crontab в FreeBSD
Примеры команд в Ubuntu