В этом примере я пытаюсь дать более яркую концепцию того, что происходит. Немного управляйте сценарием и получите нужный результат.
#!/bin/bash
obtain_level=$(gammu monitor | awk '/Battery level/{print $4}')
if (( obtain_level <= 25 ))
then
echo "less than 25"
elif (( obtain_level >= 26 || obtain_level <= 50 ))
then
echo "between 25 and 50"
else
echo "good"
fi
-121--290818- На компьютере с сервером приложений:
Перед запуском приложения:
iptables -I INPUT -d <app server ip> --dport <app server port> -j REJECT
После завершения запуска:
iptables -D INPUT -d <app server ip> --dport <app server port> -j REJECT
При необходимости можно перенаправить трафик на другой сервер, на котором будет указано «приложение загружается». В этом случае замените:
-j REJECT
на
-j DNAT --to-destination < ip-адрес другой машины >
в обеих командах. Обратите внимание, что в этом случае необходимо включить функцию IP Forwarding. Необходимо настроить:
net.ipv4.ip _ forward = 1
в /etc/sysctl.conf
Это вступит в силу при следующей загрузке. Для немедленного применения в запущенной системе:
echo 1 >/ proc/sys/net/ipv4/ip_forward
You также может потребоваться маскировка трафика, уходящего от сервера приложений к серверу, чтобы показаться принимающему серверу исходящим от него (т.е. перезаписать IP-адрес источника). Вы можете сделать это с помощью:
iptables -t nat -I POSTROUTING -o < трафик интерфейса выйдет > -j MASQUERADE
Другой вариант: если у вас есть другой сервер на том же компьютере, что и сервер приложений, на другом порту, который может отображать страницу «приложение загружается», вы можете перенаправить трафик на этот порт. Та же идея, только вместо REJECT/DNAT:
ПЕРЕНАПРАВЛЕНИЕ-j - к порту <другой номер порта локального сервера>
Этот выбор не требует преобразования вашего сервера приложения в маршрутизатор:) (ip_forward не требуемый)