Я извлекаю большой объем данных из Интернета с помощью crontab на экземпляре AWS EC2. Скрипт очищает тысячи веб-страниц и печатает " webpageID done" после каждой. Поскольку я планирую запуск сценария, а затем выхожу из экземпляра, я сохраняю вывод stdout в файл журнала, используя следующую команду в crontab:
0 19 26 10 * /home/ec2-user/scrape.sh &>> /home/ec2-user/output.log
Сценарий аварийно завершил работу после очистки 10 000 веб-страниц, но по какой-то причине вывод .log прекратил печатать « webpageID done» после 8000 веб-страниц. Последние несколько строк в output.log выглядят примерно так:
7998: webpage 012345 done
7999: webpage 012346 done
8000: webpage 012347 d
Итак, он прекратил печать на полпути, но скрипт продолжал очищать еще 2000 веб-страниц. Почему это могло происходить? Есть ли лучший способ сохранить ваши выходные данные при выходе из экземпляра EC2 (то есть без открытия канала SSH)?
Зафиксированный Ваш crontab
0 19 26 10 * /home/ec2-user/scrape.sh &>> /home/ec2-user/output.log 2>&1
кроме того, знать, что, если Ваш сценарий находится в Bash
затем, не забывают устанавливать его в Вашем cron
(, ЕСЛИ Вы используете cron
)
SHELL=/bin/bash