samba: ปรับปรุงสร้างปรินเตอร์เทียม

จากคราวก่อนเรื่อง สร้างปรินเตอร์เทียมพิมพ์ลงไฟล์ Tiff
หลังจากเริ่มเอา lenny มาใช้กับเซิร์ฟเวอร์ ผ่านการอัปเกรด/ดาวน์เกรดแพกเกจ samba หลายครั้ง พบว่าปรินเตอร์เริ่มทำงานรวนเร
สุดท้ายกลายเป็นเขียนสคริปต์แยกออกมาดีกว่า สรุปดังนี้คือ
มีปรินเตอร์ 3 ตัว

  1. FaxOut เอาไว้เก็บสำเนาแฟกซ์ส่งออก
  2. FaxIn เอาไว้เก็บสำเนาแฟกซ์เข้า
  3. PrintToPDF เอาไว้เก็บสำเนาแผนที่ (รวมทั้งอาจทำ annotate เพิ่มได้จาก Inkscape)

ในการพิมพ์แต่ละตัว จะแยกโฟลเดอร์ไปเป็นรายปีและรายเดือนตามลำดับ โดยตั้งชื่อเป็นวันที่วันที่พิมพ์

รายละเอียดดังนี้

ส่วนของ samba
$ sudo vi /etc/samba/smb.conf

...
[FaxOut]
    path = /samba/data/smbprn/tif
    create mask = 0777
    printing = bsd
    printable= yes
    Print command = "/usr/local/bin/d.faxout %s"

[FaxIn]
    path = /samba/data/smbprn/tif
    create mask = 0777
    printing = bsd
    printable= yes
    Print command = "/usr/local/bin/d.faxin %s"

[PrintToPDF]
    path = /samba/data/smbprn/tif
    create mask = 0777
    printing = bsd
    printable= yes
    Print command = "/usr/local/bin/d.printtopdf %s"

...

$ sudo /etc/init.d/samba restart

ส่วนของสคริปต์
$ cd /usr/local/bin
$ sudo vi d.faxout

#!/bin/bash
ROOT="/samba/data"
FAXROOT="$ROOT/FaxOut"
LOG="$ROOT/smbprn/tif"
DATE=`date +%F`
MONTH=`date +%m`
let "YEAR=`date +%G` + 543"
TARGET="$FAXROOT/$YEAR/$MONTH"
mkdir -p $TARGET
chmod 777 $TARGET
gs -dBATCH -sDEVICE=tiffg3 -sOutputFile="$TARGET/$DATE-%s.tif" %s > $LOG/smb-FaxOut.log
rm %s

$ sudo vi d.faxin

#!/bin/bash
ROOT="/samba/data"
FAXROOT="$ROOT/FaxIn"
LOG="$ROOT/smbprn/tif"
DATE=`date +%F`
MONTH=`date +%m`
let "YEAR=`date +%G` + 543"
TARGET="$FAXROOT/$YEAR/$MONTH"
mkdir -p $TARGET
chmod 777 $TARGET
gs -dBATCH -sDEVICE=tiffg3 -sOutputFile="$TARGET/$DATE-%s.tif" %s > $LOG/smb-FaxIn.log
rm %s

$ sudo vi d.printtopdf

#!/bin/bash
ROOT="/samba/data"
FAXROOT="$ROOT/PrintToPDF"
LOG="$ROOT/smbprn/tif"
DATE=`date +%F`
MONTH=`date +%m`
let "YEAR=`date +%G` + 543"
TARGET="$FAXROOT/$YEAR/$MONTH"
mkdir -p $TARGET
chmod 777 $TARGET
gs -dBATCH -sDEVICE=pdfwrite -sOutputFile="$TARGET/$DATE-%s.pdf" %s > $LOG/smb-PrintToPDF.log
rm %s

$ sudo chmod 755 d.faxout d.faxin d.printtopdf

ส่วนของการแมปเครื่องพิมพ์
$ sudo lpadmin -p FaxOut -u allow:all -E -v smb://$USER:$PASSWORD@server/FaxOut
$ sudo lpadmin -p FaxIn -u allow:all -E -v smb://$USER:$PASSWORD@server/FaxIn
$ sudo lpadmin -p PrintToPDF -u allow:all -E -v smb://$USER:$PASSWORD@server/PrintToPDF

เสร็จแล้ว

(ลองกับเซิร์ฟเวอร์ lenny ลูกข่าย sid)