Jump to content
omezik

crontab правильная настройка для перезагрузки роутера раз в час

Recommended Posts

Прошу о помощи.

Аппарат GIGA 2 прошивка 2.08 + Entware-3x + cron

Все это делалось для перезагрузки роутера раз в один час (для смены ip адресов)

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/bin:/opt/sbin
MAILTO=""
HOME=/
# ---------- ---------- Default is Empty ---------- ---------- #
*/1 * * * * root /opt/bin/run-parts /opt/etc/cron.1min    
*/5 * * * * root /opt/bin/run-parts /opt/etc/cron.5mins    
01 * * * * root /opt/bin/run-parts /opt/etc/cron.hourly    
02 4 * * * root /opt/bin/run-parts /opt/etc/cron.daily    
22 4 * * 0 root /opt/bin/run-parts /opt/etc/cron.weekly    
42 4 1 * * root /opt/bin/run-parts /opt/etc/cron.monthly
50 22 * * * reboot

 

Команда 50 22 * * * reboot не выполняется может ее нужно как то по другому прописать.

Или какую другую команду для переподключения PPPoE0 подключения.

Пробывал вот так 

50 22 * * * ndmq -p 'interface PPPoE0 down' -P message;

51 22 * * * ndmq -p 'interface PPPoE0 up' -P message

Выполняется только первая команда, а вторая нет. (Впринципе ip не меняет даже если в терменале ssh ввести, просто отключается интернет а потом включается)

 

Share this post


Link to post
Share on other sites
10 часов назад, omezik сказал:

50 22 * * * reboot

Ну, неправильно введено, пропущено имя пользователя, от которого нужно запускать команду. Нужно так (в принципе path задан правильный, но лучше указать полный путь к команде перезагрузки)

50 22 * * * root /opt/sbin/reboot

Также не забудьте сделать в файле /opt/etc/crontab последнюю строку пустой.

Чтобы сделать перезагрузку роутера раз в час (например, в 00:00, 01:00 и так далее) команда будет выглядеть так:

0 */1 * * * root /opt/sbin/reboot

Также файловая система на entware должна быть ext*.

Чтобы отлавливать ошибки cron. можно включить логирование с помощью syslog-ng (см. соответствующую тему на форуме в разделе готовых решений).

Share this post


Link to post
Share on other sites
12 часа назад, omezik сказал:

50 22 * * * ndmq -p 'interface PPPoE0 down' -P message;

51 22 * * * ndmq -p 'interface PPPoE0 up' -P message

Выполняется только первая команда, а вторая нет. (Впринципе ip не меняет даже если в терменале ssh ввести, просто отключается интернет а потом включается)

 

Потому что для PPP-интерфейсов команды up/down не вызывают разрыва линка, они просто опускают работающий интерфейс, сохраняя при этом PPP-соединение.

Вам нужно вызывать interface PPPoE0 no connect / interface PPPoE0 connect, тогда все будет работать как ожидается.

Share this post


Link to post
Share on other sites

Перед редактированием файла crontab делаю следующее в терминале ssh

/opt/etc/init.d/S10cron stop останавливаю службы cron
chmod 600 /opt/etc/crontab применяю права к фаилу (иначе пишит ошибки)
/opt/etc/init.d/S10cron start запускаю службу cron

Пустая строка имеется в конце, cron не выполняет не одну из команд за исключением . interface PPPoE0 no connect а interface PPPoE0 connenct не выполняет.

Может как то можно объединить 2 команды в одну interface PPPoE0 no connect / interface PPPoE0 connenct, по типу interface pppoe0 reboot если писать в каждую строку то первая строка выполняется судя по логам а вторая нет.

Edited by omezik

Share this post


Link to post
Share on other sites

какая файловая система на флешке/диске?

Share this post


Link to post
Share on other sites

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/bin:/opt/sbin
MAILTO=""
HOME=/
# ---------- ---------- Default is Empty ---------- ---------- #
*/1 * * * * root /opt/bin/run-parts /opt/etc/cron.1min    
*/5 * * * * root /opt/bin/run-parts /opt/etc/cron.5mins    
01 * * * * root /opt/bin/run-parts /opt/etc/cron.hourly    
02 4 * * * root /opt/bin/run-parts /opt/etc/cron.daily    
22 4 * * 0 root /opt/bin/run-parts /opt/etc/cron.weekly    
42 4 1 * * root /opt/bin/run-parts /opt/etc/cron.monthly
0 */1 * * * root /opt/sbin/reboot
0 */1 * * * /opt/sbin/reboot
00 0 * * * /opt/sbin/reboot
00 1 * * * /opt/sbin/reboot
00 2 * * * /opt/sbin/reboot
00 3 * * * /opt/sbin/reboot
00 4 * * * /opt/sbin/reboot
00 5 * * * /opt/sbin/reboot
00 6 * * * /opt/sbin/reboot
00 7 * * * /opt/sbin/reboot
00 8 * * * /opt/sbin/reboot
00 9 * * * /opt/sbin/reboot
00 10 * * * /opt/sbin/reboot
00 11 * * * /opt/sbin/reboot
00 12 * * * /opt/sbin/reboot
00 13 * * * /opt/sbin/reboot
00 14 * * * /opt/sbin/reboot
00 15 * * * /opt/sbin/reboot
00 16 * * * /opt/sbin/reboot
00 17 * * * /opt/sbin/reboot
00 18 * * * /opt/sbin/reboot
00 19 * * * /opt/sbin/reboot
00 20 * * * /opt/sbin/reboot
00 21 * * * /opt/sbin/reboot
00 22 * * * /opt/sbin/reboot
00 23 * * * /opt/sbin/reboot
 

Share this post


Link to post
Share on other sites

На зачем такая простыня? :) Одной строчки "0 */1 * * * root /opt/sbin/reboot" достаточно.

А тем у кого нет Entware и пока в startup-config можно писать свои команды, можно просто в startup добавить: system reboot 3600

На всякий случай синтаксис команды для своей прошивки проверьте.

Edited by S_A

Share this post


Link to post
Share on other sites

0 */1 * * * root /opt/sbin/reboot  не работает ни чего не происходит

Мне бы команду просто для переподключения pppoe0 соединения 

Share this post


Link to post
Share on other sites
В 13.11.2016 в 06:10, omezik сказал:

0 */1 * * * root /opt/sbin/reboot  не работает ни чего не происходит

Это я неправильно написал. Нужно так

0 * * * * root /opt/sbin/reboot

 

В 13.11.2016 в 06:10, omezik сказал:

Мне бы команду просто для переподключения pppoe0 соединения 

Команду подсказали выше. Пример выполнения нескольких команд в одной строке в cron каждый час (выполняется команда date ожидается 1 секунда и date выполняется повторно, результат выполнения записывается в файл):

0 * * * * root (/opt/bin/date && sleep 1 && /opt/bin/date) >> /opt/tmp/date.txt

Попробуйте. Если результат для этого примера будет также отрицательный, то лучше настроить логирование entware и смотреть /opt/var/log/message на наличие ошибок.

Предполагаю, что переподключение pppoe каждый час будет выглядеть так:

0 * * * * root /opt/bin/ndmq -p 'interface PPPoE0 no connect' -P message && sleep 5 && /opt/bin/ndmq -p 'interface PPPoE0 connect' -P message

Проверить не могу, т.к. обрублю себе сук, на котором сижу (если что-то пойдет не так), т.к. сижу удаленно.

Но предварительно можно проверить результат в командной строке, выполнив команду:

/opt/bin/ndmq -p 'interface PPPoE0 no connect' -P message && sleep 5 && /opt/bin/ndmq -p 'interface PPPoE0 connect' -P message

А далее уже добавить в cron.

Share this post


Link to post
Share on other sites

"PPPoE0": disabled connection.
Error: Network::Interface::PPPoE: "PPPoE0": discovery interface is not set.

Попробовал через консоль SSH.

Интернет отключился и на этом все в PPPoE0 подключения снялась галочка "с включить" и  Подключаться через  поменялось на любое подключение хотя была через ISP

Share this post


Link to post
Share on other sites
1 час назад, omezik сказал:

Интернет отключился и на этом все

Не могу подсказать. Нужно знать правильную команду на включение/отключение pppoe. Я взял команду из сообщения Le ecureuil. Возможно, в мануале на CLI найдете.

Но ребут в крон, как я написал выше, должен работать.

Share this post


Link to post
Share on other sites
2 часа назад, omezik сказал:

"PPPoE0": disabled connection.
Error: Network::Interface::PPPoE: "PPPoE0": discovery interface is not set.

 

Попробовал через консоль SSH. 


/opt/bin/ndmq -p 'interface PPPoE0 no connect' -P message && sleep 5 && /opt/bin/ndmq -p 'interface PPPoE0 connect' -P message

 

  0
  •  

Интернет отключился и на этом все в PPPoE0 подключения снялась галочка "с включить" и  Подключаться через  поменялось на любое подключение хотя была через ISP

Правильно, потому что если хотите через конкретный интерфейс, нужно указать 
> interface PPPoE0 connect via ISP

Это все есть в CLI-мануале.

Share this post


Link to post
Share on other sites

Дам наводку, так как судя по всему у вас стоит Entware

/opt/bin/ndmq

проще нужно поработать с сервисом который

/usr/sbin/pppd file /var/run/options-PPPoE0

как найти pid или как перегрузить данный сервис - смотрите уже сами, либо воспользоваться так же как и сервис скриптами ip-down и ip-up.
 

killall pppd
/usr/sbin/pppd file /var/run/options-PPPoE0

 

Edited by vasek00

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...