UNIX Administration Chapter 25, 26
Download
Report
Transcript UNIX Administration Chapter 25, 26
UNIX System Administration
Chapter 25 Printing and Imaging
개요
• BSD 스풀링 시스템
lpd
lpc
lpr
• ATT 스풀링 시스템
lpsched
lpadmin
lp
• 어떤 프린팅 스케줄러가 있는지 조사
lpd
lpsched
2
프린팅 용어
•
•
•
•
•
•
•
•
•
•
spooler
dpi (dots per inch)
PDL (Page Description Language)
bitmap
RIP (Raster Image Processor)
PostScript
HPGL (Hewlett-Packard Graphics Language)
PCL (Printer Command Language)
QuickDraw
roff
3
ATT 프린팅 : 개요
USER
lp xxxxx
spool directory
/var/spool/lp/requester/dest
Printer
lpsched
LOG
/usr/spool/lp/log
4
ATT 프린팅 명령어
lp
lpsched
lpshut
lpstat
cancel
lpmove
lpadmin
accept
reject
enable
disable
-
lpr
lpd
lpq
lprm
/etc/printcap
lpc enable
lpc disable
lpc start
lpc stop
lpc topq
인쇄하기 위해 작업을 보낸다.
프린팅 디몬
프린팅 디몬을 정지 시킨다.
큐의 상태를 점검한다.
큐에 있는 작업을 제거한다.
큐에서 다른 큐로 작업을 이동시킨다.
프린팅 시스템을 설정한다.
큐를 작동시킨다.
큐를 중지시킨다.
장치에 프린팅을 시작시킨다.
장치에 프린팅을 정치시킨다.
큐에서 작업 순서를 바꾼다.
5
lp
• 데이터의 복사본이 프린트 되게 하기 위해 스풀 디렉토리
(spool directory)안에 있는 파일에 기록
• Spool directory
/var/spool/lp/requests/dest
dest: printer or class of printers
dest 디렉토리안에 xxxn (jobid)
• -d destination (printer or class)
• -d 없으면 lp는 환경변수 LPDEST 값을 출력 장치 이름으
로 사용
6
lpsched 과 lpshut
: 프린트 시작하고 멈추기
• lpsched
스풀에 있는 파일을 적절한 장치가 사용 가능할 때 그 장치로 보내
는 디몬
/usr/spool/lp/log 에 오류 보관
Solaris : /usr/sbin/lp, /usr/lib/lp/lpsched, /usr/lp/logs (또는 /var/lp/logs)
11/05 14:23:38: Print services stopped.
11/05 14:25:27: build info: 07/15/97:21:39:52
• lpshut
lpsched 중단
lp 는 계속 작업을 큐에 저장시킬 수 있으나 프린트는 되지 않음
lpsched 디몬이 다시 실행되면 프린트 재개
• /usr/spool/lp/SCHEDLOCK
오직 하나의 lpsched 만 실행되게 하기 위해 생긴 파일
7
lpadmin
: 프린트 환경 설정하기
• 새 프린터 추가
/usr/lib/lpadmin -pprinter -vdevice { -eprinter | -mmodel | -iinterface } [ cclass… ] [ { -l | -h } ]
• /usr/spool/lp 에 텍스트 파일 생성
• lpsched 은 lpadmin 실행전에 lpshut 으로 중단되어야 함
• 인터페이스 프로그램이 프린트하기전에 formatting
-eprinter | -mmodel | -iinterface
• Solaris 는 /etc/lp/interface 에 인터페이스 프로그램 저장
• -xprinter : 프린터 제거
• ex)
/usr/lib/lpadmin -ppr1 -v/dev/tty06 -mdumb -cpr
/usr/lib/lpadmin -ppr2 -v/dev/tty07 -epr1 -cpr
/usr/lib/lpadmin -ppr1 -rpr -cfast
8
reject 와 accept
: 스풀링 제어하기
• reject : 스풀링 요청 거부하게 하기
ex)
% /usr/lib/reject -r”pr1 will be down untile Tuesday” pr1
% lp -dpr1 afile
lp: cannot accept requests for destination “pr1”
-- pr1 will be down until Tuesday
• accept : 스풀링 요청 받아들이게 하기
accept 는 lpadmin 으로 추가된 모든 프린터에 적어도 한번은 수행
되어야 함
• reject 와 accept 는 클래스에 대해서도 적용 가능
9
기타
• Cancel : 프린트 작업 제거하기(작업번호는 lpstat 으로)
cancel 576
cancel pr1
• disable and enable : 프린트 제어하기
disable : lpsched에게 특정 프린터로 작업 보내는 것을 중지
reject 와 달리 lp 의 queuing 중지하지 않음
disable 은 현재 진행되는 작업 중지 않음 (단, -c 로 가능)
reject 처럼 -r flag (설명) 지원
enable : 특정 프린터 다시 작동
• lpmove : 작업 전송하기
/usr/lib/lpmove lpt-16 lpt-18 pr2
/usr/lib pr1 pr2
10
기타
• lpstat : 상태 정보 얻기
•
ATT
lpstat -o
cancel
•
BSD
lpq
lprm
11
Solaris
• 프린터 연결
• rebooting
• admintool 로 프린터 설정
프린터 추가
해당 프린터 설정
프린터 포트 : parallel port 로 설정
/dev/term/a (serial port)
/dev/term/b (serial port)
/dev/bpp0 (parallel port)
파일내용 : ASCII 로 설정
12
인터페이스 프로그램들
• lpsched 가 지정하는 파일에 대한 정보를 얻어 오고, 그 내용을 포맷
한 결과를 표준 출력
• 출력 장치에 대한 정확한 모드 설정
• headers 와 trailers 생성
• 각 프린터별 인터페이스 프로그램 파일(shell script 또는 binary)
/usr/spool/lp/interface/printer
• lpsched 는 아래 인수로 인터페이스 프로그램 호출
jobid user title copies options file [file…]
• 성공하면 returns 0
에러 생기면 returns integer 1~127
• BSD : 포맷별로 다른 인터페이스 프로그램
• ATT : 모든 데이터 처리하는 인터페이스 프로그램
13
문제 해결하기(Trouble Shooting)
• 문제의 프린터 완전히 삭제하고 다시 시작
• (예)
#
#
#
#
#
lpshut
lpadmin -xdest
find /usr/spool/lp -name dest -exec rm -rf {} \;
lpsched
lpstat -t
14
이기종 간의 스풀링(Cross-Platform Spooling).
• 원격 프린터 연결문제 해결위해 참조할 곳
허가권 확인 위해 프린터 연결된 호스트의 system log file
이름과 허가권 확인위해 보내는 호스트의 system log file
장치 이름과 포맷 오류 확인위해 프린팅 호스트의 print daemon
log file (/usr/spool/lp/logs)
필터, 프린터, 디렉토리가 제대로 있는지 확인위해 프린팅 호스
트의 print daemon log file (/usr/spool/lp/logs)
전송 오류 확인위해 프린팅 호스트의 printer log file
15
이기종 간의 스풀링(Cross-Platform Spooling)..
• Solaris 에서 Solaris 로 스풀링 하기
To add or modify an existing system
lpsystem [ -t type ] [ -T timeout ] [ -R retry ] [ -y comment ] system-name ...
To list a system (or all systems)
lpsystem -l [ system-name ...]
To remove a system
lpsystem -r system-name ...
To get the TCP/IP address for the local port-monitor
lpsystem -A
• (예) Solaris에서 원격 프린터(server!printer)로 스풀 설정하기
# lpsystem -t bsd server (모든 BSD와 HP-UX)
또는 # lpsystem -t s5 server (Solaris)
server has been added
# lpadmin -p rpr1 -s server!pr1 -I and -T unknown
#accept rpr1
16