Monopoly to program służący do taryfikowania połączeń modemowych, o jego przydatności modemowców przekonywać chyba nie trzeba. Jednym z jego atutów jest polski, ładny interfejs. Monopoly pobrać możemy z sieci. Na stronie dostępne są źródła oraz pakiety binarne dla RedHat Linuksa. Monopoly jest również rozpowszechniane z dystrybucją PLD, którą znajdziemy na kompaktach kwietniowego (2000) i marcowego (2001) LinuxPlus. Po ściągnięciu odpowiedniej paczki (kompilujemy i) instalujemy ją. Warto przeczytać dokumentację dołączoną do programu, znajdziemy tam trochę przydatnych rzeczy. Domyślnie plikiem konfiguracyjnym programu jest /etc/monopolyrc, chyba że skompilujemy program inaczej. Sama konfiguracja programu nie jest trudna, plik konfiguracyjny jest dobrze opisany zarówno po polsku i angielsku. Kłopot może nam sprawić odpowiednie skonfigurowanie taryf w programie. Ustawić możemy tylko jedną taryfę „od godziny do godziny”, a co z łikendami 😉 ? I tu dochodzimy do głównej części opisu…

Aby program obliczał koszt połączenia między godziną 6 a 18 w weekendy musimy w te dni „podmienić” plik konfiguracyjny. Normalnie dla dni powszednich taryfa wygląda tak, lub podobnie: between (18:00, 5:59) use (360, 0.35). W weekendy powinna wyglądać tak: between (0:00, 23:59) use (360,0.35).
Podmianę pliku konfiguracyjnego możemy zautomatyzować. Należy napisać prosty skrypt np. w bash’u, który podmieniał by plik konfiguracyjny. Mamy kilka możliwości wykonania tego zadania:

  • przy pomocy sed’a
  • przy pomocy grep’a
  • skopiować odpowiednio przygotowany plik

Osobiście polecam pierwszą metodę. Zmieniamy nazwę monopolyrc na inną, np. monopolyrc.src . Zamiast taryfy wstawiamy identyfikator (np. %TARYFA%), który zostanie później zamieniony przez sed’a na odpowiednią taryfę. Teraz piszemy skrypt, który zamieni %TARYFA% na odpowienią taryfę, dla dnia powszedniego lub weekendu:

  ----cut----  # Zmiennej day przypisz aktualny dzień  day=`date +%a`    # Jeżeli dzisiaj jest "Sat" albo "Sun", to mamy łikend.  if [ "$day" = "Sat" -o "$day" = "Sun" ]  then    # Co zrobić jeżeli jest łikend    cat /etc/monopolyrc.src | sed 's/%TARYFA%/between (0:00, 23:59) use (360, 0.35)/g' > /etc/monopolyrc  else    # Co zrobić w dzień powszedni    cat /etc/monopolyrc.src | sed 's/%TARYFA%/between (18:00, 5:59) use (360, 0.35)/g' > /etc/monopolyrc  fi  ----cut----  

Skrypt ten najlepiej umieścić w /etc/rc.d/rc.local (lub jego odpowiedniku). Jeżeli natomias mamy uruchomiony komputer 24 godziny na dobę, to powinniśmy umieścić odwołanie do niego w pliku konfiguracyjnym crona.

Autorem powyższego teksty jest Maciej Korzeń z serwisu Linux.Sky.
Archiwalny news dodany przez użytkownika: Maciej Korzeń.
Kliknij tutaj by zobaczyć archiwalne komentarze.

Share →