Как написать однострочную командную строку, которая проверяет время простоя интернета?

Как искать файлы, в которых есть два разных слова? имеет много хороших решений вашей основной проблемы. Чтобы выполнить дополнительное требование для отображения контекста, нам нужно взять только один из этих ответов (, например, ответ Стефана)и добавить к нему немного:

find. -type f -exec grep -q word1 {} ';' -exec grep -q word2 {} ';'  \
                                            -exec grep -A3 -B3 -E -H 'word1|word2' {} +

Часть find. -type f -exec grep -q word1 {} ';' -exec grep -q word2 {} ';'это просто второй ответ Стефана (портативный, но простой )с опцией -lна второйgrep(для списка имен файлов )заменено на-q(для поиска и тихого выхода со статусом ). Затем мы добавляем последний grepдля отображения результатов. -A3и -B3показывают три строки после и три строки перед каждым совпадением; отрегулируйте их на свой вкус. -Eнеобходим для получения расширенного регулярного выражения word1|word2работать без \; -Hзаставляет grepпечатать имя файла, даже если имеется только один файл.

0
20.04.2020, 05:35
2 ответа

Вот один -вкладыш для bash или аналогичных оболочек:

HOST=google.com; while true; do if ping -c 2 $HOST >/dev/null; then :; else echo "$(date) cannot reach $HOST"; fi; sleep 10; done
1
19.03.2021, 02:27

Используя curlили ping, но я не уверен, почему вы хотите это сделать.

while curl -Lsf google.com >/dev/null || { printf 'Lost connection!' >&2; break; }; do :; done
while ping -c 1 google.com >/dev/null || { printf 'Lost connection!' >&2; break; }; do :; done
1
19.03.2021, 02:27

Теги

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