SAMBA II - drukowanie przez sambke.

Siedzac po kolejnej nie przespanej nocy... a dokoncze to co zaczalem... A wiec... samba daje bardzo wygodnie zainstalowac sie jako swoisty "print serwer" zainstalowany w srodku sieci, na ktorym trzymane sa kolejki wszystkich dostepnych w sieci drukarek, podlaczonych do koncowek Windows. Jest to wygodne ponieważ nie musisz przestawiac pani Marysi z ksiegowosci portu drukarki na jej NT tylko dlatego ze wlasnie trzeba bylo przeinstalowac system pani Zosi i zmieniles mu z jakis wzgledow nazwe, czy przypisales go do innej grupy roboczej a chcesz zeby dalej te same osoby kozystaly z drukarki podpietej do jej LPT. Wystarczy ze zmienisz to w jednym miejscu, w sambie a pozostale komputery poslusznie beda drukowaly jak by nie bylo zadnej zmiany. Pierwsze co trzebaby zrobic to przygotowac odpowiednie regulki do pliku /etc/smb.conf .

[global]
printcap name = /etc/printcap  # plik w ktorym sa definicje drukarek
load printers = yes   # to zaladuje plik /etc/printcap z definicjami drukarek

# opisuje drukarke ktora bedzie widziana jako HP1100
[hp1100]
        path = /var/spool/samba/hp1100  # sciezka gdzie bedzie spool drukarki
        writeable = Yes
        create mask = 0700
        guest ok = Yes
        printable = Yes
# konieczne !
        print command = lpr -r -h -P %p %s    # komenda drukwania bedzie przesylana do lpr jako menadzera kolejkowania
        printer = hp     # "hp" to smbol ktory znajduje sie w /etc/printcap  jako opis drukarki

A teraz plik /etc/printcap

hp|lp0:\
        :lp=/dev/null:\
        :sd=/var/spool/samba/hp1100:\      # katalog spooli drukarki ten sam co poprzednio !
        :sh:\
        :if=/usr/bin/smbprint:                        # taki maly skrypcik ktory przesyla wydruk na drukarke do innego komputera

A teraz /usr/bin/smbprint może ale nie musi wyglądać tak :

----------------------------------------------------------------
#!/bin/sh
eval acct_file=\${$#}
spool_dir=`dirname $acct_file`
config_file=$spool_dir/.config            # plik konfiguracyjny
eval `cat $config_file`                        # tu zapamietuje konfiguracje
(
echo "print -"
cat
) | /usr/bin/smbclient "\\\\$server\\$service" $password -U $server -N -P  # a tuuu laczy sie z serwisem drukarki (parametr -P) i wysyla do niego plik... i sie drukuje juz
----------------------------------------------------------------
plik konfiguracyjny .config znajduje sie dla kazdej drukarki w jej katalogu gdzie jest miejsce dla spool'a
w tym przypadku wygladaloby to tak:
plik : /var/spool/samba/hp1100/.config
---------------------------------------
server="komputer_z_drukarka"
service="udostepniona_drukarka_nazwa"
-------------------------------------

Et voila... Ale jest jeszcze :
printer driver  = HP LaserJet 1100
printer driver location = \\MACHINE\PRINTER$

które nieco potrafią poprafić komfort instalacji drukarki na nastepnej maszynie :)
 

A wiec pozdrawiam i do siego roku :)

[krzyzak]