---
title: Настройка cron-задачи (чтобы TSync всё делал вовремя)
description: Понятное руководство по единственной фоновой задаче, благодаря которой TSync рассылает напоминания, создаёт повторяющиеся счета, импортирует лиды из почты и запускает автоматизации по расписанию.
product: TSync Intelligence 11.3.6
language: ru
canonical: https://docs.tsync.pro/ru/setup-cron-job/
source: https://docs.tsync.pro/llms.txt
---

# Настройка cron-задачи

**Что это такое:** небольшое «сердцебиение», которое вы настраиваете один раз, чтобы TSync мог сам выполнять задачи по расписанию — даже когда никто не вошёл в систему. Представьте, что вы заводите часы: как только они начинают тикать, TSync тихо берёт на себя рутинную работу в фоне каждую минуту.

**Почему это важно:** без этого «сердцебиения» несколько удобных функций просто никогда не сработают. Если напоминания не отправляются, а повторяющиеся счета не появляются — почти всегда причина именно в этом.

Вот что перестаёт работать, когда «сердцебиение» отсутствует:

- Повторяющиеся счета не создаются автоматически
- Напоминания (о просроченном счёте, о задаче со сроком, об истекающем договоре) не отправляются
- Импорт лидов из почты не подхватывает новые письма
- Автоматическое резервное копирование не запускается
- Уведомления о подписках по почте не уходят

Поэтому настройка этого — **обязательный шаг** для полноценно работающей системы. Хорошая новость: вы делаете это один раз и потом забываете.

## Единственная команда, которую нужно выполнять TSync

Это инструкция, которую ваш сервер будет запускать по таймеру. Она говорит серверу «запусти фоновый скрипт TSync»:

```
php -q /full/path/to/tsyncerp/pipe.php cron
```

Чтобы заполнить пропуски, вам понадобится узнать настоящее расположение двух вещей:

- **Где установлен TSync** — замените `/full/path/to/tsyncerp/` на вашу реальную папку.
- **Где находится PHP** — большинство серверов понимают просто `php`, но для надёжности используйте полный путь. Эта маленькая команда покажет его:

```bash
which php       # обычно выводит что-то вроде /usr/bin/php
which php8.1    # на некоторых серверах он назван с версией
```

**Как часто?** Идеально — раз **в минуту**: так напоминания и счета появляются практически мгновенно.

Выберите ниже раздел, который подходит вашему хостингу. Нужен только один.

## На Linux (cPanel, Plesk или собственный сервер)

### Простой способ (панель cPanel)

Если хостинг даёт вам cPanel — это самый лёгкий путь, никаких команд набирать не нужно:

1. В cPanel откройте **Cron Jobs** (в разделе «Дополнительно» / Advanced).
2. В блоке **Common Settings** выберите **Once per minute (* * * * *)** (раз в минуту).
3. В поле **Command** вставьте (со своим реальным путём):
   ```
   /usr/bin/php -q /home/USERNAME/public_html/pipe.php cron
   ```
4. Нажмите **Add New Cron Job**. Готово.

### Способ для Plesk

1. В Plesk откройте свой сайт и перейдите в **Запланированные задачи** (Scheduled Tasks).
2. Нажмите **Add Task** → **Run a command**.
3. В поле **Command** введите (со своим реальным путём):
   `php /var/www/vhosts/your-domain/httpdocs/pipe.php cron`
4. Задайте **Run** в формате Cron как `* * * * *` (это код для «каждую минуту»).
5. Нажмите **OK**.

### Способ через командную строку (с помощью `crontab`)

Если вам комфортно подключаться к серверу по SSH, это сработает на любой Linux-машине. Откройте свой личный список запланированных задач:

```bash
crontab -e
```

Добавьте эту единственную строку — она означает «каждую минуту тихо запускать фоновый скрипт TSync»:

```cron
* * * * * /usr/bin/php -q /var/www/tsyncerp/pipe.php cron > /dev/null 2>&1
```

(Часть `> /dev/null 2>&1` нужна лишь для того, чтобы сервер не присылал вам письмо с выводом каждую минуту.)

Сохраните и выйдите. Если ваш редактор — `vim`, наберите `:wq`; если `nano` — нажмите `Ctrl+O`, `Enter`, затем `Ctrl+X`.

Чтобы перепроверить, что строка сохранилась:

```bash
crontab -l    # выводит список ваших запланированных задач
```

## На Windows Server (Планировщик заданий)

В Windows есть встроенный инструмент **Планировщик заданий** (Task Scheduler) для задач по расписанию:

1. Откройте **Планировщик заданий**.
2. Выберите **Создать простую задачу** и назовите её, например, «TSync cron».
3. В качестве **триггера** выберите `Ежедневно`, затем настройте повтор каждую `1 минуту`, бессрочно.
4. В качестве **действия** выберите **Запустить программу** и заполните:
   - **Программа**: `C:\php\php.exe` (там, где у вас установлен PHP)
   - **Аргументы**: `-q "C:\inetpub\wwwroot\tsyncerp\pipe.php" cron`
   - **Рабочая папка (Start in)**: `C:\inetpub\wwwroot\tsyncerp\`
5. Нажмите «Готово».

## Нет доступа к командной строке? Используйте веб-таймер

Если ваш хостинг не даёт SSH, но предлагает «HTTP cron» (таймер, который заходит на веб-адрес), вы можете направить его на cron-адрес TSync:

```cron
* * * * * wget -q -O /dev/null "https://your-domain.com/cron"
```

Небольшое предупреждение: этот вариант **немного менее приватный**, потому что любой, кто знает этот веб-адрес, может запустить задачу извне. Если есть выбор, способы с командной строкой выше — более безопасный вариант.

## Проверьте, что всё действительно работает

Три простых способа убедиться, что «сердцебиение» тикает:

### 1. Запустите вручную один раз

Это запустит фоновый скрипт ровно один раз, прямо сейчас, чтобы вы увидели, всё ли в порядке:

```bash
php /var/www/tsyncerp/pipe.php cron
```

Нет ошибок — значит всё хорошо. Если же вы увидели сообщение, вот что оно означает простыми словами:

- `Could not open input file` → путь к папке в команде неверный — перепроверьте его.
- `No such file` для подключаемых файлов → проблема с правами доступа к папке блокирует доступ.
- `Database error` → скрипт не может достучаться до базы данных из командной строки (встречается редко).

### 2. Загляните в сам TSync

Перейдите в **Настройки → Settings → System/Server Info**. Там показано время, когда cron запускался в последний раз. Если это было **менее 5 минут назад** — ваше «сердцебиение» здорово.

### 3. Загляните в журнал cron сервера (необязательно)

Если хотите получить подтверждение, что сервер запускает задачу:

```bash
# На Linux:
grep CRON /var/log/syslog | tail -20
```

## Если что-то идёт не так

### Вообще ничего не запускается

- Выполните `crontab -l` — строка действительно на месте?
- Используйте **полный путь** к PHP (`/usr/bin/php`), а не просто `php`. На этом спотыкаются многие.
- Убедитесь, что у учётной записи, запускающей задачу, есть право запускать PHP.

### Запускается, но ничего не происходит

- Убедитесь, что база данных доступна из командной строки.
- Проверьте время «последнего запуска cron» в разделе **Настройки → Settings** — обновляется ли оно.

### Сообщение «Memory exhausted»

Задаче не хватило рабочей памяти. Дайте ей больше простора в файле `php.ini`:

```ini
memory_limit = 512M
```

(Учтите: командная строка иногда использует другой `php.ini`, нежели ваш сайт — убедитесь, что у обоих стоит щедрый лимит.)

### Письма по-прежнему не отправляются, хотя cron работает

Это указывает на настройку почты, а не на cron:

- Проверьте в **Настройки → Settings → Email**, что данные исходящей почты (SMTP) заполнены.
- Отправьте тестовое письмо с того же экрана.

## Более редкое расписание (только если хостинг вынуждает)

Некоторые бюджетные хостинги не дают запускать задачу каждую минуту. Тогда можно запускать её каждые 5 минут — напоминания и счета будут появляться лишь чуть менее мгновенно:

```cron
*/5 * * * * /usr/bin/php /var/www/tsyncerp/pipe.php cron > /dev/null 2>&1
```

Для большинства установок раз в минуту — более комфортный вариант.

## Смотрите также

- [Установка и первая настройка](quick-installation-getting-started-tutorial.md)
- [Нужна помощь? Свяжитесь с поддержкой](support.md)
