다음 이전 차례

2. SAMBA 에서 REMOTE-PC 측의 프린터 세팅 관련

PC측에 연결된 리모트 프린터를 LINUX의 SAMBA 에서 접근하는 방법은 조금 다르다. 이것은 LINUX의 printcap에 있는 필터를 이용하는 것으로 생성된 프린트파일을 다시 프린터가 연결된 PC로 전송한다.

       PC Client   -> Sambar Server ----> lpr ------------> smbprint -----> PC ----> Printer

       (PC조절판)     (/etc/smb.conf)         (/etc/printcap)       .config              (프린터서버)

  따라서 lpr 명령시에 참조하는 printcap 파일에 필터를 지정하는 if 옵션에 smbprint를 수행하도록 지정하고 있으며 smbprint는 smbclient를 호출하여 PC에 파일을 전송한다. 이때 PC서버에 접속할수 있는 권한을 얻기 위하여 .config 파일에 서버명, 서비스명 및 비밀번호 기록해 놓아서 smbclient가 해당정보를 획득할 수 있도록 한다.

       lp|lj|HP LJ6P:\
              :lp=/dev/null:\
              :sd=/var/spool/lpd/lj:\
              :mx#0:sh:sf:\ :if=/usr/bin/smbprint:
              :af=/var/spool/lpd/lp/acct:

이때 LINUX에는 프린터가 연결된 것이 아니므로 lp 는 null 디바이스를 지정한다. if 가 필터로서 smbprint는 script 파일이다. 그파일의 내부에 서버 및 서비스, 비밀번호를 얻은후 smbclient를 수행하는 script가 포함되어 있다.


   -- 앞에는 생략 ---

   eval `cat $config_file`
   #
   # Some debugging help, change the >> to > if you want to same space.
   #
   echo "server $server, service $service" >> $logfile

   (
   # NOTE You may wish to add the line `echo translate' if you want automatic
   # CR/LF translation when printing.
   # echo translate
   echo "print -"
   cat
   ) | /usr/bin/smbclient "\\\\$server\\$service" $password -U $server -N -P >> $lo
   gfile

$config 파일은 보통 spool 디렉토리에 .config 파일로 존재한다. (생략된 부분 확인) .config의 내용은

       server=PC_SERVER
       service=PR_SHARENAME
       password="password"

와 같은 ASCII 파일로 생성한다. password 는 꼭 "(더블 쿠오테이션)로 열고 닫아야 하며 비밀번확 없을 시에는 "" 로 표현한다. 이부분에서 파일이 제대로 전송되지 않을 시에는 spool 파일에 생성된 파일을 직접 smbclient를 실행시켜 PC에서 인쇄되는지 확인해 본다.

       # smbclient '\\mimas\lj' <passwd> -U mimas -N -P

이와 같이 해서 인쇄가 된다면 위에서 기술한 연결관계가 원할하지 않은 원인으로 smbclient가 실행되지 않는것이므로 LOG 파일등을 차근차근히 살펴보도록 한다. 인쇄가 되지 않는다면 프린터가 연결된 PC서버에 문제가 있는것으로 추정할 수 있으므로 해당 PC서버에서 프린터의 연결관계를 확인해 보도록 한다.  


다음 이전 차례