Задать вопрос

Почему не работает скрипт через cron (sh->php)?

Вот так скрипт работает нормально
crontab -e
*/1 * * * * /usr/bin/php  /var/www/site/get_data.php >/dev/null 2>&1

(Скрипт пишет данные в БД.)

Но потребовалось запускать скрипт чаще, чем раз в минуту.
Посоветовали делать через sh
crontab -e
*/3 * * * * /var/www/site/get_data.sh >/dev/null 2>&1


get_data.sh
#!/bin/bash
for i in {1..10}
do
/usr/bin/php  /var/www/site/get_data.php >/dev/null 2>&1
sleep 10
done


И скрипт не работает. Данные в БД не появляются.

Почему не работает скрипт?
  • Вопрос задан
  • 425 просмотров
Подписаться 2 Простой 5 комментариев
Решения вопроса 1
Судя по комментарию: Почему не работает скрипт через cron (sh->php)?

Проблема в том, что вы сохранили файл в Windows.
По-хорошему почитать про crlf и lf.
Решение проблемы:
Скрипт небольшой, можете руками переписать сразу на линуксе.(например в nano)

Либо попробуйте воспользоваться решением отсюда:
stackoverflow

awk '{ sub("\r$", ""); print }' get_data.sh > get_data2.sh
mv get_data2.sh get_data.sh
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Radjah
@Radjah
Вместо записи выхлопа в null сделай дозапись в файл. Еще cron может что-то в системные логи брякнуть.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы