Автор Тема: Перезеапуск squid через веб-интерфейс [решено]  (Прочитано 3495 раз)

Оффлайн AlexGlad

  • Участник
  • *
  • Сообщений: 8
Доброго всем времени суток!

На сервере в школе стоит Альт Линукс 5.0.2 Школьный сервер.
Доступ в интернет через squid.
Часто возникает необходимость включать/отключать доступ в инет в классе.
На сервере настроен Apache с CGI-скриптами.
Написал веб-морду для управления подключением к интернет: файл inet.jpg во вложении.
в скрипте вношу изменения в файл squid.conf, могу проверить статус squid.
Спойлер
#!/bin/bash

echo Content-type: text/html

echo

echo ' <HTML> <HEAD> '

echo '<META http-equiv="content-type" content="text/html; charset=utf-8">'

echo '<meta http-equiv="refresh" content="30;url=proba">'

echo '<title>Управление подключением к интернету</title>'


echo '</HEAD><BODY>'
echo '<HR>'
echo '<H2><center>Управление подключением к интернету</H2><form>'

echo '<center><table border=1><th>Объект</th><th>Состояние</th>'

echo ' <th>Действие</th>'

echo '<tr align=center><td>Классы</td><td><font color="green">включено!</font></td><td>'

echo '<form>'
echo '<input type=submit name=clas_stop value="OFF"><input type=submit name=clas_start value="ON"></form></td></tr>'

echo '</table><br><hr></center>'

echo '</form>'

 if [ $QUERY_STRING = "clas_start=ON" ] ;
  then
    echo "`sed 's/http_access deny !white_one our_users/http_access deny !white_url our_users/' /var/www/html/22/squid.conf`">/var/www/html/22/squid.conf
 fi
 
 if [ $QUERY_STRING = "clas_stop=OFF" ] ;
  then
    echo "`sed 's/http_access deny !white_url our_users/http_access deny !white_one our_users/' /var/www/html/22/squid.conf`">/var/www/html/22/squid.conf
 fi

echo "`/etc/rc.d/init.d/squid status`"

buf="http_access deny !white_one our_users"
buf2="http_access deny !white_url our_users"

file1="/var/www/html/22/squid.conf"

  if grep -q "$buf" "$file1";
  then
   echo "закрыто"
  fi
 if grep -q "$buf2" "$file1";
  then
   echo "белый список"
  fi

echo '<hr>'
echo '</body></html>'
но вот как выполнить команду service squid restart или service squid reload из CGI скрипта?
Уже перепробывал разные варианты
echo "`/etc/rc.d/init.d/squid restart`"
sudo service squid restart
но ничего не выходит..
Пытался разобраться с правами доступа на папки/файлы, группами пользователей. Но какие файлы смотреть уже не знаю...
Подскажите что нужно, чтобы перезапустить squid? Может у кого пример есть.
Помогите плиз..



« Последнее редактирование: 05.10.2013 08:39:53 от sb »

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
А из html-го альтератора, разве нельзя?

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 168
    • Домашняя страница
А из html-го альтератора, разве нельзя?
Можно в том же alterator-services
Андрей Черепанов (cas@)

Оффлайн AlexGlad

  • Участник
  • *
  • Сообщений: 8
А из html-го альтератора, разве нельзя?
Можно в том же alterator-services

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

Пытался найти как перезапуск в альтераторе работает, но не нашел функцию в файлах альтератора.
« Последнее редактирование: 30.09.2013 19:01:15 от AlexGlad »

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 6 046
А из html-го альтератора, разве нельзя?
Можно в том же alterator-services
Делаю интерфейс для коллег, которых в альтератор пускать опасно.

Как понимаю не хватает прав...
Я бы не давал скрипту права.
Минутная задержка не будет парить?
Тогда пусть скрипт создает файл с "+" для запуска или с "-" для остановки внутри, а в крон установить скрипт читающий раз в минуту этот файл и в зависимости от содержания стартует или тормозит :)

echo +>/var/www/html/22/onoff.txt
echo ->/var/www/html/22/onoff.txt


В крон
#!/bin/sh

FILE="/var/www/html/22/onoff.txt"

echo $I

if [ `cat $FILE| grep -c "+"` -eq  1 ]; then
    echo "i find plus !"
fi

if [ `cat $FILE| grep -c "-"` -eq  1 ]; then
    echo "i find minus !"
fi

« Последнее редактирование: 30.09.2013 19:37:26 от YYY »

Оффлайн AlexGlad

  • Участник
  • *
  • Сообщений: 8
Тогда пусть скрипт создает файл с "+" для запуска или с "-" для остановки внутри, а в крон установить скрипт читающий раз в минуту этот файл и в зависимости от содержания стартует или тормозит :)

echo +>/var/www/html/22/onoff.txt
echo ->/var/www/html/22/onoff.txt


В крон

Спасибо!
В крон немного другой скрипт добавил, но принцип тот же. Всё работает.