В журнале «Системный администратор» 2005 год за февраль наткнулся на статью про использование UNIX-утилиты dialog с помощью которой можно делать ASCII-графические приложения для удобного администрирования. Тот пример который был в журнале у меня не работал, поэтому я его модернизировал и вот выкладываю.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #!/bin/sh dialog --title "Apache interface" --menu " Данный сценарий управляет web-сервером Apache. Выберите действие из предложенных ниже:" 15 50 7 start "Запуск сервера Apache" stop "Останов сервера Apache" restart ""Жесткий" перезапуск" graceful ""Мягкий" перезапуск" configtest "Тест конфигурационного файла" 2>apctl.tmp UCOMMAND=`cat apctl.tmp` if [[ $UCOMMAND != "" ]]; then dialog --title "confirm command" --yesno "Выполнить следующую команду ${UCOMMAND}?" 10 40 if [ $? = 0 ]; then if [ $UCOMMAND = "configtest" ]; then sudo /usr/sbin/apache2ctl -S else sudo /usr/sbin/apache2ctl -k $UCOMMAND fi fi fi rm apctl.tmp |
#!/bin/sh
dialog --title "Apache interface"
--menu "
Данный сценарий управляет web-сервером Apache.
Выберите действие из предложенных ниже:" 15 50 7
start "Запуск сервера Apache"
stop "Останов сервера Apache"
restart ""Жесткий" перезапуск"
graceful ""Мягкий" перезапуск"
configtest "Тест конфигурационного файла" 2>apctl.tmp
UCOMMAND=`cat apctl.tmp`
if [[ $UCOMMAND != "" ]]; then
dialog --title "confirm command"
--yesno "Выполнить следующую команду ${UCOMMAND}?" 10 40
if [ $? = 0 ]; then
if [ $UCOMMAND = "configtest" ]; then
sudo /usr/sbin/apache2ctl -S
else
sudo /usr/sbin/apache2ctl -k $UCOMMAND
fi
fi
fi
rm apctl.tmpНе забываем поменять владельца файла
1 | chown root:root ФАЙЛ |
chown root:root ФАЙЛ
и дать ему SUID и сделать выполняемым
1 2 | chmod 766 ФАЙЛ chmod +S ФАЙЛ |
chmod 766 ФАЙЛ chmod +S ФАЙЛ
В итоге получаем такую картину:
После выбора нужного пункта появится подтверждение. Нужно нажимать скорее ДА, ты же не делал бы этого если бы был не уверен! Ведь правда?