WebDAV обеспечит то, чего Вы требуете. Apache + mod_dav является всем, в чем Вы нуждаетесь за счет 0$. Посмотрите, например: http://karol.miaskiewicz.com/?p=398
Вы можете использовать следующий сценарий:
#!/bin/bash
failsafe=`w3m -dump_source http://example.com/firewall/config/failsafe`
if [ "$failsafe" -eq "1" ] ; then
/usr/firewall-scripts/failsafe.fw
elif [ "$failsafe" -eq "2" ] ; then
/usr/firewall-scripts/failsafe2.fw
elif [ "$failsafe" -eq "0" ] ; then
/usr/firewall-scripts/normal.fw
elif [ "$failsafe" -eq "-1" ] ; then
/usr/firewall-scripts/extra-secure.fw
fi
Вам нужно убедиться, что страница возвращает одно из ожидаемых значений, чтобы получить правильные результаты.
Вышесказанное является ответом на ваш вопрос о сценарии оболочки, но я думаю, что было бы неплохо попробовать использовать решение для управления конфигурацией, например puppet . Агент марионетки можно запускать для периодического получения конфигурации от хозяина марионетки. Итак, когда вы закончили настройку марионетки, вы можете просто отбросить еще один файл правил брандмауэра и подождать некоторое время, чтобы его запустил агент марионетки на удаленном компьютере.
#!/bin/bash
# (or whatever the path to bash is, find out from 'which bash'
STATE=$(wget -O - http://example.com/firewall/config/failsafe)
case $STATE in
-1)
/usr/firewall-scripts/extra-secure.fw
;;
0)
/usr/firewall-scripts/normal.fw
;;
1)
/usr/firewall-scripts/failsafe.fw
;;
2)
/usr/firewall-scripts/failsafe2.fw
;;
*)
echo "unexpected failsafe state"
exit 1
;;
esac
exit 0
Если вы используете
FAILSAFE=$(wget -O - http://example.com/firewall/config/failsafe)
, то содержимое удаленного файла будет сохранено в переменной $ FAILSAFE.
Затем вы можете использовать $ FAILSAFE в своих сравнениях, например,
#!/bin/bash
FAILSAFE=$(wget -O - http://example.com/firewall/config/failsafe 2> /dev/null)
if [ "$FAILSAFE" -eq "1" ]
then
echo "FAILSAFE = $FAILSAFE"
elif [ "$FAILSAFE" -eq "2" ]
then
echo "FAILSAFE = $FAILSAFE"
elif [ "$FAILSAFE" -eq "-1" ]
then
echo "FAILSAFE = $FAILSAFE"
fi