Я пытаюсь автоматизировать файл Node.js для запуска по расписанию. Но я не могу заставить его работать.

Я использую пользователя root.

Это путь к местоположению файла из входа в систему: nodejs_projects/amazon_search_v2

Вот вывод pwd из места входа:

root@project:~# pwd
/root

И это скрипт, который я добавляю в crontab:

0 4,12,20 * * * node nodejs_projects/amazon_search_v2/searchItemsApi.js  >/dev/null 2>&1

Что мне здесь не хватает?

0
yoni 4 Окт 2020 в 10:24
1
Вы получаете какие-либо ошибки от cron, когда он пытается выполнить вашу работу? Об ошибках обычно сообщают по электронной почте владельцу задания. Каковы другие симптомы того, что работа не работает?
 – 
Kusalananda
4 Окт 2020 в 10:35
Просто ничего не происходит, никаких ошибок я не вижу. Я не уверен, что настроена электронная почта, это новая цифровая машина с каплями океана.
 – 
yoni
4 Окт 2020 в 10:42

3 ответа

Это сработало для меня:

* 0,8,16 * * * cd ~/nodejs_projects/amazon_search_v2/ && /usr/bin/node searchItemsApi.js >/dev/null 2>&1

Как описано здесь: Ссылка

У Кертиса Сяо ответ. Использование which node для поиска пути к исполняемому файлу узла и cd для доступа к папке с файлами и предотвращения проблем с относительным путем.

1
yoni 4 Окт 2020 в 12:46

Я считаю, что вам нужен полный путь. я бы попробовал так реализовать

/root/nodejs_projects/amazon_search_v2/searchItemsApi.js

Вы также должны указать полный путь к node.

0
Greenonline 3 Ноя 2021 в 11:24
1
Существует еще один путь, связанный с выполнением задания, и это путь к исполняемому файлу node. Кроме того, мы не знаем, в какой crontab пользователь добавил задание (личный crontab пользователя root или системный crontab, использующий другой формат).
 – 
Kusalananda
4 Окт 2020 в 10:36
Я использую логин пользователя root, а затем crontab -e для редактирования файла cron. поэтому я думаю, что это личный crontab пользователя root.
 – 
yoni
4 Окт 2020 в 10:40

Если вы используете Ubuntu, просто укажите путь к узлу и путь к скрипту, который будет выполняться следующим образом:

* 0,8,16 * * * /bin/node /path/to/script/to/execute.js

Вот и все.

0
Nicholas Mberev 3 Ноя 2021 в 20:33
Обунту..? Ubuntu для электронных книг?
 – 
Greenonline
3 Ноя 2021 в 07:12