<!-- $Id$ -->
<chapter id="scripts">
    <title>Skrypty</title>
       <sect1 id="scripts-install">
        <title>Instalacja</title>
        <para>Jeśli chcesz ustawić konfigurację któregoś ze skryptów, robi się to
	w odpowiedniej sekcji <filename>lms.ini</filename>. Same skrypty 
	przenieś z katalogu <filename>/lms/bin/</filename> do katalogu <filename>/usr/sbin</filename>. 
	Po przeniesieniu musisz je jeszcze dopisać do crontaba tak, aby były uruchamiane 
	automatycznie, właśnie wtedy kiedy tego chcesz.</para>
        <para>Przykładowo, wpis w crontabie dla skryptu lms-payments (wykonywanego
	codziennie o godzinie 00:01) powinien wyglądać następująco:</para>
        <screen>
1 0 * * *       /usr/sbin/lms-payments 1 &gt; /dev/null</screen>
        <para>Po więcej informacji możesz sięgnąć do <command>man crontab</command></para>
	<para>Większość lms'owych skryptów posiada dodatkowe opcje uruchomieniowe:</para>
	<screen>
-C plik     położenie i nazwa alternatywnego pliku lms.ini, domyślnie /etc/lms/lms.ini
-q          wykonanie skryptu bez wyświetlania komunikatów               
-h          pomoc (a w zasadzie to tylko listing opcji)
-v          informacja o wersji skryptu</screen>
       </sect1>
       <sect1 id="scripts-list">
       <title>Lista dostępnych skryptów</title>
	    <table id="scripts-table">
		<title>Lista skryptów wykonywalnych</title>
		<tgroup cols="2">
		<colspec ALIGN="center" COLWIDTH="200">
		<colspec ALIGN="center" COLWIDTH="300">
		    <thead>
			<row>
			<entry>Nazwa</entry>
			<entry>Opis</entry>
			</row>	
		    </thead>
		    <tbody>
			<row>
			<entry><xref linkend="lms-notify"></entry>
			<entry>Powiadamianie klientów pocztą internetową o zaległościach,
			wystawionych fakturach, przekroczeniu terminu płatności</entry>
			</row>
			<row>
			<entry><xref linkend="lms-notify-sms"></entry>
			<entry>Odpowiednik lms-notify do wysyłania smsów</entry>
			</row>
			<row>
			<entry><xref linkend="lms-notify-messages"></entry>
			<entry>Odpowiednik lms-notify do ustawiania powiadomień http</entry>
			</row>
			<row>
			<entry><xref linkend="lms-cutoff"></entry>
			<entry>Odłączanie klientów zadłużonych</entry>
			</row>
			<row>
			<entry><xref linkend="lms-etherdesc"></entry>
			<entry>Generowanie pliku dla iptraf zawierającego pary MAC adres - nazwa hosta</entry>
			</row>
			<row>
			<entry><xref linkend="lms-payments"></entry>
			<entry>Naliczanie opłat okresowych (abonamentowych) z fakturowaniem</entry>
			</row>
			<row>
			<entry><xref linkend="lms-traffic"></entry>
			<entry>Zapis statystyk wykorzystania łącza</entry>
			</row>
			<row>
			<entry><xref linkend="lms-traffic-logiptables"></entry>
			<entry>Statystyki łącza dla iptables</entry>
			</row>
			<row>
			<entry>lms-makearp</entry>
			<entry>Tworzenie tablicy ARP (/etc/ethers)</entry>
			</row>
			<row>
			<entry><xref linkend="lms-makedhcpconf"></entry>
			<entry>Konfiguracja serwera DHCP (dhcpd.conf)</entry>
			</row>
			<row>
			<entry><xref linkend="lms-makeiptables"></entry>
			<entry>Konfiguracja firewalla iptables</entry>
			</row>
			<row>
			<entry>lms-makeipchains</entry>
			<entry>Konfiguracja firewalla ipchains</entry>
			</row>
			<row>
			<entry>lms-makeopenbsdpf</entry>
			<entry>Konfiguracja firewalla dla systemu OpenBSD</entry>
			</row>
			<row>
			<entry>lms-makeoidentconf</entry>
			<entry>Konfiguracja oident</entry>
			</row>
			<row>
			<entry><xref linkend="lms-sendinvoices"></entry>
			<entry>Wysyłanie faktur do klientów</entry>
			</row>
			<row>
			<entry><xref linkend="lms-makemacs"></entry>
			<entry>Filtrowanie ruchu na bazie adresów źródłowych MAC</entry>
			</row>
			<row>
			<entry><xref linkend="lms-makehosts"></entry>
			<entry>Generuje plik /etc/hosts</entry>
			</row>
			<row>
			<entry><xref linkend="lms-makewarnings"></entry>
			<entry>Generuje regułki przekierowujące ruch klientów zadłużonych</entry>
			</row>
			<row>
			<entry><xref linkend="lms-makemessages"></entry>
			<entry>Generuje regułki przekierowujące ruch klientów, którym ustawiono wiadomość administracyjną</entry>
			</row>
			<row>
			<entry><xref linkend="lms-fping"></entry>
			<entry>Badanie aktywności komputerów.</entry>
			</row>
			<row>
			<entry><xref linkend="lms-reminder"></entry>
			<entry>Przypominanie o zaplanowanych zadaniach z Terminarza</entry>
			</row>
			<row>
			<entry><xref linkend="lms-rtparser"></entry>
			<entry>Backend do Helpdesk'a.</entry>
			</row>
			<row>
			<entry><xref linkend="lms-teryt"></entry>
			<entry>Import bazy TERYT</entry>
			</row>
		    </tbody>	
		</tgroup>
	    </table>
	    <para> </para>
       </sect1>
       <sect1 id="scripts-config">
    	    <title>Opis i konfiguracja</title>
       <sect2 id="lms-notify" xreflabel="lms-notify">
	<title>lms-notify</title>
		<para>lms-notify jest dobrym sposobem przypominania ludziom o tym że do pracy sieci 
		i łącz konieczne są ich pieniążki. Pozwala on na napisanie kilku[-nastu] plików 
		tekstowych i traktowania ich jako szablonów do mailingu. Skrypt jest 
		wielofunkcyjny, włączenie określonego zadania następuje poprzez
		zdefiniowanie lokalizacji pliku z szablonem wiadomości. Do wysyłania poczty
		został zastosowany moduł Mail::Sender.</para>
		<sect3 id="lms-notify-templates">
		<title>Szablony</title>
			<para>W szablonach można używać następujących zmiennych:</para>
			<itemizedlist>
				<listitem>
					<para>%date-m - zostanie zastąpione aktualnym miesiącem, licząc od 1 poprzedzone 0, np. 02</para>
				</listitem>
				<listitem>
					<para>%date-y - zostanie zastąpione aktualnym rokiem, np. 2003</para>
				</listitem>
				<listitem>
					<para>%date_month_name - zostanie zastąpione nazwą bieżącego miesiąca, np. marzec</para>
				</listitem>
				<listitem>
					<para>%saldo - zostanie zastąpione aktualnym saldem klienta, np. 535</para>
				</listitem>
				<listitem>
					<para>%abonament - zostanie zastąpione kwotą abonamentu jaka 
					jest do danego klienta przypisana, np. 107</para>
				</listitem>
				<listitem>
					<para>%b - saldo z zanegowanym znakiem, np. 107</para>
				</listitem>
				<listitem>
					<para>%B - saldo z prawdziwym znakiem, np. -107</para>
				</listitem>
				<listitem>
					<para>%pin - numer PIN klienta</para>
				</listitem>
				<listitem>
					<para>%cid - ID klienta</para>
				</listitem>
				<listitem>
					<para>%number - numer dokumentu (tylko w powiadomieniu o fakturze lub nocie obciążeniowej)</para>
				</listitem>
				<listitem>
					<para>%value - wartość brutto na fakturze (tylko w powiadomieniu o fakturze)</para>
				</listitem>
				<listitem>
					<para>%last_10_in_a_table - wyciąg ostatnich 10 operacji kasowych na koncie klienta (tylko wiadomości e-mail), np.:</para>
				</listitem>
			</itemizedlist>
		<example id="notify-example">
		<title>Lms-notify: Przykładowy wyciąg 10 ostatnich operacji kasowych</title>
<screen>
-----------+------------------------------------------------------+---------
2003-02-02 | Abonament za miesiąc 2003/02                         |  107.00
2003-02-01 | Wpłata                                               | -107.00
2003-02-01 | Abonament za miesiąc 2003/02                         |  107.00
2003-02-01 | Wpłata                                               | -321.00
2003-01-31 | Abonament za miesiąc 2003/01                         |  107.00
2003-01-31 | Abonament za miesiąc 2003/01                         |  107.00
2003-01-31 | Abonament za miesiąc 2003/01                         |  107.00
-----------+------------------------------------------------------+---------
</screen></example>
		<example id="notify-template">
        	<title>Lms-notify: Przykład szablonu</title>
<screen>UWAGA! Ta wiadomość została wygenerowana automatycznie.

Uprzejmie informujemy iż na Pani/Pana koncie figuruje zaległość w opłatach za
internet w wysokości %B zł.

Jeżeli porozumieli się już Państwo z administratorami w kwestii opłaty za
bieżący miesiąc czyli %date-m %date-y roku, prosimy o
zignorowanie tej wiadomości.

W wypadku gdy uważają Państwo iż zaległość ta jest nieporozumieniem prosimy o
jak najszybszy kontakt.

Wszelkie informacje na temat Państwa rozliczeń mogą Państwo znaleźć pod
adresem http://www.naszasiec.pl/mojekonto/

Jeżeli chcieliby Państwo uregulować zaległości prosimy o kontakt:

Dział Rozliczeń ASK NaszaSiec

Gwidon Mniejważny
telefon: 0-606666666
e-mail: gwidonm@naszasiec.pl

ps. załączamy ostatnie 10 operacji jakie zostało zarejestrowane przez nasz
system billingowy na Państwa koncie:

Data       | Opis                                                 | Wartość
%last_10_in_a_table

--
Amatorska Sieć Komputerowa NaszaSiec
http://www.naszasiec.pl/</screen></example>
		</sect3>
		<sect3 id="lms-notify-config">
		<title>Konfiguracja</title>
			<para>Konfigurację dla lms-notify można ustalić w pliku 
			<filename>lms.ini</filename> w sekcji <emphasis>[notify]</emphasis>. 
			Możesz tam ustawić następujące parametry, które mają zastosowanie
			również dla skryptów <xref linkend="lms-notify-sms"> i <xref linkend="lms-notify-messages">:</para>
		<itemizedlist>
			<listitem>
				<para>debtors_template (opcjonalny)</para>
				<para>Lokalizacja pliku z szablonem wiadomości wysyłanej do 
				zadłużonych klientów. Pozostawienie tej opcji pustej wyłączy
				powiadomienia o zadłużeniu. Domyślnie: pusta</para>
				<para>Przykład:	<prompt>debtors_template = /etc/lms/debtors.txt</prompt></para>
			</listitem>
			<listitem>
				<para>debtors_subject (opcjonalny)</para>
				<para>Temat wiadomości o zadłużeniu. Domyślnie: 'Debtors notification'</para>
				<para>Przykład:	<prompt>debtors_subject = 'Powiadomienie o zadłużeniu'</prompt></para>
			</listitem>
			<listitem>
				<para>invoices_template (opcjonalny)</para>
				<para>Lokalizacja pliku z szablonem wiadomości z informacją o 
				wystawieniu faktury. Pod uwagę brane są faktury wystawione
				w ciągu ostatnich 24 godzin od uruchomienia skryptu.	
				Pozostawienie tej opcji pustej wyłączy
				powiadomienia o nowych fakturach. Domyślnie: pusta</para>
				<para>Przykład:	<prompt>invoices_template = /etc/lms/new_invoice.txt</prompt></para>
			</listitem>
			<listitem>
				<para>invoices_subject (opcjonalny)</para>
				<para>Temat wiadomości o nowej fakturze. Domyślnie: 'New invoice notification'</para>
				<para>Przykład:	<prompt>invoices_subject = 'Powiadomienie o wystawieniu faktury'</prompt></para>
			</listitem>
			<listitem>
				<para>notes_template (opcjonalny)</para>
				<para>Lokalizacja pliku z szablonem wiadomości z informacją o 
				wystawieniu noty obciążeniowej. Pod uwagę brane są noty wystawione
				w ciągu ostatnich 24 godzin od uruchomienia skryptu.	
				Pozostawienie tej opcji pustej wyłączy
				powiadomienia o nowych notach. Domyślnie: pusta</para>
				<para>Przykład:	<prompt>notes_template = /etc/lms/new_note.txt</prompt></para>
			</listitem>
			<listitem>
				<para>notes_subject (opcjonalny)</para>
				<para>Temat wiadomości o nowej nocie obciążeniowej. Domyślnie: 'New debit note notification'</para>
				<para>Przykład:	<prompt>notes_subject = 'Powiadomienie o wystawieniu noty obciążeniowej'</prompt></para>
			</listitem>
			<listitem>
				<para>deadline_template (opcjonalny)</para>
				<para>Lokalizacja pliku z szablonem wiadomości wysyłanej do 
				zadłużonych klientów, posiadających przeterminowane 
				(nierozliczone) faktury. Pozostawienie tej opcji pustej wyłączy
				powiadomienia. Domyślnie: pusta</para>
				<para>Przykład:	<prompt>deadline_template = /etc/lms/deadline.txt</prompt></para>
			</listitem>
			<listitem>
				<para>deadline_subject (opcjonalny)</para>
				<para>Temat wiadomości o przeterminowanych fakturach. Domyślnie: 'Invoice deadline notification'</para>
				<para>Przykład:	<prompt>deadline_subject = 'Powiadomienie o zaległości'</prompt></para>
			</listitem>
			<listitem>
				<para>limit (opcjonalny)</para>
				<para>Pozwala na ustalenie limitu bilansu poniżej którego do klienta 
				zostanie wysłana wiadomość z informacją o zadłużeniu. Domyślnie: 0</para>
				<para>Przykład:	<prompt>limit = -20</prompt></para>
			</listitem>
		</itemizedlist>	
		<para>Poniżej przedstawiono opcje dotyczące wyłącznie wiadomości e-mail.</para>
		<itemizedlist>	
			<listitem>
				<para>mailfrom (wymagana)</para>
				<para>Adres e-mail z którego zostanie wysłany e-mail. Proszę pamiętać, że na niektórych MTA (np. exim) konto to musi istnieć w systemie. Domyślnie: pusta.</para>
				<para>Przykład:	<prompt>mailfrom = staff@domain.pl</prompt></para>
			</listitem>
			<listitem>
				<para>mailfname</para>
				<para>Nazwa nadawcy maila. Domyślnie: pusta.</para>
				<para>Przykład:	<prompt>mailfname = Administratorzy</prompt></para>
			</listitem>
			<listitem>
				<para>smtp_host</para>
				<para>Serwer SMTP, przez który ma zostać wysłana wiadomość. Domyślnie: localhost</para>
				<para>Przykład:	<prompt>smtp_host = smtp.mydomain.pl</prompt></para>
			</listitem>
			<listitem>
				<para>smtp_auth</para>
				<para>Sposób autoryzacji. Dozwolone wartości: LOGIN, PLAIN, CRAM-MD5, NTLM.
				Domyślnie: pusta (brak autoryzacji)</para>
				<para>Przykład:	<prompt>smtp_auth = LOGIN</prompt></para>
			</listitem>
			<listitem>
				<para>smtp_user</para>
				<para>Login do autoryzacji SMTP. Domyślnie: pusty</para>
				<para>Przykład:	<prompt>smtp_user = admin</prompt></para>
			</listitem>
			<listitem>
				<para>smtp_pass</para>
				<para>Hasło do konta zdefiniowanego w opcji smtp_user. Domyślnie: puste</para>
				<para>Przykład:	<prompt>smtp_pass = password</prompt></para>
			</listitem>
			<listitem>
				<para>debug_email (opcjonalny)</para>
				<para>Adres e-mail do debugowania. Gdy ustawiony, cała poczta 
				zostaje wysłana na dany email zamiast do klientów. Przydatne do 
				debugowania i sprawdzania czy wszystko działa OK. Domyślnie: 
				nie ustawiony.</para>
				<para>Przykład:	<prompt>debug_email = lexx@domain.pl</prompt></para>
			</listitem>
		</itemizedlist>
		</sect3>
	</sect2>
	<sect2 id="lms-notify-sms" xreflabel="lms-notify-sms">
		<title>lms-notify-sms</title>
		<para>lms-notify-sms to odpowiednik <xref linkend="lms-notify">,
		służący do wysyłania smsów. Obecnie skrypt wspiera dwie usługi, smstools oraz gnokii.
		Wyboru usługi dokonuje się w sekcji <emphasis>[sms]</emphasis>. Skrypt jest 
		wielofunkcyjny, włączenie określonego zadania następuje poprzez
		zdefiniowanie lokalizacji pliku z szablonem wiadomości.</para>
		<para>Konfigurację dla lms-notify-sms można ustalić w pliku 
		<filename>lms.ini</filename> 
		w sekcji <emphasis>[notify-sms]</emphasis>, oprócz opcji dostępnych w
		<xref linkend="lms-notify"> masz do dyspozycji następujące opcje:
		<itemizedlist>
		<listitem>
			<para>service (opcjonalny)</para>
			<para>Pozwala na wybranie usługi SMS niezależnie od tej,
			którą podano w sekcji <emphasis>[sms]</emphasis>. Domyślnie: pusta</para>
			<para>Przykład:	<prompt>service = smstools</prompt></para>
		</listitem>
		</itemizedlist>
		</para>
	</sect2> 
	<sect2 id="lms-notify-messages" xreflabel="lms-notify-messages">
		<title>lms-notify-messages</title>
		<para>lms-notify-messages to odpowiednik <xref linkend="lms-notify">,
		służący do ustawiania powiadomień, które będą pojawiać się
		w przeglądarkach internetowych klientów. Skrypt jest 
		wielofunkcyjny, włączenie określonego zadania następuje poprzez
		zdefiniowanie lokalizacji pliku z szablonem wiadomości.</para>
		<para>Konfigurację dla lms-notify-messages przeprowadza się w pliku 
		<filename>lms.ini</filename> w sekcji <emphasis>[notify-messages]</emphasis>.
		</para>
	</sect2> 
	<sect2 id="lms-cutoff" xreflabel="lms-cutoff">
	 <title>lms-cutoff</title>
	 <para>Skrypt pozwala na odłączenie (a raczej zmianę w bazie danych stanu komputerów na wyłączony) klientów których bilans jest poniżej zadanej wartości. Właściwe odłączanie powinno być realizowane przez generator plików konfiguracyjnych.</para>
         <para>Konfigurację dla lms-cutoff możemy ustalić w pliku <filename>lms.ini</filename> w sekcji <emphasis>[cutoff]</emphasis>. Możemy tam ustawić następujące parametry:</para>
	 <itemizedlist>
          <listitem>
	   <para>limit (opcjonalny)</para>
	   <para>Pozwala na ustalenie limitu bilansu poniżej którego do bazy danych zostanie zapisany stan odłączony. Domyślnie: 0</para>
	   <para>Przykład:	<prompt>limit = -20</prompt></para>
	  </listitem>
	  <listitem>
	   <para>message (optional)</para>
	   <para>Jeśli nie jest pusta, wiadomość ta po dołączeniu użytkownika zostanie 
	   zapisana do jego rekordu w polu wiadomości administracyjnej. W treści wiadomości
	   można użyć zmiennej %now, która zostanie zamieniona na bieżącą datę oraz
	   zmiennych %b i %B tak jak w skrypcie lms-notify.
	   Domyślnie: 'Automatic cutoff caused by exceeding of liabilities limit on %now'</para>
	   <para>Przykład:	<prompt>message = ''</prompt></para>
	  </listitem>
	 </itemizedlist>
	</sect2>
	<sect2 id="lms-payments" xreflabel="lms-payments">
	 <title>lms-payments</title>
	 <para>Skrypt służący do naliczania opłat abonamentowych przypisanych
	 klientom oraz opłat stałych. Ponadto zapisuje dane do faktur.
	 Aby działał poprawnie powinien być uruchamiany codziennie.</para>
	 <para>Skrypt ten udostępnia trzy opcje do fakturowania, które można ustawić
	 w sekcji <emphasis>[payments]</emphasis> pliku <filename>lms.ini</filename>:
	  <itemizedlist>
          <listitem>
	   <para>deadline (opcjonalny)</para>
	   <para>Pozwala na ustalenie terminu płatności w dniach. Domyślnie: 14</para>
	   <para>Przykład:	<prompt>deadline = 7</prompt></para>
         </listitem>
	  <listitem>
	   <para>paytype (opcjonalny)</para>
	   <para>Identyfikator rodzaju płatności (1-gotówka, 2-przelew, 3-przelew/gotówka,
	   4-karta, 5-kompensata, 6-barter, 7-umowa). Domyślnie: 2 (przelew)</para>
	   <para>Przykład:	<prompt>paytype = 1</prompt></para>
	  </listitem>
	 <listitem>
          <para>comment (opcjonalny)</para>
          <para>Opis pozycji na fakturze za naliczane zobowiązanie</para>
          <para>Domyślnie: 'Tariff %tariff subscription for period %period'</para>
          <para>Niektóre ze słów kluczowych są zastępowane:</para>
          <para>%tariff - nazwa taryfy</para>
          <para>%period - okres (liczony od dziś do ostatniego dnia cyklu rozliczeniowego, w formacie RRRR/MM/DD)</para>
          <para>%current_month - okres od pierwszego dnia bieżącego miesiąca do jego końca</para>
	  <para>%current_period - bieżący miesiąc w formacie MM/RRRR</para>
	  <para>%next_period - następny miesiąc w formacie MM/RRRR</para>
	  <para>%prev_period - poprzedni miesiąc w formacie MM/RRRR</para>
	  <para>%desc - opis taryfy</para>
          <para>Przykład:       <prompt>comment = 'Abonament za %current_month w/g taryfy %tariff'</prompt></para>
	  </listitem>
	 <listitem>
          <para>settlement_comment (opcjonalny)</para>
          <para>Opis pozycji z tytułu wyrównania niepełnego okresu zobowiązania.</para>
          <para>Domyślnie odpowiada opcji <prompt>comment</prompt></para>
          <para>Przykład:       <prompt>settlement_comment = 'Wyrównanie za okres %period'</prompt></para>
	  </listitem>
          <listitem>
	   <para>suspension_description (opcjonalny)</para>
	   <para>Tekst dodawany na końcu opisu operacji dla obciążeń zawieszonych. 
	   Domyślnie: ''</para>
	   <para>Przykład:	<prompt>suspension_description = (zawieszenie)</prompt></para>
	  </listitem>
	  <listitem>
	   <para>saledate_next_month (opcjonalny)</para>
	   <para>Włączenie tej opcji spowoduje, że data sprzedaży na fakturze zostanie ustawiona
	   na pierwszy dzień następnego miesiąca. 
	   Domyślnie: 0</para>
	   <para>Przykład:	<prompt>saledate_next_month = 1</prompt></para>
	  </listitem>
	 </itemizedlist>
	 </para>
	 <para>Ponadto mamy do dyspozycji jeden przydatny parametr wiersza poleceń
	 <prompt>--fakedate</prompt> (<prompt>-f</prompt>). Przy jego użyciu można 
	 sprawić, aby skrypt działał z podmienioną datą systemową (w formacie YYYY/MM/DD),
	 na przykład <prompt>--fakedate=2004/10/10</prompt>.
	 </para>
        </sect2>
    <sect2 id="lms-traffic" xreflabel="lms-traffic">
    <title>lms-traffic</title>
    <para>Skrypt służy do logowania informacji o ilości danych pobranych i wysłanych
	przez każdy komputer w sieci lokalnej. W bazie danych zapisywana jest ilość
	danych w bajtach, numer komputera z bazy lms i znacznik czasu. 
	Od klienta zależy w jakich odstępach dane będą odczytywane.
	Ponieważ dane odczytywane są z pliku utworzonego przez klienta, nie ma
	znaczenia z jakiego źródła pochodzą, może to być iptables, ipchains lub
	program zewnętrzny np. ipfm.
    </para>
    <para>Przeglądanie wykresów wykorzystania łącza oraz definiowanie filtrów
	dostępne jest z głównego menu 'Statystyki'.
    </para>
    	<sect3 id="lms-traffic-config">
	    <title>Instalacja</title>
	    <para>Przed uruchomieniem lms-traffic należy zadbać o utworzenie
	    pliku z danymi. Zawartość pliku powinna mieć następujący format:</para>
	    <screen>
&lt;adres IP&gt; &lt;n_spacji&gt; &lt;upload&gt; &lt;n_spacji&gt; &lt;download&gt;
&lt;adres IP&gt; &lt;n_spacji&gt; &lt;upload&gt; &lt;n_spacji&gt; &lt;download&gt;
...</screen>
	    <para>Skrypt tworzący statystyki należy uruchamiać z taką samą częstotliwością 
	    co lms-traffic.</para>
	    <para><note><para>Przykład takiego skryptu dla iptables znajduje się w 
	    pliku <filename>/sample/traffic_ipt.pl</filename>.</para></note></para>
	    <para>Następnie instalujemy skrypt dopisując do crontaba.
	    Oprócz standardowych opcji wiersza poleceń możliwe jest
	    zdefiniowanie lokalizacji pliku z logiem</para>
	    <screen>
-f=/plik 	położenie i nazwa pliku ze statystykami domyślnie /var/log/traffic.log</screen>
	    <para>
		<warning><para>Częstotliwość zapisywania danych do bazy ustala użytkownik.
		Ustawienie jej poniżej 10 minut, może spowodować szybki przyrost ilości rekordów w
		bazie danych, a co za tym idzie zwiększyć czas oczekiwania na wyświetlenie
		wyników.</para></warning>
	    </para>
	</sect3>
    </sect2>
    <sect2 id="lms-traffic-logiptables" xreflabel="lms-traffic-logiptables">
	<title>lms-traffic-logiptables</title>
	<para>Skrypt służy do logowania informacji o ilości danych pobranych i wysłanych
	przez każdy komputer z sieci lokalnej, na podstawie liczników iptables. Dane 
	sczytuje z firewalla, tworząc jednocześnie odpowiednie reguły. Zatem, nie jest 
	konieczne ręczne tworzenie reguł iptables, ani wywoływanie skryptu  
	<filename>lms-traffic</filename>.
	</para>
	<para>Konfigurację należy umieścić w sekcji <emphasis>[traffic-logiptables]</emphasis>:
	    <itemizedlist>
           	<listitem>
		    <para>outfile</para>
		    <para>Lokalizacja skryptu z regułami iptables. Domyślnie: /etc/rc.d/rc.stat</para>
		    <para>Przykład:	<prompt>outfile = /etc/rc.d/rc.stat</prompt></para>
		</listitem>
           	<listitem>
		    <para>iptables_binary</para>
		    <para>Lokalizacja programu iptables. Domyślnie: /usr/sbin/iptables</para>
		    <para>Przykład:	<prompt>iptables_binary = /usr/local/sbin/iptables</prompt></para>
		</listitem>		
           	<listitem>
		    <para>wan_interfaces</para>
		    <para>Nazwy interfejsów, na których dane mają być zliczane. Domyślnie: niezdefiniowane.</para>
		    <para>Przykład:	<prompt>wan_interfaces = eth0</prompt></para>
		</listitem>
           	<listitem>
		    <para>local_ports</para>
		    <para>Lista portów (źródłowych i docelowych) dla zliczanych pakietów. Domyślnie: niezdefiniowane.</para>
		    <para>Przykład:	<prompt>local_ports = 80</prompt></para>
		</listitem>
           	<listitem>
		    <para>script_owneruid</para>
		    <para>UID właściciela skryptu określonego w 'outfile'. Domyślnie: 0 (root).</para>
		    <para>Przykład:	<prompt>script_owneruid = 0</prompt></para>
		</listitem>
        	<listitem>
		    <para>script_ownergid</para>
		    <para>GID właściciela skryptu określonego w 'outfile'. Domyślnie: 0 (root).</para>
		    <para>Przykład:	<prompt>script_ownergid = 0</prompt></para>
		</listitem>
	    	<listitem>
		    <para>script_permission</para>
		    <para>Uprawnienia skryptu określonego w 'outfile'. Domyślnie: 700 (rwx------).</para>
		    <para>Przykład:	<prompt>script_permission = 700</prompt></para>
		</listitem>
    		<listitem>
		    <para>networks</para>
		    <para>Lista nazw sieci (oddzielonych spacjami), które mają być uwzględnione podczas generowania
		    pliku. Jeśli nie ustawiono, zostanie stworzony konfig dla wszystkich sieci.</para>
		    <para>Przykład:	<prompt>networks = public-custa public-custb</prompt></para>
		</listitem>
	    </itemizedlist>
	</para>
    </sect2>
    <sect2 id="lms-makedhcpconf" xreflabel="lms-makedhcpconf">
	<title>lms-makedhcpconf</title>
	<para>Tworzenie pliku konfiguracyjnego serwera DHCP - dhcpd.conf. Konfigurację
	skryptu umieszcza się w sekcji <emphasis>[dhcp]</emphasis>:
	    <itemizedlist>
           	<listitem>
		    <para>config_file</para>
		    <para>Lokalizacja pliku wynikowego. Domyślnie: /etc/dhcpd.conf</para>
		    <para>Przykład:	<prompt>config_file = /tmp/dhcpd.conf</prompt></para>
		</listitem>
    		<listitem>
		    <para>networks </para>
		    <para>Lista nazw sieci (oddzielonych spacjami), które mają być uwzględnione podczas generowania
		    pliku. Jeśli nie ustawiono, zostanie stworzony konfig dla wszystkich sieci.</para>
		    <para>Przykład:	<prompt>networks = public-custa public-custb</prompt></para>
		</listitem>
    		<listitem>
		    <para>customergroups</para>
		    <para>Lista nazw grup (oddzielonych spacjami), które mają być uwzględnione podczas generowania
		    pliku. Jeśli nie ustawiono, zostanie stworzony konfig dla wszystkich grup.</para>
		    <para>Przykład:	<prompt>customergroups = grupa1 grupa2</prompt></para>
		</listitem>
    		<listitem>
		    <para>default_lease_time</para>
		    <para>Domyślny czas dzierżawy. Domyślnie: 86400.</para>
		    <para>Przykład:	<prompt>default_lease_time = 43200</prompt></para>
		</listitem>
    		<listitem>
		    <para>max_lease_time</para>
		    <para>Maksymalny czas dzierżawy. Domyślnie: 86400.</para>
		    <para>Przykład:	<prompt>max_lease_time = 43200</prompt></para>
		</listitem>
    		<listitem>
		    <para>ignore_ddns</para>
		    <para>Nie generuj wpisu 'ddns-update-style none;' na początku pliku.
		    Przydatne przy starszych (2.2) wersjach demona dhcpd. Domyślnie: wyłączone.</para>
		    <para>Przykład:	<prompt>ignore_ddns = 1</prompt></para>
		</listitem>
    		<listitem>
		    <para>log_facility</para>
		    <para>Ustawienie trybu logowania daemona dhcp. Jeżeli puste to tryb domyślny.</para>
		    <para>Przykład:	<prompt>log_facility = 7</prompt></para>
		</listitem>
    		<listitem>
		    <para>authoritative</para>
		    <para>Dodanie wpisu 'authoritative;' na początku pliku.
		    Domyślnie: wyłączone.</para>
		    <para>Przykład:	<prompt>authoritative = 1</prompt></para>
		</listitem>
           	<listitem>
		    <para>script_owneruid</para>
		    <para>UID właściciela skryptu określonego w 'config_file'. Domyślnie: 0 (root).</para>
		    <para>Przykład:	<prompt>script_owneruid = 0</prompt></para>
		</listitem>
        	<listitem>
		    <para>script_ownergid</para>
		    <para>GID właściciela skryptu określonego w 'config_file'. Domyślnie: 0 (root).</para>
		    <para>Przykład:	<prompt>script_ownergid = 0</prompt></para>
		</listitem>
	    	<listitem>
		    <para>script_permission</para>
		    <para>Uprawnienia skryptu określonego w 'config_file'. Domyślnie: 600 (rwx------).</para>
		    <para>Przykład:	<prompt>script_permission = 700</prompt></para>
		</listitem>
	    </itemizedlist>
	</para>
	<para>Możesz podać czasy dzierżawy dla konkretnych sieci poprzez stworzenie
	sekcji <prompt>[dhcp:nazwasieci]</prompt> np.:
<screen>
[dhcp:public-custa] # nazwa sieci małymi literami!
default_lease_time = 3600
max_lease_time     = 3600</screen>

Możesz podać gateway, serwer dns, nazwę domeny i wins dla konkretnego
hosta poprzez stworzenie sekcji <prompt>[dhcp:adresip]</prompt> np.:
<screen>
[dhcp:213.25.209.216]
domain  = anotherdomain.pl
gateway = 213.25.209.251
dns     = 213.25.209.8
wins    = 213.25.209.10</screen>
	</para>
    </sect2>
    <sect2 id="lms-makeiptables" xreflabel="lms-makeiptables">
	<title>lms-makeiptables, lms-makeipchains</title>
	    <para>Para skryptów służących do generowania plików zawierających
	    reguły firewalla. Do utworzonego pliku możesz dołączyć inne wcześniej
	    utworzone pliki, a w końcu nadać mu odpowiednie uprawnienia. Skrypty nie
	    uruchamiają wygenerowanych plików.</para>
	    <para>Konfigurację dla tych skryptów możesz ustalić w pliku <filename>lms.ini</filename> w sekcji <emphasis>[iptables]</emphasis>
	    (i odpowiednio <emphasis>[ipchains]</emphasis>). Oba skrypty posiadają te same
	    opcje: </para>
	    <itemizedlist>
        	<listitem>
		    <para>networks </para>
		    <para>Lista nazw sieci (oddzielonych spacjami), które mają być uwzględnione podczas generowania
		    pliku firewalla. Jeśli nie ustawiono, zostanie stworzony konfig dla wszystkich sieci.</para>
		    <para>Przykład:	<prompt>networks = public-custa public-custb</prompt></para>
		</listitem>
           	<listitem>
		    <para>iptables_binary (ipchains_binary)</para>
		    <para>Lokalizacja programu iptables (ipchains). Domyślnie: /usr/sbin/iptables (/usr/sbin/ipchains)</para>
		    <para>Przykład:	<prompt>iptables_binary = /usr/local/sbin/iptables</prompt></para>
		</listitem>
           	<listitem>
		    <para>script_file</para>
		    <para>Plik, do którego zapisujemy reguły firewalla. Domyślnie: /etc/rc.d/rc.masq</para>
		    <para>Przykład:	<prompt>script_file = /etc/rc.d/rc.firewall</prompt></para>
		</listitem>		
           	<listitem>
		    <para>pre_script</para>
		    <para>Plik wykonywany PO wyczyszczeniu regułek, ale PRZED ustawieniem nowych. 
		    Domyślnie: niezdefiniowany.</para>
		    <para>Przykład:	<prompt>pre_script = /etc/rc.d/rc.masq-pre</prompt></para>
		</listitem>
           	<listitem>
		    <para>post_script</para>
		    <para>Plik wykonywany PO ustawieniu regułek. Domyślnie: niezdefiniowany.</para>
		    <para>Przykład:	<prompt>post_script = /etc/rc.d/rc.masq-post</prompt></para>
		</listitem>
           	<listitem>
		    <para>forward_to</para>
		    <para>Lista sieci, dla których włączamy forwarding. Możliwe wartości: "" - pełny forward, 
		    "dowolny ciąg" - wyłącz forward, "siec1 siec2" - lista sieci z włączonym forwardingiem.  
		    Domyślnie: pełny forward.</para>
		    <para>Przykład:	<prompt>forward_to = public-custa public-custb</prompt></para>
		</listitem>
           	<listitem>
		    <para>script_owneruid</para>
		    <para>UID właściciela pliku. Domyślnie: 0 (root).</para>
		    <para>Przykład:	<prompt>script_owneruid = 0</prompt></para>
		</listitem>
        	<listitem>
		    <para>script_ownergid</para>
		    <para>GID właściciela pliku. Domyślnie: 0 (root).</para>
		    <para>Przykład:	<prompt>script_ownergid = 0</prompt></para>
		</listitem>
	    	<listitem>
		    <para>script_permission</para>
		    <para>Uprawnienia pliku skryptu. Domyślnie: 700 (rwx------).</para>
		    <para>Przykład:	<prompt>script_permission = 700</prompt></para>
		</listitem>
	    	<listitem>
		    <para>snat_address</para>
		    <para>Adres SNAT. Jeśli nie ustawiono, dla hostów z adresami publicznymi będzie
		    użyte "-j MASQUERADE". Jeśli ustawiono zostanie użyte "-j SNAT --to xxx.xxx.xxx.xxx".
		    Dotyczy lms-makeiptables. Domyślnie: nie ustawiony.</para>
		    <para>Przykład:	<prompt>snat_address = 123.123.123.123</prompt></para>
		</listitem>
	    	<listitem>
		    <para>tcp_redirect_ports (udp_redirect_ports)</para>
		    <para>Konfiguracja przekierowań w formie port_źródłowy:port_docelowy dla
		    przekierowań na lokalną maszynę dla połączeń wychodzących. Dotyczy lms-makeipchains.
		    Domyślnie: nie ustawione.</para>
		    <para>Przykład:	<prompt>tcp_redirect_ports = 80:3128 25:25</prompt></para>
		</listitem>
	 </itemizedlist>
    </sect2>
    <sect2 id="lms-etherdesc" xreflabel="lms-etherdesc">
	<title>lms-etherdesc</title>
	    <para>Skrypt służący do generowania pliku zawierającego MAC adresy oraz
	    nazwy hostów pobierane z bazy lms'a. Adresy zapisywane są w formacie 'stripped mac',
	    czyli bez ":". Tego typu plik wykorzystywany jest przez pakiet <emphasis>iptraf</emphasis>.
	    </para>
	    <para>Konfigurację tego skryptu zawiera sekcja <emphasis>[ether]</emphasis>
	    w pliku <filename>lms.ini</filename>: </para>
	    <itemizedlist>
        	<listitem>
		    <para>networks </para>
		    <para>Lista nazw sieci (oddzielonych spacjami), które mają być uwzględnione podczas generowania
		    pliku. Jeśli nie ustawiono, zostanie stworzony konfig dla wszystkich sieci.</para>
		    <para>Przykład:	<prompt>networks = public-custa public-custb</prompt></para>
		</listitem>
		<listitem>
		    <para>etherdesc_owneruid</para>
		    <para>UID właściciela pliku. Domyślnie: 0 (root).</para>
		    <para>Przykład:	<prompt>etherdesc_owneruid = 0</prompt></para>
		</listitem>
		<listitem>
		    <para>etherdesc_file</para>
		    <para>Lokalizacja pliku. Domyślnie: /var/lib/iptraf/ethernet.desc.</para>
		    <para>Przykład:	<prompt>etherdesc_file = /etc/ethernet.desc</prompt></para>
		</listitem>
        	<listitem>
		    <para>etherdesc_ownergid</para>
		    <para>GID właściciela pliku. Domyślnie: 0 (root).</para>
		    <para>Przykład:	<prompt>etherdesc_ownergid = 0</prompt></para>
		</listitem>
	    	<listitem>
		    <para>etherdesc_permission</para>
		    <para>Uprawnienia pliku skryptu. Domyślnie: 600 (rw-------).</para>
		    <para>Przykład:	<prompt>etherdesc_permission = 600</prompt></para>
		</listitem>
	    </itemizedlist>
    </sect2>
    <sect2 id="lms-sendinvoices" xreflabel="lms-sendinvoices">
	<title>lms-sendinvoices</title>
	<para>Skrypt służy do wysyłania pocztą elektroniczną faktur, jako załączników
	do wiadomości. Faktury generowane są na podstawie szablonu dostępnego w lms-ui,
	dlatego wymagane jest podanie klienta i hasła do interfejsu www lms-ui.</para>
	<para>W odróżnieniu od pozostałych skryptów ten wymaga dodatkowych modułów perla:
	LWP::UserAgent, MIME::QuotedPrint oraz Mail::Sender.</para>
	<para>Konfigurację należy umieścić w sekcji <emphasis>[sendinvoices]</emphasis>:
	    <itemizedlist>
        	<listitem>
		    <para>lms_url</para>
		    <para>Adres do lms-ui. Domyślnie: http://localhost/lms/</para>
		    <para>Przykład:	<prompt>lms_url = http://lms.mynet.pl</prompt></para>
		</listitem>
           	<listitem>
		    <para>lms_user</para>
		    <para>Login użytkownika. Domyślnie: pusty</para>
		    <para>Przykład:	<prompt>lms_user = admin</prompt></para>
		</listitem>
           	<listitem>
		    <para>lms_password</para>
		    <para>Hasło do lms-ui. Domyślnie: puste</para>
		    <para>Przykład:	<prompt>lms_password = moje_hasło</prompt></para>
		</listitem>		
           	<listitem>
		    <para>debug_email</para>
		    <para>Konto pocztowe do testów. Domyślnie: niezdefiniowane.</para>
		    <para>Przykład:	<prompt>debug_email = admin@mynet.pl</prompt></para>
		</listitem>
           	<listitem>
		    <para>sender_name</para>
		    <para>Nadawca listu. Domyślnie: niezdefiniowany.</para>
		    <para>Przykład:	<prompt>sender_name = ASK MyNet</prompt></para>
		</listitem>
           	<listitem>
		    <para>sender_email</para>
		    <para>Adres nadawcy listu. Domyślnie: niezdefiniowany.</para>
		    <para>Przykład:	<prompt>sender_email = admin@mynet.pl</prompt></para>
		</listitem>
		<listitem>
		    <para>mail_subject</para>
		    <para>Temat wiadomości. Można użyć zmiennej %invoice zastępowanej numerem faktury. 
		    Domyślnie: 'Invoice No. %invoice'.</para>
		    <para>Przykład:	<prompt>mail_subject = 'Nowa faktura'</prompt></para>
		</listitem>
           	<listitem>
		    <para>mail_body</para>
		    <para>Treść wiadomości. Można użyć zmiennej %invoice, która zostanie zastąpiona numerem faktury. 
		    Domyślnie: 'Attached file with Invoice No. %invoice'.</para>
		    <para>Przykład:	<prompt>mail_body = ''</prompt></para>
		</listitem>
		<listitem>
		<para>customergroups</para>
		<para>Lista nazw grup (oddzielonych spacjami), które mają być uwzględnione 
		podczas wysyłki. Domyślnie: nie ustawiona - wszystkie grupy.</para>
		<para>Przykład:	<prompt>customergroups = grupa1 grupa2</prompt></para>
		</listitem>
		<listitem>
		<para>smtp_host</para>
		<para>Serwer SMTP, przez który ma zostać wysłana wiadomość. Domyślnie: localhost</para>
		<para>Przykład:	<prompt>smtp_host = smtp.mydomain.pl</prompt></para>
		</listitem>
		<listitem>
		<para>smtp_auth</para>
		<para>Sposób autoryzacji. Dozwolone wartości: LOGIN, PLAIN, CRAM-MD5, NTLM. Domyślnie: pusta (brak autoryzacji)</para>
		<para>Przykład:	<prompt>smtp_auth = LOGIN</prompt></para>
		</listitem>
		<listitem>
		<para>smtp_user</para>
		<para>Login do autoryzacji SMTP. Domyślnie: pusty</para>
		<para>Przykład:	<prompt>smtp_user = admin</prompt></para>
		</listitem>
		<listitem>
			<para>smtp_pass</para>
			<para>Hasło do konta zdefiniowanego w opcji smtp_user. Domyślnie: puste</para>
			<para>Przykład:	<prompt>smtp_pass = password</prompt></para>
		</listitem>
	    </itemizedlist>
	 Ponadto mamy do dyspozycji jeden przydatny parametr wiersza poleceń
	 <prompt>--fakedate</prompt> (<prompt>-f</prompt>). Przy jego użyciu można 
	 sprawić, aby skrypt działał z podmienioną datą systemową (w formacie YYYY/MM/DD),
	 na przykład <prompt>--fakedate=2004/10/10</prompt>.
	 </para>
    </sect2>
    <sect2 id="lms-makemacs" xreflabel="lms-makemacs">
	<title>lms-makemacs</title>
	    <para>Skrypt służący do generowania pliku zawierającego reguły netfiltra filtrujące ruch
	    klientów na bazie testu adresu źródłowego MAC. Dla każdego komputera generowana jest
	    jedna reguła dla tablicy nat, zadanego łańcucha, testująca adres źródłowy IP pakietu oraz adres
	    źródłowy MAC ramki. Jeśli testy zakończą się pozytywnie następuje powrót do łańcucha nadrzędnego
	    za pomocą decyzji RETURN. Na końcu listy reguł dodawane są 2 reguły przekierowujące ruch http
	    oraz webcache na podany w konfiguracji adres IP oraz port (z wykorzystaniem decyzji DNAT).
	    Przekierowanie może odbywać się na wirtualny host www z zawiadomieniem klienta
	    o zaległościach finansowych bez możliwości wyłączenia zawiadomienia. Na końcu dodawana jest 
	    reguła blokująca jakikolwiek inny ruch.
	    </para>
	    <para>Konfigurację tego skryptu zawiera sekcja <emphasis>[macs]</emphasis>
	    w pliku <filename>lms.ini</filename>: </para>
	    <itemizedlist>
        	<listitem>
		    <para>networks </para>
		    <para>Lista nazw sieci (oddzielonych spacjami), które mają być uwzględnione podczas generowania
		    pliku. Jeśli nie ustawiono, zostanie stworzony plik konfiguracyjny dla wszystkich sieci.</para>
		    <para>Przykład:	<prompt>networks = public-custa public-custb</prompt></para>
		</listitem>
        	<listitem>
		    <para>customergroups </para>
		    <para>Lista nazw grup klientów (oddzielonych spacjami), które mają być uwzględnione podczas generowania
		    pliku. Jeśli nie ustawiono, zostanie stworzony plik konfiguracyjny dla wszystkich grup klientów.</para>
		    <para>Przykład:	<prompt>customergroups = osiedle1 osiedle2</prompt></para>
		</listitem>
           	<listitem>
		    <para>iptables_binary</para>
		    <para>Lokalizacja programu iptables. Domyślnie: /sbin/iptables</para>
		    <para>Przykład:	<prompt>iptables_binary = /usr/local/sbin/iptables</prompt></para>
		</listitem>
		<listitem>
		    <para>config_owneruid</para>
		    <para>UID właściciela pliku. Domyślnie: 0 (root).</para>
		    <para>Przykład:	<prompt>config_owneruid = 0</prompt></para>
		</listitem>
		<listitem>
		    <para>config_file</para>
		    <para>Lokalizacja pliku. Domyślnie: /etc/rc.d/rc.macs.</para>
		    <para>Przykład:	<prompt>config_file = /etc/conf.d/rc.macs</prompt></para>
		</listitem>
        	<listitem>
		    <para>config_ownergid</para>
		    <para>GID właściciela pliku. Domyślnie: 0 (root).</para>
		    <para>Przykład:	<prompt>config_ownergid = 0</prompt></para>
		</listitem>
	    	<listitem>
		    <para>config_permission</para>
		    <para>Uprawnienia pliku skryptu. Domyślnie: 700 (rwx------).</para>
		    <para>Przykład:	<prompt>config_permission = 700</prompt></para>
		</listitem>
	    	<listitem>
		    <para>chain</para>
		    <para>Łańcuch do którego będą dodawane generowane reguły. Domyślnie: MACS.</para>
		    <para>Przykład:	<prompt>chain = TESTY_MACOW</prompt></para>
		</listitem>
	    	<listitem>
		    <para>redirect_address</para>
		    <para>Adres IP + port na który będzie przekierowywany niesklasyfikowany ruch http i webcache. Domyślnie: 127.0.0.1:80.</para>
		    <para>Przykład:	<prompt>redirect_address = 192.168.1.1:3000</prompt></para>
		</listitem>
	    	<listitem>
		    <para>lock_noaccess</para>
		    <para>Czy generować regułki testujące z decyzją RETURN dla komputerów, które są odłączone. Domyślnie: 0 (reguły są generowane)</para>
		    <para>Przykład:	<prompt>lock_noaccess = 1</prompt></para>
		</listitem>
	    </itemizedlist>
    </sect2>
    <sect2 id="lms-makehosts" xreflabel="lms-makehosts">
	<title>lms-makehosts</title>
	    <para>Skrypt służący do generowania pliku /etc/hosts zawierającego odwzorowania nazw komputerów
	    na adresy IP.
	    </para>
	    <para>Konfigurację tego skryptu zawiera sekcja <emphasis>[hosts]</emphasis>
	    w pliku <filename>lms.ini</filename>: </para>
	    <itemizedlist>
        	<listitem>
		    <para>networks </para>
		    <para>Lista nazw sieci (oddzielonych spacjami), które mają być uwzględnione podczas generowania
		    pliku. Jeśli nie ustawiono, zostanie stworzony plik konfiguracyjny dla wszystkich sieci.</para>
		    <para>Przykład:	<prompt>networks = public-custa public-custb</prompt></para>
		</listitem>
        	<listitem>
		    <para>customergroups </para>
		    <para>Lista nazw grup klientów (oddzielonych spacjami), które mają być uwzględnione podczas generowania
		    pliku. Jeśli nie ustawiono, zostanie stworzony plik konfiguracyjny dla wszystkich grup klientów.</para>
		    <para>Przykład:	<prompt>customergroups = osiedle1 osiedle2</prompt></para>
		</listitem>
		<listitem>
		    <para>config_owneruid</para>
		    <para>UID właściciela pliku. Domyślnie: 0 (root).</para>
		    <para>Przykład:	<prompt>config_owneruid = 0</prompt></para>
		</listitem>
		<listitem>
		    <para>config_file</para>
		    <para>Lokalizacja pliku. Domyślnie: /etc/hosts.</para>
		    <para>Przykład:	<prompt>config_file = /etc/hosts</prompt></para>
		</listitem>
        	<listitem>
		    <para>config_ownergid</para>
		    <para>GID właściciela pliku. Domyślnie: 0 (root).</para>
		    <para>Przykład:	<prompt>config_ownergid = 0</prompt></para>
		</listitem>
	    	<listitem>
		    <para>config_permission</para>
		    <para>Uprawnienia pliku skryptu. Domyślnie: 644 (rw-r--r--).</para>
		    <para>Przykład:	<prompt>config_permission = 600</prompt></para>
		</listitem>
	    	<listitem>
		    <para>config_header</para>
		    <para>Pierwsza linia w pliku /etc/hosts. Domyślnie: 127.0.0.1 localhost localhost.localdomain.</para>
		    <para>Przykład:	<prompt>config_header = 192.168.1.1 serwer serwer.nasza-siec</prompt></para>
		</listitem>
	    </itemizedlist>
    </sect2>
    <sect2 id="lms-makewarnings" xreflabel="lms-makewarnings">
	<title>lms-makewarnings</title>
	    <para>Skrypt służący do generowania pliku zawierającego reguły netfiltra przekierowujące ruch http i webcache
	    klientów o saldzie mniejszym lub równym od zadanego na zadany adres IP i port (wykorzystywana
	    jest tablica nat, testy adresów źródłowych IP oraz decyzja DNAT).
	    </para>
	    <para>Konfigurację tego skryptu zawiera sekcja <emphasis>[warnings]</emphasis>
	    w pliku <filename>lms.ini</filename>: </para>
	    <itemizedlist>
        	<listitem>
		    <para>networks </para>
		    <para>Lista nazw sieci (oddzielonych spacjami), które mają być uwzględnione podczas generowania
		    pliku. Jeśli nie ustawiono, zostanie stworzony plik konfiguracyjny dla wszystkich sieci.</para>
		    <para>Przykład:	<prompt>networks = public-custa public-custb</prompt></para>
		</listitem>
        	<listitem>
		    <para>customergroups </para>
		    <para>Lista nazw grup klientów (oddzielonych spacjami), które mają być uwzględnione podczas generowania
		    pliku. Jeśli nie ustawiono, zostanie stworzony plik konfiguracyjny dla wszystkich grup klientów.</para>
		    <para>Przykład:	<prompt>customergroups = osiedle1 osiedle2</prompt></para>
		</listitem>
           	<listitem>
		    <para>iptables_binary</para>
		    <para>Lokalizacja programu iptables. Domyślnie: /sbin/iptables</para>
		    <para>Przykład:	<prompt>iptables_binary = /usr/local/sbin/iptables</prompt></para>
		</listitem>
		<listitem>
		    <para>config_owneruid</para>
		    <para>UID właściciela pliku. Domyślnie: 0 (root).</para>
		    <para>Przykład:	<prompt>config_owneruid = 0</prompt></para>
		</listitem>
		<listitem>
		    <para>config_file</para>
		    <para>Lokalizacja pliku. Domyślnie: /etc/rc.d/rc.warnings.</para>
		    <para>Przykład:	<prompt>config_file = /etc/conf.d/rc.warnings</prompt></para>
		</listitem>
        	<listitem>
		    <para>config_ownergid</para>
		    <para>GID właściciela pliku. Domyślnie: 0 (root).</para>
		    <para>Przykład:	<prompt>config_ownergid = 0</prompt></para>
		</listitem>
	    	<listitem>
		    <para>config_permission</para>
		    <para>Uprawnienia pliku skryptu. Domyślnie: 700 (rwx------).</para>
		    <para>Przykład:	<prompt>config_permission = 700</prompt></para>
		</listitem>
	    	<listitem>
		    <para>chain</para>
		    <para>Łańcuch do którego będą dodawane generowane reguły. Domyślnie: WARNINGS.</para>
		    <para>Przykład:	<prompt>chain = OSTRZEZENIA</prompt></para>
		</listitem>
	    	<listitem>
		    <para>redirect_address</para>
		    <para>Adres IP + port na który będzie przekierowywany ruch http i webcache pochodzący z hostów dla których ma być włączone ostrzeżenie o zaległościach finansowych. Domyślnie: 127.0.0.1:80.</para>
		    <para>Przykład:	<prompt>redirect_address = 192.168.1.1:3001</prompt></para>
		</listitem>
	    	<listitem>
		    <para>limit</para>
		    <para>Saldo klienta przy którym dla wszystkich komputerów klienta generowane są regułki przekierowujące ruch. Domyślnie: 0 </para>
		    <para>Przykład:	<prompt>limit = -85</prompt></para>
		</listitem>
	    </itemizedlist>
    </sect2>
    <sect2 id="lms-makemessages" xreflabel="lms-makemessages">
	<title>lms-makemessages</title>
	    <para>Skrypt służący do generowania pliku zawierającego reguły netfiltra przekierowujące ruch http i webcache
	    klientów dla których zostało włączone przekazywanie wiadomości administracyjnej (ostrzeżenia) na zadany adres IP i port (wykorzystywana
	    jest tablica nat, testy adresów źródłowych IP oraz decyzja DNAT).
	    </para>
	    <para>Konfigurację tego skryptu zawiera sekcja <emphasis>[messages]</emphasis>
	    w pliku <filename>lms.ini</filename>: </para>
	    <itemizedlist>
        	<listitem>
		    <para>networks </para>
		    <para>Lista nazw sieci (oddzielonych spacjami), które mają być uwzględnione podczas generowania
		    pliku. Jeśli nie ustawiono, zostanie stworzony plik konfiguracyjny dla wszystkich sieci.</para>
		    <para>Przykład:	<prompt>networks = public-custa public-custb</prompt></para>
		</listitem>
        	<listitem>
		    <para>customergroups </para>
		    <para>Lista nazw grup klientów (oddzielonych spacjami), które mają być uwzględnione podczas generowania
		    pliku. Jeśli nie ustawiono, zostanie stworzony plik konfiguracyjny dla wszystkich grup klientów.</para>
		    <para>Przykład:	<prompt>customergroups = osiedle1 osiedle2</prompt></para>
		</listitem>
           	<listitem>
		    <para>iptables_binary</para>
		    <para>Lokalizacja programu iptables. Domyślnie: /sbin/iptables</para>
		    <para>Przykład:	<prompt>iptables_binary = /usr/local/sbin/iptables</prompt></para>
		</listitem>
		<listitem>
		    <para>config_owneruid</para>
		    <para>UID właściciela pliku. Domyślnie: 0 (root).</para>
		    <para>Przykład:	<prompt>config_owneruid = 0</prompt></para>
		</listitem>
		<listitem>
		    <para>config_file</para>
		    <para>Lokalizacja pliku. Domyślnie: /etc/rc.d/rc.messages.</para>
		    <para>Przykład:	<prompt>config_file = /etc/conf.d/rc.messages</prompt></para>
		</listitem>
        	<listitem>
		    <para>config_ownergid</para>
		    <para>GID właściciela pliku. Domyślnie: 0 (root).</para>
		    <para>Przykład:	<prompt>config_ownergid = 0</prompt></para>
		</listitem>
	    	<listitem>
		    <para>config_permission</para>
		    <para>Uprawnienia pliku skryptu. Domyślnie: 700 (rwx------).</para>
		    <para>Przykład:	<prompt>config_permission = 700</prompt></para>
		</listitem>
	    	<listitem>
		    <para>chain</para>
		    <para>Łańcuch do którego będą dodawane generowane reguły. Domyślnie: MESSAGES.</para>
		    <para>Przykład:	<prompt>chain = WIADOMOSCI</prompt></para>
		</listitem>
	    	<listitem>
		    <para>redirect_address</para>
		    <para>Adres IP + port na który będzie przekierowywany ruch http i webcache pochodzący z hostów dla których ma być włączona wiadomość administracyjna. Domyślnie: 127.0.0.1:80.</para>
		    <para>Przykład:	<prompt>redirect_address = 192.168.1.1:3002</prompt></para>
		</listitem>
	    </itemizedlist>
    </sect2>
    <sect2 id="lms-fping" xreflabel="lms-fping">
	<title>lms-fping</title>
	    <para>Skrypt zapisuje do bazy informacje o aktywności komputerów. 
	    Do skanowania wykorzystywany jest szybki program fping (z opcjami -ar1). 
	    Najpierw tworzona jest lista hostów, a następnie, po wywołaniu fping'a, 
	    komputerom włączonym zostaje przypisana data i czas skanowania. Dzięki temu 
	    mamy w bazie informacje kiedy dany komputer był ostatnio włączony.</para>
	    <para>Konfigurację tego skryptu zawiera sekcja <emphasis>[fping]</emphasis>
	    w pliku <filename>lms.ini</filename>: </para>
	    <itemizedlist>
        	<listitem>
		    <para>networks </para>
		    <para>Lista nazw sieci (oddzielonych spacjami), które mają być uwzględnione podczas skanowania.
		    Jeśli nie ustawiono przeskanowane zostaną wszystkie komputery.</para>
		    <para>Przykład:	<prompt>networks = public-custa public-custb</prompt></para>
		</listitem>
           	<listitem>
		    <para>fping_binary</para>
		    <para>Lokalizacja programu fping. Domyślnie: /usr/sbin/fping</para>
		    <para>Przykład:	<prompt>fping_binary = /usr/local/sbin/fping</prompt></para>
		</listitem>
		<listitem>
		    <para>temp_file</para>
		    <para>Lokalizacja pliku tymczasowego na listę hostów, który
		    po wykonaniu skryptu zostaje usunięty. Domyślnie: /tmp/fping_hosts.</para>
		    <para>Przykład:	<prompt>temp_file = /tmp/hosts</prompt></para>
		</listitem>
	    </itemizedlist>
    </sect2>
    <sect2 id="lms-reminder" xreflabel="lms-reminder">
	<title>lms-reminder</title>
	  <para>Skrypt służy do przypominania klientom o zaplanowanych na dany dzień 
	  zadaniach. Lista zdarzeń przypisanych w Terminarzu danemu klientowi w bieżącym
	  dniu zostaje wysłana na jego adres e-mail.</para>
          <para>Konfigurację dla lms-reminder umieszcza się w pliku <filename>lms.ini</filename> 
	  w sekcji <emphasis>[reminder]</emphasis>. Możesz tam ustawić następujące parametry:</para>
	    <itemizedlist>
        	<listitem>
	    	    <para>mailsubject (wymagany)</para>
	    	    <para>Pozwala na ustalenie tematu e-maila wysyłanego do klienta. Domyślnie: nie ustawione.</para>
	    	    <para>Przykład:	<prompt>mailsubject = 'Terminarz z LMSa'</prompt></para>
		</listitem>
        	<listitem>
            	    <para>mailfrom (wymagany)</para>
            	    <para>Adres e-mail z którego zostanie wysłany e-mail. Proszę pamiętać, że na 
	    	    niektórych MTA (np. exim) konto to musi istnieć w systemie. 
	    	    Domyślnie nieustawione.</para>
            	    <para>Przykład:	<prompt>mailfrom = staff@domain.pl</prompt></para>
        	</listitem>
        	<listitem>
            	    <para>mailfname (wymagany)</para>
            	    <para>Nazwa nadawcy maila.</para>
            	    <para>Przykład:	<prompt>mailfname = LMS</prompt></para>
        	</listitem>
		<listitem>
            	    <para>smtp_host</para>
            	    <para>Serwer SMTP, przez który ma zostać wysłana wiadomość. Domyślnie: localhost</para>
            	    <para>Przykład:	<prompt>smtp_host = smtp.mydomain.pl</prompt></para>
        	</listitem>
		<listitem>
		    <para>smtp_auth</para>
		    <para>Sposób autoryzacji. Dozwolone wartości: LOGIN, PLAIN, CRAM-MD5, NTLM.
		    Domyślnie: pusta (brak autoryzacji)</para>
		    <para>Przykład:	<prompt>smtp_auth = LOGIN</prompt></para>
		</listitem>
		<listitem>
		    <para>smtp_user</para>
		    <para>Login do autoryzacji SMTP. Domyślnie: pusty</para>
		    <para>Przykład:	<prompt>smtp_user = admin</prompt></para>
		</listitem>
		<listitem>
		    <para>smtp_pass</para>
		    <para>Hasło do konta zdefiniowanego w opcji smtp_user. Domyślnie: puste</para>
		    <para>Przykład:	<prompt>smtp_pass = password</prompt></para>
		</listitem>
		<listitem>
        	    <para>debug_email (opcjonalny)</para>
            	    <para>Adres e-mail do debugowania. Gdy ustawiony, cała poczta zostaje 
	    	    wysłana na dany email zamiast do klientów. Przydatne do debugowania 
	    	    i sprawdzania czy wszystko działa OK. Domyślnie: nie ustawiony.</para>
            	    <para>Przykład:	<prompt>debug_email = alec@domain.pl</prompt></para>
        	</listitem>
            </itemizedlist>
    </sect2>
    <sect2 id="lms-rtparser" xreflabel="lms-rtparser">
	<title>lms-rtparser</title>
	    <para>Jest to tzw. backend dla systemu Helpdesk, czyli skrypt który współpracując
	    z serwerem pocztowym zapisuje do bazy danych wszystkie wiadomości skierowane na
	    adresy Helpdesk'a. Skrypt pobiera z wejścia wiadomość pocztową, parsuje zawartość
	    i umieszcza zgłoszenie w kolejce, wysyłając do zgłaszających
	    potwierdzenie przyjęcia wiadomości. W temacie potwierdzenia znajduje się symbol
	    zgłoszenia. Podczas parsowania wiadomości następuje, na 
	    podstawie tematu wiadomości, próba rozpoznania czy wiadomość nie jest odpowiedzią na inną wiadomość z już
	    przypisanym numerem zgłoszenia. Od wiadomości zostają odłączone załączniki
	    i umieszczone w katalogu zdefiniowanym w opcji <filename>mail_dir</filename>.</para>
	    <para>Oprócz modułów Perla standardowo wymaganych przez resztę skryptów, należy 
	    zainstalować także moduły <filename>MIME::Parser</filename> i <filename>MIME::Words</filename> z 
	    pakietu MIME-Tools oraz <filename>Mail::Sender</filename> i <filename>Text::Iconv</filename>.</para>
	    <para>Skrypt można uruchamiać na wiele sposobów. Jednym z nich jest
	    stworzenie skryptu powłoki, który odczytując skrzynkę pocztową wywoła lms-rtparser
	    dla każdego maila. Wygodniejszym zastosowaniem jest jednak zintegrowanie
	    go z serwerem pocztowym. Poniżej przedstawiono sposób podłączenia go do
	    postfixa przy użyciu opcji header_checks.
<screen>
# plik main.cf:
header_checks = regexp:/etc/postfix/header_checks

# plik header_checks
/^To:.*adres@domena.*/ FILTER filter:dummy

# plik master.cf:
filter unix - n n - 10 pipe
      -flags=Rq user=nobody argv=/path/to/lms-rtparser
</screen>
	    Powyższy sposób działa dla postfixa w wersjach nowszych od 2.0.
	    Wcześniejsze wersje nie obsługują FILTER w header_checks. Z tym
	    problemem można sobie poradzić używając procmaila:
<screen>
# plik main.cf
mailbox_command = /usr/bin/procmail

# w katalogu domowym klienta, którego maile mają być obsługiwane przez HelpDesk:
# plik .forward
"|IFS=' ' && exec /usr/bin/procmail -f - || exit 75 #YOUR_USERNAME"

# plik .procmailrc
:0 c
   * ^To.*adres@domena
   | /bin/lms-rtparser

:0 A
$DEFAULT
</screen></para>
	    <para>Kolejny listing to przykład podłączenia parsera do Exima 
	    przy użyciu filtrów systemowych:
<screen>
# plik exim.conf

system_filter_pipe_transport = address_pipe

# plik system_filter.txt

if $recipients is "adres_kolejki@domena.pl"
then 
     pipe "/sciezka/do/lms-rtparser -q id_kolejki"
endif
</screen></para>
	    <para><note><para>Jeżeli chcesz aby wiadomości wprowadzane poprzez <emphasis>lms-ui</emphasis>
	    były kierowane do parsera, zamiast bezpośrednio zapisywane do bazy, powinieneś włączyć
	    opcję konfiguracyjną <filename>helpdesk_backend_mode</filename> w sekcji
	    <emphasis>[phpui]</emphasis>.</para></note></para>
	    <para>Konfigurację tego skryptu zawiera sekcja <emphasis>[rt]</emphasis>
	    w pliku <filename>lms.ini</filename>: </para>
	    <itemizedlist>
        	<listitem>
		    <para>default_queue</para>
		    <para>Numer ID kolejki, do której trafią zgłoszenia. Jeśli nie
		    podano, Kolejka zostanie odszukana na podstawie adresu odbiorcy maila.
		    Opcja ta może zostać nadpisana przy pomocy parametru -q przy
		    uruchomieniu skryptu. Domyślnie: niezdefiniowana.</para>
		    <para>Przykład:	<prompt>default_queue = </prompt></para>
		</listitem>
		<listitem>
		    <para>mail_from</para>
		    <para>Nadawca potwierdzenia (adres). Jeśli nie zdefiniowano, zostanie użyty adres
		    kolejki do której zapisano zgłoszenie. Domyślnie: pusty.</para>
		    <para>Przykład:	<prompt>mail_from = rt@net.pl</prompt></para>
		</listitem>
		<listitem>
		    <para>mail_from_name</para>
		    <para>Nadawca potwierdzenia (nazwa). Domyślnie: niezdefiniowana.</para>
		    <para>Przykład:	<prompt>mail_from_name = 'BOK SuperLAN'</prompt></para>
		</listitem>
		<listitem>
		    <para>autoreply_subject</para>
		    <para>Temat potwierdzenia. Tu można korzystać ze zmiennych %tid - 
		    identyfikator zgłoszenia i %subject - temat zgłoszenia.
		    Domyślnie: "[RT#%tid] Receipt of request '%subject'".</para>
		    <para>Przykład:	<prompt>autoreply_subject = "[RT#%tid] Potwierdzenie odbioru zgłoszenia o temacie '%subject'"</prompt></para>
		</listitem>
		<listitem>
		    <para>autoreply_body</para>
		    <para>Treść potwierdzenia. Tu można korzystać ze zmiennych: %tid - 
		    identyfikator zgłoszenia i %subject - temat zgłoszenia.
		    Domyślnie: "Your request was registered in our system.\nTo this request was assigned ticket identifier RT#%tid.\nPlease, place string [RT#%tid] in subject field of any\nmail relating to this request.\n."</para>
		    <para>Example:	<prompt>autoreply_body = "Państwa zgłoszenie zostało zarejestrowane w naszym systemie.\nZgłoszeniu został nadany numer: RT#%tid.\nW korespondencji związanej z tym zgłoszeniem prosimy podawać w temacie ciąg znaków [RT#%tid].\n"</prompt></para>
		</listitem>
    		<listitem>
            	    <para>smtp_host</para>
            	    <para>Serwer SMTP, przez który ma zostać wysłana wiadomość. Domyślnie: localhost</para>
            	    <para>Przykład:	<prompt>smtp_host = smtp.mydomain.pl</prompt></para>
        	</listitem>
		<listitem>
		    <para>smtp_auth</para>
		    <para>Sposób autoryzacji. Dozwolone wartości: LOGIN, PLAIN, CRAM-MD5, NTLM.
		    Domyślnie: pusta (brak autoryzacji)</para>
		    <para>Przykład:	<prompt>smtp_auth = LOGIN</prompt></para>
		</listitem>
		<listitem>
		    <para>smtp_user</para>
		    <para>Login do autoryzacji SMTP. Domyślnie: pusty</para>
		    <para>Przykład:	<prompt>smtp_user = admin</prompt></para>
		</listitem>
		<listitem>
		    <para>smtp_pass</para>
		    <para>Hasło do konta zdefiniowanego w opcji smtp_user. Domyślnie: puste</para>
		    <para>Przykład:	<prompt>smtp_pass = password</prompt></para>
		</listitem>
		<listitem>
		    <para>mail_dir</para>
		    <para>Katalog w którym zostaną zapisane załączniki. Katalog ten powinien być
		    dostępny dla apache'a i klienta uruchamiającego lms-rtparser. Gdy nie ustawiono, 
		    załączniki zostaną utracone. Domyślnie: niezdefiniowany.</para>
		    <para>Przykład:	<prompt>mail_dir = /usr/local/lms/mail</prompt></para>
		</listitem>
		<listitem>
		    <para>tmp_dir</para>
		    <para>Katalog tymczasowy. Domyślnie zostanie użyty katalog 
		    zdefiniowany w zmiennej systemowej lub <filename>/tmp</filename>.</para>
		    <para>Przykład:	<prompt>tmp_dir = /home/user/tmp</prompt></para>
		</listitem>
		<listitem>
		    <para>auto_open</para>
		    <para>Włączenie tej opcji spowoduje, że w momencie odebrania
		    wiadomości dotyczącej zgłoszenia zamkniętego (lub martwego)
		    zgłoszenie to zostanie otwarte. Domyślnie: wyłączone.</para>
		    <para>Przykład:	<prompt>auto_open = 1</prompt></para>
		</listitem>
		<listitem>
		    <para>newticket_notify</para>
		    <para>Włączenie tej opcji spowoduje wysyłanie powiadomień o
		    nowych zgłoszeniach do użytkowników którzy mają prawa do
		    konkretnej kolejki. Domyślnie: wyłączone.</para>
		    <para>Przykład:	<prompt>newticket_notify = 1</prompt></para>
		</listitem>
		<listitem>
		    <para>lms_url</para>
		    <para>Do powiadomienia o nowym zgłoszeniu zostaje załączony link 
		    do tego zgłoszenia w LMS-UI, aby użytkownik mógł szybko przejść do
		    tego zgłoszenia. Domyślnie: http://localhost/lms/.</para>
		    <para>Przykład:	<prompt>lms_url = https://lms.domena.pl/</prompt></para>
		</listitem>
		<listitem>
			<para>include_customerinfo</para>
			<para>Do powiadomienia o nowym zgłoszeniu zostają załączone podstawowe 
			dane klienta, jeżeli został on rozpoznany po adresie mailowym. 
			Domyślnie: włączona.</para>
			<para>Przykład:	<prompt>include_customerinfo = 0</prompt></para>
		</listitem>
	    </itemizedlist>
    </sect2>
    <sect2 id="lms-teryt" xreflabel="lms-teryt">
	<title>lms-teryt</title>
	<para>Skrypt służący do importu i aktualizacji danych bazy TERYT. Zawiera również możliwość
	pobrania plików bazy z Internetu, a także procedurę przypisywania identyfikatorów
	TERYT do istniejących komputerów, które mają zdefiniowany adres ale nie mają przypisanego TERYTu.
	</para>
	<para>Skrypt zawiera następujące opcje uruchomieniowe, które można łączyć:</para>
	<itemizedlist>
		<listitem>
			<para><prompt>-f, --fetch</prompt></para>
			<para>Włącza procedurę pobierania (i rozpakowania) plików bazy TERYT z Internetu.
			Wymagane jest umożliwienie połączenia HTTP z serwerem określonych w opcji 'url'
			oraz zainstalowanie programu unzip.</para>
		</listitem>
		<listitem>
			<para><prompt>-l, --list=&lt;lista&gt;</prompt></para>
			<para>Zawęża działanie opcji importu/aktualizacji do określonych województw.
			Podobnie jak w opcji konfiguracyjnej 'state_list' podajemy tutaj numeryczne identyfikatory
			oddzielone przecinkami. Ze względu na duży rozmiar całej bazy, wskazane jest ograniczenie się
			tylko do wybranych województw. Identyfikatory można znaleźć w pliku TERC.xml.
			<simplelist>
				<member>2 - dolnośląskie</member>
				<member>4 - kujawsko-pomorskie</member>
				<member>6 - lubelskie</member>
				<member>8 - lubuskie</member>
				<member>10 - łódzkie</member>
				<member>12 - małopolskie</member>
				<member>14 - mazowieckie</member>
				<member>16 - opolskie</member>
				<member>18 - podkarpackie</member>
				<member>20 - podlaskie</member>
				<member>22 - pomorskie</member>
				<member>24 - śląskie</member>
				<member>26 - świętokrzyskie</member>
				<member>28 - warmiśko-mazurskie</member>
				<member>30 - wielkopolskie</member>
				<member>32 - zachodniopomorskie</member>
			</simplelist>
			</para>
		</listitem>
		<listitem>
			<para><prompt>-u, --update</prompt></para>
			<para>Import danych do bazy LMSa. Jeśli baza była już wcześniej importowana,
			nastąpi aktualizacja bazy.</para>
		</listitem>
		<listitem>
			<para><prompt>-m, --merge</prompt></para>
			<para>Przypisanie identyfikatorów TERYT dla komputerów/urządzeń, które
			nie zostały jaszcze przypisane, ale posiadają wpisany adres lokalizacji.
			Algorytm jest dość prosty i nie ma pewności, że wszystkie adresy
			zostaną rozpoznane.</para>
		</listitem>
	</itemizedlist>
	<para>Konfigurację tego skryptu zawiera sekcja <emphasis>[teryt]</emphasis>
	w pliku <filename>lms.ini</filename>: </para>
	<itemizedlist>
        	<listitem>
			<para>url</para>
			<para>Adres strony pobierania plików bazy TERYT. Domyślnie zawiera poniższy link.</para>
			<para>Przykład:	<prompt>url = http://www.stat.gov.pl/broker/access/prefile/listPreFiles.jspa</prompt></para>
		</listitem>
        	<listitem>
			<para>dir</para>
			<para>Katalog w którym, są przechowywane rozpakowane pliki (xml) bazy TERYT.
			W tym katalogu zostaną też zapisane pobrane pliki. Domyślnie: katalog uruchomienia skryptu.</para>
			<para>Przykład:	<prompt>dir = /var/lib/teryt</prompt></para>
		</listitem>
		<listitem>
			<para>unzip_binary</para>
			<para>Lokalizacja programu unzip. Domyślnie: /usr/bin/unzip.</para>
			<para>Przykład:	<prompt>unzip_binary = /sbin/unzip</prompt></para>
		</listitem>
		<listitem>
			<para>state_list</para>
			<para>Lista identyfikatorów województw, oddzielonych przecinkami, które
			będą brane pod uwagę podczas importu. W celu minimalizacji rozmiaru bazy danych i czasu
			działania skryptu najlepiej ograniczyć się do wybranych województw.</para>
			<para>Przykład:	<prompt>state_list = 2</prompt></para>
		</listitem>
	</itemizedlist>
    </sect2>
    </sect1>
</chapter>
