Проблема с синтаксисом команды безголового браузера хрома

Скорее всего, вам стоит обратить внимание на:

total - available

Если это не было одинаковым для всех трех машин, то это может потребовать дальнейшего изучения. То, что вы видите, это просто машина, которая кэширует немного больше дискового ввода-вывода.

0
09.12.2019, 22:17
1 ответ

Код:

cat domains.txt | xargs -I {} -P 4 sh -c timeout 25s chromium-browser --headless --no-sandbox --user-agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537. 36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36' --dump-dom https://{} 2> /dev/null > {}.html

Аргумент sh -cне заключен в кавычки. При правильном цитировании он также внедряет код в скрипт sh -cиз xargs, что является уязвимостью системы безопасности.

Конвейер написан лучше

xargs -I {} -P 4 sh -c '
    timeout 25s chromium-browser \
        --headless --no-sandbox \
        --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537. 36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36" \
        --dump-dom \
        "https://$1" 2>/dev/null >"$1.html"' sh {} <domains.txt

... но обратите внимание, что это по-прежнему записывает в файлы с именами вроде https://ibm.com/.html, если у вас есть эти строки в файле domains.txt(, т.е. в файлы в подкаталогах со странными именами ), и он попытается получить URL-адреса, такие как https://https://ibm.com/.

Я думаю, что намерение состоит в том, чтобы оставить только фактические домены,не полные URL, в файле domains.txt, т.е.

ibm.com
www.linux.org

Лично я предпочел бы гораздо более простое решение, используя curl.

2
28.01.2020, 02:29

Теги

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