CUPS: Difference between revisions

From ICO wiki
Jump to navigationJump to search
No edit summary
No edit summary
 
(55 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Sel teemal kirjutab Kristjan Vask
==Wiki versioonid==
Autor: Kristjan Vask ITK, viimati uuendatud 17.05.2011<br>
Uuendus: Ivar Ambos, Kristjan Väljako --[[User:Iambos|Iambos]] 10:53, 27 October 2011 (EEST)
 
v0.1 - sissejuhatus ja ülevaade olemas<br>
v0.2 - paigaldamine ja konf <br>
v0.3 - allikad, piirangud, struktuur korrigeeritud <br>
v0.4 - halduskäsud <br>
v0.5 - info piirangute kohta<br>
v1.0 - parandatud sõnastust, artikkel valmis kasutamiseks


== Sissejuhatus ==
== Sissejuhatus ==
CUPS (eelnevalt tuntud kui Common Unix Printing System, kuid hetkel ilma ametliku nimeta) on printimise süsteem unix-laadsetele op süsteemidele. Cups võimaldab arvutil käituda kui print server. Arvuti mis jooksutab CUPSi on võimaline kätlema printimistöid klientarvutitelt, neid protsessima ning saatma need seejärel korrektsesse printerisse.
CUPS (eelnevalt tuntud kui Common Unix Printing System, kuid hetkel ilma ametliku nimeta) on printimise süsteem unix-laadsetele op süsteemidele. Cups võimaldab arvutil käituda kui printserver.Esimene stabiilne väljalase toimus 1. juunil 1999. Arvuti mis jooksutab CUPSi on võimaline kätlema printimistöid klientarvutitelt, neid protsessima ning saatma need seejärel korrektsesse printerisse.
CUPS koosneb print spoolerist ja ajastajast, filtersüsteemist mis konverteerib printimisandmed formaati mida printer mõistab ning backend süsteemist, mis saadab andmed edasi printerile. Cups kasutab Internet Printing Protocol-i (IPP) tööde ja järjekordade haldamiseks. CUPS on vaikimisi sees paljudes Linuxi distrodes.
CUPS koosneb print spoolerist ja ajastajast, filtersüsteemist mis konverteerib printimisandmed formaati mida printer mõistab ning backend süsteemist, mis saadab andmed edasi printerile. Cups kasutab Internet Printing Protocol-i (IPP) tööde ja järjekordade haldamiseks. CUPS on vaikimisi sees paljudes Linuxi distributsioonides. CUPS kasutab GNU litsentsi. Võimaldab Kerberose abil autentimist.
Ülevaade on tehtud CUPS versiooni 1.4.6 järgi.


== Ülevaade ==
== Ülevaade ==
Line 15: Line 25:


==Paigaldamine ==
==Paigaldamine ==
Ubuntu töölauaversioonidel (näiteks 10.10) on CUPS juba vaikimisi peal, serverile saab selle peale apt-get install cups käsuga.
Ubuntu töölauaversioonidel (näiteks 10.10) on CUPS juba vaikimisi peal, serverile saab selle peale tavalise apt-get käsuga
apt-get install cups


== Konfigureerimine ==
== Konfigureerimine ==
Line 21: Line 32:


Selle näitejuhendi eesmärk on aga tutvustada cupsi seadistamist võimaldamaks võrguprintimist linuxi arvutite jaoks käsurealt.
Selle näitejuhendi eesmärk on aga tutvustada cupsi seadistamist võimaldamaks võrguprintimist linuxi arvutite jaoks käsurealt.
Printerile soovitan kindlasti määrata staatilise ip ning siin juhendis käsitletakse samuti staatilise ip-ga printerit. Konfimiseks tarvilikud juurkasutajaõigused.
Printerile soovitan kindlasti määrata staatilise ip ning siin juhendis käsitletakse samuti staatilise ip-ga printerit. Konfimiseks tarvilikud juurkasutaja õigused.
Juhendi täitmiseks on tarvilikud linuxi käsurea baasteadmised ning eeldab võrgunduse põhitõdede tundmist, juhend pole seega päris algaja jaoks.
Juhendi täitmiseks on tarvilikud linuxi käsurea baasteadmised ning eeldab võrgunduse põhitõdede tundmist, juhend pole seega päris algaja jaoks.


Enne confima hakkamamist teeme backupi cupsi confifailist, kui midagi nihu läheb on hea lihtne taastada:
Enne pihta hakkamamist teeme varukoopia cupsi konfiguratsioonifailist, kui midagi nihu läheb on hea lihtne taastada:
<pre>
<pre>
cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.backup
cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.backup
Line 77: Line 88:
  sudo /usr/sbin/lpadmin -p kontori_printer1 -E -v ipp://192.168.1.12 -m postscript.ppd.gz
  sudo /usr/sbin/lpadmin -p kontori_printer1 -E -v ipp://192.168.1.12 -m postscript.ppd.gz


printerinime võiks asendada sobilikuga ning ip printeri aadressiga ning driveri enda printerile sobivaga.
Printerinime võiks asendada sobilikuga ning ip printeri aadressiga, driveri enda printerile sobivaga.
Driverit tuleb hoida kaustas /usr/share/ppd või /usr/share/cups/model
Driverit tuleb hoida kaustas /usr/share/ppd või /usr/share/cups/model.
 
PPD faili puudumisel saab selle tõmmata printeri tootja kodulehelt või näiteks siit http://www.cups.org/ppd.php.
Cupiga tulevad vaikimisi kaasa samuti mõned generic ppd-d.
 
==Kasulikud käsud haldustööks==
 
Näitab kõiki printimise järjekorras olevaid töid
lpq -a
 
Näitab kõiki printimise järjekorras olevaid töid koos printeri nimega
lpstat -o
 
Näitab printerite nimekirja koos IP-ga
lpstat -v
 
Otsib vastavat printerit
lpstat -v | grep printer_9
 
Näitab printerite nimekirja koos olekuga
lpstat -p
 
printerinimi Näitab kindla printeri töid
lpq -P
 
Kui printeri olek on disabled, siis enablemiseks on käsk:
sudo /usr/sbin/lpadmin -p printerinimi -E
(masinas on käsk sudo /usr/bin/enable nimi)
 
Printimise testimiseks
lp -d printerinimi failinimi
 
Kustutab kindla printeri kõik tööd
sudo lprm -P printeri nimi
 
Kustutab kõik tööd cupsil
cancel -a printername


==Piirangute seadmine==
==Piirangute seadmine==
CUPS has also basic page accounting and quota capabilities.
Cupsil on olemas algelised võimalused printimise üle arve pidamiseks ja piirangute seadmiseks
Iga prinditud leht logitakse faili/var/log/cups/page_log. Failist võib välja lugeda kes printis ja kui palju. Süsteem põhines CUPS filtritel mis analüüsib PostScript andmevoogu et määrata prinditud lehtede arvu.
 
Näide kuidas määrata printimise limiiti 100lk
 
lpadmin -p printer2 -o job-quota-period=604800 -o job-page-limit=100


Every printed page is logged in the file /var/log/cups/page_log So one can everytime read out this file and determine who printed how many pages. The system is based on the CUPS filters. They simply analyse the PostScript data stream to determine the number of pages. And there fore it depends on the quality of the PostScript generated by the applications whether the pages get correctly counted. And if there is a paper jam, pages are already counted and do not get printed. Also Jobs which get rendered printer-ready on the client (Windows) will not get accounted correctly, as CUPS does not understand the proprietary language of the printer.
Job-quota-period tähendab piirangu rakendamiseks määratud aega, aeg on antud sekundites. Kuna tegemist on väga algelise piirangumehhanismiga siis ei saa piiranguid määrata kasutajapõhiselt, mis tähendab et printer võib printida nädalas 100 lk kõigi kasutajate peale kokku. Soovitav on kasutada piirangute haldamiseks CUPSiga ühilduvat lisatarkvara, näiteks PyKota-t.


In addition, one can restrict the amount of pages (or kBytes) which a user is allowed to print in a certain time frame. Such restrictions can be applied to the print queues with the "lpadmin" command.
==Kasutatud kirjandus==
http://dev.linuxfoundation.org/~till/printing-tutorial/tut.html


lpadmin -p printer1 -o job-quota-period=604800 -o job-k-limit=1024
http://www.cups.org/documentation.php/doc-1.4/network.html
lpadmin -p printer2 -o job-quota-period=604800 -o job-page-limit=100


The first command means that within the "job-quota-period" (time always given in seconds, in this example we have one week) users can only print a maximum of 1024 kBytes (= 1 MByte) of data on the printer "printer1". The second command restricts printing on "printer2" to 100 pages per week. One can also give both "job-k-limit" and "job-page-limit" to one queue. Then both limits apply so the printer rejects jobs when the user already reaches one of the limits, either the 1 MByte or the 100 pages.
http://www.linuxquestions.org/linux/answers/Networking/Setting_Up_a_Network_Printer_using_CUPS


This is a very simple quota system: Quotas cannot be given per-user, so a certain user's quota cannot be raised independent of the other users, for example if the user pays his pages or gets a more printing-intensive job. Also counting of the pages is not very sophisticated as it was already shown above.
http://www.linuxfoundation.org/collaborate/workgroups/openprinting/database/cupsfaq


So for more sophisticated accounting it is recommended to use add-on software which is specialized for this job. This software can limit printing per-user, can create bills for the users, use hardware page counting methods of laser printers, and even estimate the actual amount of toner or ink needed for a page sent to the printer by counting the pixels.
http://www.linuxjournal.com/article/8618


The most well-known and complete free software package for print accounting and quotas id PyKota:


http://www.librelogiciel.com/software/PyKota/
[[Category:IT infrastruktuuri teenused]]
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]

Latest revision as of 10:53, 27 October 2011

Wiki versioonid

Autor: Kristjan Vask ITK, viimati uuendatud 17.05.2011
Uuendus: Ivar Ambos, Kristjan Väljako --Iambos 10:53, 27 October 2011 (EEST)

v0.1 - sissejuhatus ja ülevaade olemas
v0.2 - paigaldamine ja konf
v0.3 - allikad, piirangud, struktuur korrigeeritud
v0.4 - halduskäsud
v0.5 - info piirangute kohta
v1.0 - parandatud sõnastust, artikkel valmis kasutamiseks

Sissejuhatus

CUPS (eelnevalt tuntud kui Common Unix Printing System, kuid hetkel ilma ametliku nimeta) on printimise süsteem unix-laadsetele op süsteemidele. Cups võimaldab arvutil käituda kui printserver.Esimene stabiilne väljalase toimus 1. juunil 1999. Arvuti mis jooksutab CUPSi on võimaline kätlema printimistöid klientarvutitelt, neid protsessima ning saatma need seejärel korrektsesse printerisse. CUPS koosneb print spoolerist ja ajastajast, filtersüsteemist mis konverteerib printimisandmed formaati mida printer mõistab ning backend süsteemist, mis saadab andmed edasi printerile. Cups kasutab Internet Printing Protocol-i (IPP) tööde ja järjekordade haldamiseks. CUPS on vaikimisi sees paljudes Linuxi distributsioonides. CUPS kasutab GNU litsentsi. Võimaldab Kerberose abil autentimist. Ülevaade on tehtud CUPS versiooni 1.4.6 järgi.

Ülevaade

CUPSi abil on võimalik protsessida mitmeid erinevaid andmeformaate otse printserveril. Enne CUPSi oli raske leida standardiseeritud printerite haldamise süsteemi mis võimaldaks käsitleda laia valikut printereid kuna paljud printeritootjad kasutasid oma endi formaate. CUPS võimaldab driveri- ja printeritootjatel lihtsamini ehitate draivereid mis töötavad ka printserveril.

Tööde protsessimine toimub serveril, võimaldamaks lihtsamalt võrguprintimist seadistada. Kui installitud on ka Samba, siis on kasutajatel võimalik kasutada ka võrgus olevaid Windowsi arvutite taga olevaid printereid. Haldusega on võimalik tegeleda mitmete graafiliste vahendite abil või käsurealt.

Web interface näeb välja selline ning on lihtsasti kasutatav:

Paigaldamine

Ubuntu töölauaversioonidel (näiteks 10.10) on CUPS juba vaikimisi peal, serverile saab selle peale tavalise apt-get käsuga

apt-get install cups

Konfigureerimine

Kõige kiirem ja mõistlikum on kasutada konfigureerimiseks web interface-i mis asub aadressil http://localhost:631/, ligi pääseb tavalise brauseriga.

Selle näitejuhendi eesmärk on aga tutvustada cupsi seadistamist võimaldamaks võrguprintimist linuxi arvutite jaoks käsurealt. Printerile soovitan kindlasti määrata staatilise ip ning siin juhendis käsitletakse samuti staatilise ip-ga printerit. Konfimiseks tarvilikud juurkasutaja õigused. Juhendi täitmiseks on tarvilikud linuxi käsurea baasteadmised ning eeldab võrgunduse põhitõdede tundmist, juhend pole seega päris algaja jaoks.

Enne pihta hakkamamist teeme varukoopia cupsi konfiguratsioonifailist, kui midagi nihu läheb on hea lihtne taastada:

cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.backup

Kui backup tehtud siis võib avada faili cupsd.conf sobiva tekstiredaktoriga.

nano /etc/cups/cupsd.conf

1. asjana tuleks otsida üles selline rida :

#ServerName myhost.domain.com

Kui seda pole siis tuleb see lisada.

myhost.domain.com asemele tuleks panna printserveri hostname või staatiline ip aadress, näitena on kasutatud ip-d. Välja näeks see rida konfifailis sedasi:

ServerName 192.168.1.5

Järgmiseks tuleks lisada broadcast aadressi rida, kasutada tuleb võrgu broadcast aadressi, näites on aadress selline:

BrowseAddress 192.168.1.255

Viimasena tuleks otsida üles konfifailist sellised read:

<Location />
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
</Location>

Lisa uus rida peale "Allow From 127.0.0.1" ja lisa sinna ip aadressite vahemik mis on kasutusel sinu võrgus. Välja näeks see näiteks sedasi:

<Location />
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 192.168.1.*
</Location>

Muudatuste jõustamiseks tuleks CUPS restartida, iga kord kui muuta cupsd.conf faili, tuleb selle jõustamiseks cups restartida.

/etc/init.d/cupsd restart

Tööjaamadel tuleks muuta faili /etc/cups/client.conf ning lisada sinna printserveri ip-ga rida, näiteks:

ServerName 192.168.1.5

Printeri lisamine serverile

Postscript driveriga printeri lisamine:

sudo /usr/sbin/lpadmin -p kontori_printer1 -E -v ipp://192.168.1.12 -m postscript.ppd.gz

Printerinime võiks asendada sobilikuga ning ip printeri aadressiga, driveri enda printerile sobivaga. Driverit tuleb hoida kaustas /usr/share/ppd või /usr/share/cups/model.

PPD faili puudumisel saab selle tõmmata printeri tootja kodulehelt või näiteks siit http://www.cups.org/ppd.php. Cupiga tulevad vaikimisi kaasa samuti mõned generic ppd-d.

Kasulikud käsud haldustööks

Näitab kõiki printimise järjekorras olevaid töid

lpq -a

Näitab kõiki printimise järjekorras olevaid töid koos printeri nimega

lpstat -o 

Näitab printerite nimekirja koos IP-ga

lpstat -v 

Otsib vastavat printerit

lpstat -v | grep printer_9

Näitab printerite nimekirja koos olekuga

lpstat -p 

printerinimi Näitab kindla printeri töid

lpq -P 

Kui printeri olek on disabled, siis enablemiseks on käsk:

sudo /usr/sbin/lpadmin -p printerinimi -E 

(masinas on käsk sudo /usr/bin/enable nimi)

Printimise testimiseks

lp -d printerinimi failinimi

Kustutab kindla printeri kõik tööd

sudo lprm -P printeri nimi

Kustutab kõik tööd cupsil

cancel -a printername

Piirangute seadmine

Cupsil on olemas algelised võimalused printimise üle arve pidamiseks ja piirangute seadmiseks Iga prinditud leht logitakse faili/var/log/cups/page_log. Failist võib välja lugeda kes printis ja kui palju. Süsteem põhines CUPS filtritel mis analüüsib PostScript andmevoogu et määrata prinditud lehtede arvu.

Näide kuidas määrata printimise limiiti 100lk

lpadmin -p printer2 -o job-quota-period=604800 -o job-page-limit=100

Job-quota-period tähendab piirangu rakendamiseks määratud aega, aeg on antud sekundites. Kuna tegemist on väga algelise piirangumehhanismiga siis ei saa piiranguid määrata kasutajapõhiselt, mis tähendab et printer võib printida nädalas 100 lk kõigi kasutajate peale kokku. Soovitav on kasutada piirangute haldamiseks CUPSiga ühilduvat lisatarkvara, näiteks PyKota-t.

Kasutatud kirjandus

http://dev.linuxfoundation.org/~till/printing-tutorial/tut.html

http://www.cups.org/documentation.php/doc-1.4/network.html

http://www.linuxquestions.org/linux/answers/Networking/Setting_Up_a_Network_Printer_using_CUPS

http://www.linuxfoundation.org/collaborate/workgroups/openprinting/database/cupsfaq

http://www.linuxjournal.com/article/8618