Меню

Настройка cron через ssh

Планировщик заданий Cron

Вы можете настраивать задания для планировщика cron через раздел «Crontab» панели управления аккаунтом или при подключении по SSH.

Рекомендуем использовать какой-то один способ добавления заданий (либо панель, либо SSH), так как при добавлении нового задания через Crontab в панели управления, те задачи, которые ранее были созданы по SSH, будут удалены.

Обратите внимание! Версия PHP-CLI по умолчанию, из-под которой выполнялись скрипты на серверах виртуального хостинга, была изменена с 5.3 на 7.1. Если вы столкнулись с проблемами в работе настроенных cron-задач, необходимо отредактировать задачу, выбрав в пункте «Исполнитель» нужную версию.

Crontab в панели управления

Для создания задания cron:

1. Перейдите в раздел Crontab.

2. Нажмите на ссылку «Добавить новую задачу».

3. В появившейся форме «Новая задача cron» введите данные:

Название задачи (например, «test task»).

Путь до файла. Нажмите на значок дерева каталогов для его отображения и выберите заранее загруженный на аккаунт файл, который будет выполняться. Также можно ввести абсолютный путь до файла, например: /test.php или /home/u/username/test.php, если файл находится в домашней директории вашего аккаунта. Тип файла, который вы указываете в данном пункте, должен совпадать с установкой в предыдущем пункте; в противном случае с запуском задачи могут возникнуть проблемы.

Периодичность (выберите период выполнения задачи):

Например, для выполнения задачи в 8, 12 и 16 часов необходимо указать часы через запятую: 8,12,16. Для выполнения задачи каждые 5 минут необходимо указать: */5.


4. Нажмите «Создать задачу».

Настройка cron по SSH

Вы также можете запускать задачи по расписанию при подключении к серверу по SSH.

Просмотреть список существующих заданий cron можно командой:

Для добавления или редактирования заданий выполните команду:

Откроется редактор, в котором вы можете указывать необходимые задания.

После ввода последней команды в редакторе (даже если она всего одна) необходимо нажать Enter для перевода строки и только после этого сохранять изменения.

Для сохранения изменений нажмите F2, либо F10 для выхода и подтверждения/отмены изменений.

Если данные были введены корректно, в терминале будет вывод:

Периодичность выполнения задания

Периодичность задается в пяти последовательных полях: минута, час, день, месяц, день недели.

Особенности указания параметров:

Формат настройки (на примере минут):

Примеры настройки:

Отслеживание ошибок

Если скрипт выполняется некорректно, для диагностики проблемы вы можете включить получение ошибок на почтовый адрес администратора, указав его в строке MAILTO при подключении по SSH или в соответствующем пункте в разделе «Crontab»:

Примечания к работе с cron

Например, чтобы запустить скрипт script.php из-под версии PHP 7.1, необходимо указать:

Читайте также:  Настройка sound blaster z series

2. При указании пути к интерпретатору версию php можно прописывать как с точкой, так и без нее: например, записи /opt/php5.6/bin/php и /opt/php56/bin/php равнозначны.

3. Если в задаче запускается скрипт, требующий переменные веб-сервера, запуск напрямую через PHP-интерпретатор приводит к ошибкам. Поэтому в случае, когда вы используете скрипт, работающий при запуске через адресную строку браузера, необходимо выбирать тип файла «HTTP-запрос» и указывать URL для запроса аналогично тому, как он указывается в адресной строке, например:

Со стороны специалистов поддержки Timeweb не оказываются консультации по исправлению кода скриптов для задач cron.

Источник

ИТ База знаний

Полезно

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Навигация

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Популярное и похожее

15 примеров команды PING для диагностики сети

Руководство по команде grep в Linux

15 примеров CURL в Linux

Open – source OS: 3 отличия Linux от OpenBSD

Мониторинг пропускной способности и скорости сети в Linux

Как исправить ошибку SSH Connection Refused

11 утилит сканирования Linux серверов на уязвимости и вредоносы

Snom D120

Еженедельный дайджест

Время планировать задачи

Например, вы можете установить задание cron для автоматизации повторяющихся задач, таких как резервное копирование баз данных или данных, обновление системы последними обновлениями безопасности, проверка использования дискового пространства, отправка электронных писем, перезагрузка сервера и так далее. В некоторых приложениях, таких как Drupal или Magento, для выполнения определенных задач требуются задания cron.

Задания cron могут быть запланированы по минуте, часу, дню месяца, месяцу, дню недели или любой их комбинации.

Что такое файл Crontab

Crontab (таблица cron) представляет собой текстовый файл, который определяет расписание заданий cron. Существует два типа файлов crontab. Общесистемные файлы crontab и отдельные пользовательские файлы crontab.

/etc/crontab и файлы в каталоге /etc/cron.d являются общесистемными файлами crontab, которые могут редактировать только системные администраторы.

В большинстве дистрибутивов Linux вы также можете помещать скрипты в каталоги /etc/cron. , и скрипты будут выполняться каждый час/день/неделю/месяц.

Синтаксис Crontab и операторы

Каждая строка в пользовательском файле crontab содержит шесть полей, разделенных пробелом, за которым следует команда для запуска.

Первые пять полей могут содержать одно или несколько значений, разделенных запятой или диапазон значений, разделенных дефисом.

Общесистемные файлы Crontab

Предопределенные макросы

Существует несколько специальных макросов расписания Cron, используемых для определения общих интервалов. Вы можете использовать эти ярлыки вместо указания даты в пять столбцов.

Читайте также:  Настройка телевизора самсунг старого поколения

Команда Crontab

Команда crontab позволяет установить или открыть файл crontab для редактирования. Вы можете использовать команду crontab для просмотра, добавления, удаления или изменения заданий cron, используя следующие параметры:

Переменные Crontab

Демон cron автоматически устанавливает несколько переменных окружения.

Ограничения Crontab

Примеры Cron заданий

Ниже приведены некоторые примеры заданий cron, которые покажут вам, как запланировать выполнение задачи на разные периоды времени.

Полезно?

Почему?

😪 Мы тщательно прорабатываем каждый фидбек и отвечаем по итогам анализа. Напишите, пожалуйста, как мы сможем улучшить эту статью.

😍 Полезные IT – статьи от экспертов раз в неделю у вас в почте. Укажите свою дату рождения и мы не забудем поздравить вас.

Источник

ssh по cron

Можно же посмотреть все переменные, запустив env из под крона и руками.
К серверу хотя бы коннект есть из крона, или с авторизацией по ключам облом происходит?

набери в консоли env и смотри.
или проблема с запуском в кроне? там надо будет перенаправить вывод env в файл и дождаться срабатывания.
0 * * * * env > /tmp/environment.txt
и в начале следующего часа прочитаешь всё в файле

А тебя не учили в системных скриптах полные пути писать?

PS: еще иногда есть такие директории, как /etc/cron.daily

PPS: еще советую подумать от какого пользователя запускается этот ssh.

поставь переменные в скипте как надо.

а crontab прописывай командой

от того же юзера, что запускать должен.

и пустую строку в конце

опять пустой файл появился и всё (

в etc /environment так вот прописано:

опять пустой файл появился и всё

так вот в крон записал : 3 1 * * * /home/metko/backup.sh >> /home/metko/cron.log 2>&1 В логе такое вот появилось: Permission denied, please try again. Permission denied, please try again. Permission denied (publickey,password). Backup of database morgusha is finished

Pseudo-terminal will not be allocated because stdin is not a terminal. Permission denied, please try again. Permission denied, please try again. Permission denied (publickey,password). Backup of database morgusha is finished

У тебя ssh по ключу заходит, и ключ, видимо, не доступен.

если ты запускаешь script вручную, ты ведь не вводишь пароль сервера (юзера morgusha на сервере morgusha.ru)?

Используй теги
[code]

иначе невозможно читать кашу твоих сообщений

Я тебе это и сказал. На ключах пароль есть или нет? Сеансовый ssh-agent может предоставлять тебе уже распароленный rsa-key, который не доступен из под cron’a

Читайте также:  Настройка локальной сети звезда

и так тоже не выходит (

я вообще ничего не понимаю ( если ставлю sudo то не знает команду eval

Сделай уж сразу ключи без пароля и не морочь людям голову.

ну подумай чуть-чуть. Если cron не root’овый, а юзерский, то не надо класть скрипт add-ssh-pass в /root

пароль — такая штука, которая подтверждает, что ТЫ за компьютером. Используй ssh-keygen для генерации нового ключа БЕЗ пароля.

переменные прописывай в самом скрипте так

/.ssh/example_rsa ssh morgusha@morgusha.ru

Это у тебя только тут два раза ssh или в реальном скрипте тоже?

тут СВОЁ имя писать надо, а НЕ username.

смени пароль! И не публикуй его больше.

а так вроде всё верно.

всё ты правильно делаешь.

А вообще теперь мне надо для каждого сервера делать отдельный rsa ключ

можно один ключ на все сервера делать. Это сам думай как оно лучше.

просто в скрипте после одного бэкапа делать разрыв связи

он сам делается. Ещё код ошибки надо проверять, он ==0 если ОК.

устанавливать новое соединение используя другой ключ

/.ssh/config, и там задай имена и ключи для всех своих серверов. В скрипте этого не нужно делать, там только имя надо.

Кроме того желательно и имя/пароль к базе тоже хранить возле этой базы (всё равно, если сломают тот сервер, то базу всё равно сольют), а локально надо просто скрипт на том сервере запускать, например так:

к удалённой СУБД по ссш? А зачем? Для репликации mysql я использовал ssl/tls (сертификат можно и самому подписать, ведь подключаться будут только ваши сервера)

ну а запросы может и локальный код обработать. Или у вас там всё так серьёзно, что логику сервера вы на отдельную железку уже выносите, а СУБД на другую? Тогда извините, я не в курсе.

-C Requests compression of all data (including stdin, stdout, stderr, and data for forwarded X11 and TCP connections). The compression algorithm is the same used by gzip(1), and the «level» can be controlled by the CompressionLevel option for protocol version 1. Compression is desirable on modem lines and other slow connections, but will only slow down things on fast networks. The default value can be set on a host-by-host basis in the configuration files; see the Compression option.

конечно надо проверить, что сервер тоже поддерживает компрессию (gnu sshd давно умеет, но я не помню, включено-ли оно по дефолту)

Источник