Страница 1 из 1
Перезагрузка сетевого интерфейса по расписанию
Добавлено: 06 окт 2022, 19:10
Your1ch
Помогите пожалуйста, в линуксоводстве новичок. Нужен рецепт как настроить следующее. Интернет подключен к пк проводом, это Ростелеком pppoe. Ночью в разное время интернет отваливается, в ifconfig интерфейс поднят и есть ip но Пинги на 8.8.8.8 не проходят. Мне очень важно, чтоб комп был в сети все время, перезагрузка сетевого интерфейса помогает. Будьте любезны дайте скрипт проверки сети с периодичностью 5 минут и если пинга нет то перезагрузить сетевой интерфейс. Как этот скрипт выполнять в кроне без моего участия? Дополнительно Как перезагрузить сеть в кроне каждое утро в 7:00? Заранее благодарю.
Перезагрузка сетевого интерфейса по расписанию
Добавлено: 06 окт 2022, 19:33
rogoznik
Код: Выделить всё
#!/bin/bash
TARGET_HOST='google.com'
count=$(ping -c 3 $TARGET_HOST | grep from* | wc -l)
if [ $count -eq 0 ]; then
ip link set интерфейс down
sleep 3
ip link set интерфейс up
fi
интерфейс
заменить на имя своего интерфейса
Посмотреть список интерфейсов
Ну и типа такого задания в cron
Ну и не забыть дать скрипту права на выполнение
На правильность не претендую.
Наверняка есть способ получше и поизящней
Перезагрузка сетевого интерфейса по расписанию
Добавлено: 06 окт 2022, 19:36
Your1ch
rogoznik, вот с правами как то не сталкивался. Подскажите как выдать права?
Перезагрузка сетевого интерфейса по расписанию
Добавлено: 06 окт 2022, 19:37
rogoznik
Перезагрузка сетевого интерфейса по расписанию
Добавлено: 06 окт 2022, 19:41
Your1ch
rogoznik, спасибо, до пк доберусь только завтра. Проверю, отпишусь. Еще вопрос как убедиться что скрипт выполняется? Может логи где то есть
Перезагрузка сетевого интерфейса по расписанию
Добавлено: 06 окт 2022, 19:44
rogoznik
Your1ch, прям в скрипте сделай запись в файл и проверяй
Перезагрузка сетевого интерфейса по расписанию
Добавлено: 06 окт 2022, 20:34
Your1ch
rogoznik, я не знаю как. Спасибо еще раз.
Перезагрузка сетевого интерфейса по расписанию
Добавлено: 06 окт 2022, 21:35
madesta
А под обычными правами в cron сработает? У меня как-то была проблема отваливающейся связи с роутером и лечившейся перезапуском интерфейса (down и up), но отрабатывалось это у меня только через sudo, в результате чего вынужден был добавить соответствующую запись в /etc/sudoers.
Перезагрузка сетевого интерфейса по расписанию
Добавлено: 06 окт 2022, 21:58
Your1ch
madesta, кстати хорошее замечание, повторюсь я новичок в этом деле. Команды service network restart выполняются от Рута (не знаю чем принципиально отличается от up down). chmod +x script_name это права на исполнение, но не от суперпользователя.
Думаю что если залогиниться от рута в консоли, а потом создать задание крону должно выполнять от Рута.
sudo crontab e
И еще
rogoznik писал(а): ↑06 окт 2022, 19:33
ip link set интерфейс down
Разве не ip link set
dev enp0s3 down?
Перезагрузка сетевого интерфейса по расписанию
Добавлено: 07 окт 2022, 07:03
rogoznik
Your1ch писал(а): ↑06 окт 2022, 21:58
Разве не ip link set dev enp0s3 down?
Нет.
Ты хоть бы попробовал саму команду, а потом спрашивал
Перезагрузка сетевого интерфейса по расписанию
Добавлено: 07 окт 2022, 09:47
Your1ch
rogoznik, в общем добрался до пк. доустановил утилиту pppoeconf и удалил соединение в network manager. Настроил соединение через pppoeconf. У этой утилиты есть команды для установки соединения "pon dsl-provider" и завершать с помощью "poff".
скрипт создал такой: wd.sh
Код: Выделить всё
#!/bin/bash
TARGET_HOST='8.8.8.8'
count=$(ping -c 3 $TARGET_HOST | grep from* | wc -l)
if [ $count -eq 0 ]; then
poff dsl-provider
sleep 10
pon dsl-provider
fi
и второй скрипт чтоб каждое утро в 7:00 перезагружал nr.sh
Код: Выделить всё
#!/bin/bash
poff dsl-provider
sleep 10
pon dsl-provider
засунул в крон под рутом,
*/5 * * * * /root/scripts/wd.sh
0 7 * * * /root/scripts/nr.sh
вроде бы работает.
не могу найти логи крона, может подскажете как организовать логгирование?
Перезагрузка сетевого интерфейса по расписанию
Добавлено: 07 окт 2022, 09:59
rogoznik
Your1ch, прям в скрипте в нужном месте организуй запись в файл
например так
Код: Выделить всё
echo 'какой-то текст' >> /var/log/file_name.log
Перезагрузка сетевого интерфейса по расписанию
Добавлено: 07 окт 2022, 10:41
Your1ch
Всем большое спасибо, буду тестировать.
Перезагрузка сетевого интерфейса по расписанию
Добавлено: 11 окт 2022, 07:34
Your1ch
Скрипты работают, всем еще раз большое спасибо.