Page 1 of 6 123 ... LastLast
Results 1 to 15 of 96

Thread: Скрипт перезагрузки роутера

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1

    Post Скрипт перезагрузки роутера

    Здравствуйте!

    Столкнулся с необходимостью выполнять команды reboot и halt из php скрипта. Веб сервер lighttpd и php-fcgi запущены с минимальными правами юзера nobody. Проблема в том, что reboot и halt может запускать только суперпользователь и, поэтому, из php скрипта они не срабатывают. Подскажите, пожалуйста, как элегантым образом решить эту проблему.

  2. #2
    Quote Originally Posted by Andrey_3 View Post
    Здравствуйте!

    Столкнулся с необходимостью выполнять команды reboot и halt из php скрипта. Веб сервер lighttpd и php-fcgi запущены с минимальными правами юзера nobody. Проблема в том, что reboot и halt может запускать только суперпользователь и, поэтому, из php скрипта они не срабатывают. Подскажите, пожалуйста, как элегантым образом решить эту проблему.
    как вариант скрипт создает файл /tmp/reboot
    а крон проверяет есть ли файл и если есть его прибивает и перегружает рутер
    vim имеет два режима - бибикать и все портить (с) не мое

  3. #3
    Quote Originally Posted by angel_il View Post
    как вариант скрипт создает файл /tmp/reboot
    а крон проверяет есть ли файл и если есть его прибивает и перегружает рутер
    Спасибо за интересный вариант. Однако, для быстрого выполнения команд (1-5 сек) придется и проверку наличия /tmp/reboot делать очень часто. Нагрузка на роутер, вероятно, будет большой.

  4. #4
    Join Date
    Aug 2006
    Location
    Moscow, Russia
    Posts
    788
    Quote Originally Posted by angel_il View Post
    как вариант скрипт создает файл /tmp/reboot
    а крон проверяет есть ли файл и если есть его прибивает и перегружает рутер
    Вот для примера 3 варианта реализации:
    • Реализация с помощью крона, интервал проверки минимум 1 минута:
      Code:
      #!/bin/sh
      mkdir -p /var/spool/cron/crontabs
      /usr/sbin/crond
      echo '* * * * * [ -e /tmp/reboot ] && reboot' | /usr/bin/crontab -
    • Реализация с бесконечным циклом в скрипте, интервал проверки минимум 1 секунда:
      Code:
      #!/bin/sh
      (while :; do 
          [ -e /tmp/reboot ] && reboot
          sleep 1
      done) &
    • Реализация на си, интервал проверки минимум 1 секунда:
      Code:
      #include <stdlib.h>
      #include <unistd.h>
      #include <sys/stat.h>
      
      int 
      main(int argc, char *argv[]) 
      {
      	struct stat stats;
      	pid_t pid = fork();
      	if (pid > 0)
      		return 0;
      	if (pid < 0)
      		return 1;
      	for(;;) {
      		if (!stat("/tmp/reboot", &stats)) 
      			system ("reboot");
      		sleep (1);
      	}
      }

  5. #5
    Quote Originally Posted by Mam(O)n View Post
    Вот для примера 3 варианта реализации:
    • Реализация с помощью крона, интервал проверки минимум 1 минута
    • Реализация с бесконечным циклом в скрипте, интервал проверки минимум 1 секунда
    • Реализация на си, интервал проверки минимум 1 секунда:
    Спасибо за предложенные реализации.
    Первый вариант с кроном не подходит, так как слишком велик интервал проверки.
    Исследовал второй вариант на sh. Третий вариант на C пока пробовать не стал, так как под рукой нет компилятора. Зато есть perl, поэтому заменил его аналогичной реализацией:
    Code:
    #!/opt/bin/perl
    use strict;
    defined (my $pid = fork) or die "Can't fork: $!";
    exit 0 unless $pid == 0;
    while(1) {
        exec('reboot') if -e '/tmp/reboot';
        sleep(1);
    }
    Интересно, что судя по показаниям htop, вариант на sh дает пиковую нагрузку на процессор до 2-3%, тогда как для варианта на perl показания htop вообще всегда нулевые. Понятно, что реализация на perl отъедает в 5-6 раз больше пямяти. Теперь буду думать что же выбрать.

  6. #6
    Quote Originally Posted by Andrey_3 View Post
    Подскажите, пожалуйста, как элегантым образом решить эту проблему.
    Поставить и настроить sudo.
    Другой вариант - suid-скрипт или программа.

  7. #7
    Quote Originally Posted by ABATAPA View Post
    Поставить и настроить sudo.
    Другой вариант - suid-скрипт или программа.
    Спасибо за подсказку. В конечном итоге удалось достичь всего желаемого с помощью sudo.

  8. #8

    Plink.exe и батник

    Поделитесь рабочей командой с использованием plink.exe для использования в батнике что-то типа этого
    Code:
    start plink -ssh -batch -l root -pw ***** 192.168.1.11 /opt/etc/init.d/S99rtorrent start
    только так у меня не работает
    WL-700GE,rtorrent,amule, mldonkey, прошивка kfurge
    ВСЕ на выборы !
    Для новичков и ленивых

  9. #9

    Выполнение скрипта перезагрузки из командной строки

    Здравствуйте, возникла потребность в перезагрузке роутера из командной строки.
    В интернете нашел вариант команды используя путти
    plink.exe -v -ssh root@my.router -pw "pass" exec "#reboot"
    при выполнении команды, перезагрузки не происходит.
    Вот то,что пишется в командной строке после выполнения команды

    Microsoft Windows [Version 6.1.7601]
    (c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.

    C:\Users\Andrew>"C:\Users\Andrew\Desktop\перезагру зить роутер.lnk"

    C:\Program Files (x86)\PuTTY>plink.exe -v -ssh root@my.router -pw "pass" e
    xec "#reboot"
    Looking up host "my.router"
    Connecting to 192.168.1.1 port 22
    Server version: SSH-2.0-dropbear_0.52
    We claim version: SSH-2.0-PuTTY_Release_0.60
    Using SSH protocol version 2
    Using Diffie-Hellman with standard group "group1"
    Doing Diffie-Hellman key exchange with hash SHA-1
    Host key fingerprint is:
    ssh-rsa 1040 d0:2c:b3:13:73:72:05:8e:ac:ba:db:46:6f:ed:46:2c
    Initialised AES-256 SDCTR client->server encryption
    Initialised HMAC-SHA1 client->server MAC algorithm
    Initialised AES-256 SDCTR server->client encryption
    Initialised HMAC-SHA1 server->client MAC algorithm
    Using username "root".
    Sent password
    Access granted
    Opened channel for session
    Started a shell/command
    Server sent command exit status 0
    Disconnected: All channels closed

    Помогите разобраться пожалуйста

  10. #10
    а почему имя пользователя root? В асусах же по умолчанию имя пользователя admin.

  11. #11
    Quote Originally Posted by Mashiro-sama View Post
    а почему имя пользователя root? В асусах же по умолчанию имя пользователя admin.
    У меня root и admin одинаково.
    Суть не в этом, имя и пароль правильные.
    WL-700GE,rtorrent,amule, mldonkey, прошивка kfurge
    ВСЕ на выборы !
    Для новичков и ленивых

  12. #12

    Скрипт авто-перезагрузки на прошивке Олега

    Имею WL-500W c последней прошивкой от Олега.
    Корбина + L2TP

    Проблема в том, что через 5-7 дней аптайма рутер виснет намертво.
    Лечится передергиванием питания.

    ВОПРОС:
    Как мне прикрутить к рутеру скрипт автоматической перезагрузки, например раз в 5 дней?
    И чтобы он это помнил после перегруза по питанию?

    Спасибо заранее за помощь

  13. #13
    Join Date
    Feb 2008
    Location
    Dniepropetrovsk, Ukraine
    Posts
    1,527

    Exclamation

    Quote Originally Posted by Dusha View Post
    Имею WL-500W c последней прошивкой от Олега.
    Корбина + L2TP

    Проблема в том, что через 5-7 дней аптайма рутер виснет намертво.
    Лечится передергиванием питания.

    ВОПРОС:
    Как мне прикрутить к рутеру скрипт автоматической перезагрузки, например раз в 5 дней?
    И чтобы он это помнил после перегруза по питанию?

    Спасибо заранее за помощь
    поставьте Crontab (Cron) из репозитория ipkg - планировщик заданий и уже крону говорите когда апускать на роутер на перезагрузку.

  14. #14
    cron (crond) уже есть в прошивке, ставить отдельно не обязательно

  15. #15
    Join Date
    Apr 2008
    Location
    город самоваров и пряников
    Posts
    1,492
    А если запрограммировать кнопку EZ-SETUP на перезагрузку и нажимать её в критических ситуациях?

Page 1 of 6 123 ... LastLast

Similar Threads

  1. Скрипт чтения СМС на 3G модеме (ussd)
    By dlukanidin in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 114
    Last Post: 03-06-2022, 04:48
  2. Установка программ для чайника" (Новая редакция)
    By Rung in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 722
    Last Post: 14-08-2019, 06:04
  3. Скрипт для диагностики Wi-Fi
    By Oleg in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 19
    Last Post: 13-03-2016, 20:29
  4. Replies: 356
    Last Post: 01-01-2013, 22:33
  5. Replies: 33
    Last Post: 09-07-2010, 14:30

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •