printing howto pl 11 GJ2NY2XWOGI4M5DR3KSK64PTATDWYJIYPEPN5VQ


Drukowanie w Linux-ie: Jak drukować poprzez sieć. Następna strona Poprzednia strona Spis treści 11. Jak drukować poprzez sieć. Jedną z zalet lpd jest to, że można przy jego pomocy drukować na drukarkach przyłączonych fizycznie do innych komputerów. Jeśli dobrze dobierzesz kombinację skryptów i narzędzi, to możesz drukować przy pomocy lpr na wszelkiego rodzaju sieciach. 11.1 Na hoście unix/lpd. Aby pozwolić odległym maszynom drukować na twojej drukarce, musisz je umieścić w /etc/hosts.equiv lub /etc/hosts.lpd. (Zauważ, że hosts.equiv ma kilka innych efektów; upewnij się, że wiesz co robisz jeśli umieszczasz tam jakąś maszynę). Używając opcji rs możesz pozwolić tylko wybranym użytkownikom na drukowanie; informacje na ten temat znajdziesz na stronie podręcznika systemowego na temat lpd. Przy pomocy lpd. Aby wydrukować coś na innej maszynie, musisz zrobić pozycję w /etc/printcap podobną do tej: # REMOTE djet500 lp|dj|deskjet:\ :sd=/var/spool/lpd/dj:\ :rm=jakaś.odległa.maszyna.pl:\ :rp=nazwa_drukarki:\ :lp=/dev/null:\ :sh: Zauważ, że lokalnie nadal znajduje się katalog zadań obsługiwany przez lpd. Jeśli odległa maszyna jest zajętą albo wyłączona, to zadania do drukowania czekają lokalnie aż będą mogły zostać wysłane. Przy pomocy rlpr. Żeby ominąć konfigurowanie lokalnego lpd, możesz użyć rlpr, aby wysłać coś bezpośrednio do kolejki na odległej maszynie. Jest to bardzo użyteczne jeśli drukujesz na różnych drukarkach tylko okazyjnie. Z ogłoszenia o rlpr: Rlpr używa protokołu TCP/IP, aby wysłać zadania do drukowania do serwera lpd gdziekolwiek w sieci. W przeciwieństwie do lpr, ten *nie* wymaga, żeby drukarki, na których chcesz drukować były znane dla lokalnej maszyny (np. w /etc/printcap) i przez to jest bardziej elastyczny i wymaga mniejszego nakładu pracy administratora. rlpr może zostać użyty gdziekolwiek, gdzie mógłby zostać użyty zwykły lpr, i jest kompatybilny w dół z tradycyjnym lpr z BSD. Najważniejszą zaletą rlpr jest, to że można drukować *skądkolwiek dokądkolwiek*, niezależnie od tego jak jest skonfigurowany system, z którego chcesz drukować. Może też być użyty jako serwer, tak że klienci uruchomieni na innych maszynach jak np.: netscape, xemacs, itp. mogą drukować na twojej drukarce małym nakładem wysiłku. Rlpr dostępny jest na SUNSite Polska. 11.2 Na Win95, WinNT, LanManager lub Sambie. Jest dostępne mini-HOWTO "Printing to Windows", które zawiera więcej inormacji niż ta sekcja. Możliwe jest przekierowanie kolejki lpd poprzez program smbclient (część pakietu Samba) do serwisu drukowania Samby opartego na TCP/IP. Samba zawiera odpowiedni skrypt pod nazwą smbprint. Krótko mówiąc umieszczasz plik konfiguracyjny dla konkretnej drukarki w katalogu zadań i instalujesz skrypt smbprint jako if. Odpowiednia pozycja w /etc/printcap powinna wyglądać tak: lp|remote-smbprinter:\ :lp=/dev/null:sh:\ :sd=/var/spool/lpd/lp:\ :if=/usr/local/sbin/smbprint: Aby uzyskać więcej informacji na temat konfigurowania takich przypadków przeczytaj dokumentację zawartą w skrypcie smbprint. Możesz także użyć smbclient, aby wysłać zadanie drukowania bezpośrednio do serwisu drukowania SMB bez włączania w to lpd. Zobacz informacje w podręczniku systemowym. 11.3 Na drukarce NetWare. Pakiet ncpfs zawiera narzędzie zwane nprint, które udostępnia te same funkcje co smbprint, ale dla NetWare. Pakiet ten można zdobyć z SunSITE Polska. Z informacji LSM dla wersji 0.16: Przy pomocy pakietu ncpfs możesz montować wolumeny z serwera netware pod Linux-em. Możesz także drukować na drukarkach podłączonych pod netware oraz kolejkować zadania z netware dla drukarek podłączonych do Linux-a. Potrzebujesz jądra w wersji 1.2.x lub 1.3.54 i nowsze. ncpfs nie będzie działał z jądrem w wersji 1.3 poniżej 1.3.54. Aby nprint działał poprzez lpd, musisz napisać mały skrypt, aby drukować "stdin" na drukarkach NetWare i zainstalować go jako if dla kolejki lpd. Otrzymasz coś takiego: sub2|remote-NWprinter:\ :lp=/dev/null:sh:\ :sd=/var/spool/lpd/sub2:\ :if=/var/spool/lpd/nprint-script: Skrypt "nprint-script" może wyglądać tak: #! /bin/sh # Powinieneś najpierw sprawdzić konto guest bez hasła! /usr/local/bin/nprint -S sieć -U nazwa -P hasło -q nazwa-kolejki - 11.4 Na drukarce EtherTalk (Apple). Pakiet netatalk zawiera coś podobnego do nprint i smbclient. Werner Eugster udokumentował procedurę dla drukowania do i z sieci Apple o wiele lepiej niż ja kiedykolwiek; zobacz to w Netatalk-HOWTO. Netatalk nie działa z kartą SMC Etherpower PCI z chip-em DEC tulip. 11.5 Na drukarce HP i innych ethernetowych drukarkach. Drukarki HP i niektóre inne mają ethernetowy interfejs, do którego możesz drukować bezpośrednio używając lpd. Powinieneś postępować zgodnie z instrukcją, którą dostałeś do drukarki albo jej sterownika, ale ogólnie takie drukarki "mają uruchomionego" lpd i dostarczają jedną lub więcej kolejek, do których możesz drukować. HP może pracować np. z takim /etc/printcap: lj-5|remote-hplj:\ :lp=/dev/null:sh:\ :sd=/var/spool/lpd/lj-5:\ :rm=nazwa.drukarki.pl:rp=raw: Drukarki HP LaserJet z interfejsami Jet Direct obsługują generalnie dwie wbudowane kolejki - "surową" (raw), która akceptuje PCL (i możliwe, że PostScript) oraz "tekstową", która akceptuje zwykłe ASCII i radzi sobie od razu z "efektem schodków". W środowisku wielkoskalowym, szczególnie w dużych środowiskach, gdzie niektóre drukarki nie obsługują PostScript-u, może być pożyteczne ustawienie specjalnego serwera drukowania, do którego drukują wszystkie maszyny i na którym uruchamiane są wszystkie zadania ghostscript-a. Pozwala to twojemu Linux-owi działać jako serwer wydruków dla drukarki, i użtykownicy mogą robić swoje wydruki szybko i zajmować się swoimi rzeczami zamiast czekać aż drukarka skończy drukować pracę kogoś innego. Aby to zrobić, ustaw na swoim Linux-ie kolejkę, która wskazuje na HP LJ wyposażoną w ethernet. Teraz ustaw kolejkę u wszystkich swoich klientów na tego Linux-a. Niektóre drukarki sieciowe HP wyraźnie nie akceptują ustawień strony tytułowej (banner page) wysłanej przez klienta; można wyłączyć ich wewnętrznie generowaną taką stronę przez połączenie się z drukarką telnet-em, wciśnięcie dwa razy <<ENTER>>, wpisanie "banner: 0" i następnie "quit". Są inne ustawienia, które możesz także w taki sposób zmienić - wpisz "?", żeby wyświetlić ich listę. Na starszych drukarkach HP. Niektóre drukarki (oraz "czarne pudełka" z sieciowym drukowaniem) obsługują tylko prościutkie nie-protokołowane czyste połączenia TCP. Zauważalne w tej kategorii są wczesne modele kart JetDirect (właczając niektóre JetDirectEx). Ogólnie, aby drukować na takiej drukarce, musisz otworzyć połączenie TCP na danym porcie (z reguły 9100) i umieścić tam swoje zadanie do wydrukowania. Można to zaimplementować m.in. w Perl-u: #!/usr/bin/perl # Thanks to Dan McLaughlin for writing the original version of this # script (And to Jim W. Jones for sitting next to Dan when writing me # for help ;) $fileName = @ARGV[0]; open(IN,"$fileName") || die "Can't open file $fileName"; $dpi300 = "\x1B*t300R"; $dosCr = "\x1B&k3G"; $ends = "\x0A"; $port = 9100 unless $port; $them = "bach.sr.hp.com" unless $them; $AF_INET = 2; $SOCK_STREAM = 1; $SIG{'INT'} = 'dokill'; $sockaddr = 'S n a4 x8'; chop($hostname = `hostname`); ($name,$aliases,$proto) = getprotobyname('tcp'); ($name,$aliases,$port) = getservbyname($port,'tcp') unless $port =~ /^\d+$/;; ($name,$aliases,$type,$len,$thisaddr) = gethostbyname($hostname); ($name,$aliases,$type,$len,$thataddr) = gethostbyname($them); $this = pack($sockaddr, $AF_INET, 0, $thisaddr); $that = pack($sockaddr, $AF_INET, $port, $thataddr); if (socket(S, $AF_INET, $SOCK_STREAM, $proto)) { # print "socket ok\n"; } else { die $!; } # Give the socket an address. if (bind(S, $this)) { # print "bind ok\n"; } else { die $!; } # Call up the server. if (connect(S,$that)) { # print "connect ok\n"; } else { die $!; } # Set socket to be command buffered. select(S); $| = 1; select(STDOUT); # print S "@PJL ECHO Hi $hostname! $ends"; # print S "@PJL OPMSG DISPLAY=\"Job $whoami\" $ends"; # print S $dpi300; # Avoid deadlock by forking. if($child = fork) { print S $dosCr; print S $TimesNewR; while (<IN>) { print S; } sleep 3; do dokill(); } else { while(<S>) { print; } } sub dokill { kill 9,$child if $child; } 11.6 Uruchamianie if dla odległych drukarek. Jedną wadą lpd jest to, że if nie są uruchamiane dla drukarek odległych. Jeśli okaże się, że potrzebujesz if, możesz ustawić podwójną kolejkę i ponownie zkolejkować dany wydruk. Weź ten printcap jako przykład: lj-5:remote-hplj:\ :lp=/dev/null:sh:\ :sd=/var/spool/lpd/lj-5:\ :if=/usr/lib/lpd/filter-lj-5: lj-5-remote:lp=/dev/null:sh:rm=nazwa.drukarki.pl:\ :rp=raw:sd=/var/spool/lpd/lj-5-raw: w świetle tego, skrypt filter-lj-5 to: #!/bin/sh gs <opcje> -q -dSAFER -sOutputFile=- - | \ lpr -Plj-5-remote -U$5 Opcja -U dla lpr działa tylko wtedy jeśli lpr jest uruchomiony jako demon i ustawia ona poprawnie zleceniodawcę kolejki w ponownie zainicjowanej kolejce. Powinieneś raczej użyć bardziej pewnej metody na zdobycie identyfikatora użytkownika, ponieważ niezawsze jest to argument 5. Zobacz w podręcznik systemowym na temat printcap. 11.7 Z Windows. Drukowanie z Windows (czy OS/2) na Linux-ie jest obsługiwane poprzez SMB w pakiecie SAMBA, który także umożliwia współdzielenie plików dla Windows. Samba zawiera całkiem pokaźną dokumentację. Możesz albo skonfigurować magic-filter na Linux-ie i drukować tam PostScript, albo zainstalować sterowniki dla konkretnej drukarki na wszystkich komputerach z Winndows i mieć kolejkę dla nich bez żadnych filtrów. Poleganie na tych sterownikach może czasami dawać lepsze efekty, ale jest to uciążliwe ze strony administratora jeśli jest dużo komputerów z Windows. Więc spróbuj najpierw PostScript-u. 11.8 Z Apple. Netatalk obsługuje drukowanie z Apple poprzez EtherTalk. Na stronie Netatalk HOWTO znajdziesz więcej informacji. 11.9 Z Netware. Jest jakaś obsługa drukowania z Netware przez Linux-a oferowana przez czy z powodu Calder-y, ale nie mam pojęcia czy Linux może oferować drukarki dla klientów Netware. Następna strona Poprzednia strona Spis treści

Wyszukiwarka

Podobne podstrony:
printing howto pl 5
printing howto pl 4
AX25 HOWTO pl 11
printing howto pl 6
info sheet howto pl 11
printing howto pl 12
printing howto pl 10
printing howto pl 8
printing howto pl 9
printing howto pl 14
NIS HOWTO pl 11 (2)
printing howto pl 3
printing howto pl
NET 3 HOWTO pl 11 (2)
printing howto pl 1
DOSEMU HOWTO pl 11 (2)
Ftape HOWTO pl 11 (2)
ppp howto pl 11

więcej podobnych podstron