Можно сократить его немного при помощи функции:
#!/bin/bash
ask()
{
declare -g $1="$2"
if [ -z "${!1}" ]; then
echo "$3"
read $1
fi
}
ask PROJECT_DIR "$1" "Directory where project resides:"
ask SITE_NAME "$2" "Name of the website:"
ask ADMIN_PWD "$3" "Admin password:"
ask THEME_DIR "$4" "Directory of the theme:"
ask THEME_NAME "$5" "Name of the theme:"
echo "$PROJECT_DIR $SITE_NAME"
Это требует bash
хотя и не будет работать в sh
.
в /etc/iproute2/rt_tables.
on *:notify:{
echo -s $nick has connected to $network $+ !
}
Then:
;trackee name
alias trackee return foobar
on *:connect:{
; start an infinite timer when we connect
.timerCHECK_ONLINE 0 300 doWhois
}
alias doWhois {
; set a flag and initiate a whois command
; the flag is important to differentiate our whois from the user's
set %docheck 1
whois $trackee
}
raw *:*:{
var %n = $numeric
if (%docheck) {
if (%n == 401) {
echo -s [Monitor] $qt($2) is not online!
;clear the flag
unset %docheck
}
elseif (%n == 311) {
;start of whois
echo -s [Monitor] =~=~=~=~=~=~=~= WHOIS START =~=~=~=~=~=~=~=
echo -s [Monitor] Nick: $2 $+([, $4, ])
echo -s [Monitor] Real Name: $6
}
elseif (%n == 318) {
;end of whois
echo -s [Monitor] =~=~=~=~=~=~=~= WHOIS END =~=~=~=~=~=~=~=
;clear the flag
unset %docheck
}
elseif (%n == 312) {
; server
echo -s [Monitor] Server: $3 $+([, $4-,])
}
elseif (%n == 317) {
; idle time
echo -s [Monitor] Idle: $duration($calc($ctime - $4)) $&
$+([, Since:, $chr(32), $asctime($4, hh:nn:ss TT mm/dd/yy), ])
}
;elseif (%n == ...) add more numeric events here
;...
; stop mIRC's default text
halt
}
}
(если они еще не настроены) затем
[Monitor] "foobar" is not online!
then отредактируйте этот файл так, чтобы он выглядел как
[Monitor] =~=~=~=~=~=~=~= WHOIS START =~=~=~=~=~=~=~=
[Monitor] Nick: foobar [FooNet-343F144.fooISP.net]
[Monitor] Real Name: John Doe
[Monitor] Server: *.example.com [FooNet network]
[Monitor] Idle: 6mins 38secs [Since: 05:19:07 PM 06/16/11]
[Monitor] =~=~=~=~=~=~=~= WHOIS END =~=~=~=~=~=~=~=
thenдля активации правил брандмауэра (маскировки). Затем
так, чтобы соединения, приходящие на один интерфейс, возвращались на один и тот же интерфейс. На моей машине был запущен DNS-сервер, который был настроен так, чтобы пользователи могли просто подключаться к 192.168.100.250 - если вы этого не сделаете, я не уверен, что это лучший способ - вы можете настроить преобразователь заглушек, который переключается между двумя DNS-адресами для переадресации запросов или настроить половину машин пользователей на использование одного DNS-адреса, а вторую половину - другого. [1183523]
Я предполагаю, что ваши маршрутизаторы подключены к различным конечным точкам провайдеров.
Что бы я сделал:
Извлеките два маршрутизатора из конфигурации и сконфигурируйте сети провайдеров непосредственно на вашем ПК с 3 сетевыми картами. То есть:
NIC 1: 192.168.100.250
NIC 2: ISP #1 публичный IP
NIC 3: ISP #2 публичный IP
Make NAT rules so that traffic from source ports 1-32767 are NATed to first outgoing connection public IP, and from source ports 32768-65535 are NATed to second outgoing connection public IP. С этой конфигурацией вы получите базовую конфигурацию балансировки нагрузки.
EDIT: Вам также может понадобиться применить некоторую политику маршрутизации здесь, потому что NAT выполняется после принятия решения о маршрутизации, поэтому пакет все равно будет маршрутизироваться не на тот интерфейс.