Замена расписания Cronjob с использованием SED

Достаточно простой способ - вызвать wol вручную с вашего маршрутизатора. Хотя вы можете сделать это при получении пакета, на практике это может работать не так хорошо из-за большой задержки между моментом отправки пакета WoL и моментом, когда целевая машина готова к обработке. Время ожидания приложения может истечь до того, как целевая машина проснется.

Фильтр пакетов Linux может передавать пакеты в пользовательское пространство через цель QUEUE , и вы можете писать программы для реагирования на эти пакеты с помощью библиотеки netfilter_queue . Я не знаю ни одной существующей такой программы, которая отправляет пакет WoL или выполняет другую программу (например, / usr / sbin / wol ), но ее нетрудно написать. Знание того, когда это сделать, - еще одна проблема: вы не захотите проходить через все это всякий раз, когда компьютер, который, возможно, нужно разбудить, получает пакет.

Я предпочитаю, чтобы пользователи выполняли некоторые действия вручную, чтобы вызвать отправку пакета WoL. Самый простой способ - назначить на маршрутизаторе специального пользователя со сценарием, вызывающим / usr / sbin / wol в качестве оболочки, и дать SSH-ключи авторизованным пользователям. Более простой способ - запустить веб-сервер на маршрутизаторе - это может быть очень простой сервер, который может запускать сценарии CGI - и запустить его / usr / sbin / wol , когда пользователи посещают страницу и предоставляют принятые реквизиты для входа.

0
14.12.2018, 17:07
2 ответа

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

Звездочка, с другой стороны, имеет особое значение вsed(она означает ноль или более раз). Чтобы соответствовать буквально, он должен быть с обратной косой чертой.

sed 's/9 3 \* \* 3,6/shivam/'
1
28.01.2020, 02:41

Я нашел еще 2 метода: один с помощью python и с помощью команды perl

Питон

>>> a="9 3 * * 3,6"
>>> print re.sub('9 3 \* \* 3,6','shivam',a)
shivam

Перл

@praveen_linux_example ~]# echo "9 3 * * 3,6" | perl -pne 's/9 3 \* \* 3,6/shivam/g'
shivam
0
28.01.2020, 02:41

Теги

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