星期五, 3月 03, 2006

惡搞學校的列印服務

學校有提供 PostScript 的列印服務,基本上沒有 quota 限制,只是只能印黑白雙面,而且每天通常只有三次送件的時間,要自己去領件。


學校的這個服務其實對我來說相當有用,尤其是這學期一大堆文件需要印出來參考,自己印的話,quota 一下就爆掉了,而且學校的印表機不能讓你印雙面的,所以有點浪費紙。要使用這個服務,有至少三種送印的方式:
其中直接透過 samba 的方式是最直接了,不需要自己做檔案轉換,但是缺點是目前來說學校似乎沒有意願把網路列印分享的權限擴展至所有校內 IP。Web 列印介面基本上也不錯,雖然要自己先轉檔,不過這對我來說並不難。比較討厭的是 Web 列印介面在某次改版之後,不知道是哪邊的問題,導致使用非 IE 的 browser 在檔案上傳之後,都會回應類似『此頁面有需要大量運算的 Script,可能會導致系統停止回應』之類的訊息。雖然使用 FireFox 可以中斷該 script,並且也不會影響送印的結果,但是感覺還是蠻討厭的,而且還要開個 browser 自己選半天還是不太方便。最後一種方式理論上是最不好使用的,因為一方面要把檔案轉好傳到工作站上,另一方面還要自己下指令。但是 Unix 強大的地方就在於 command line 啊!簡單的惡搞一下之後,列印就只剩下轉檔以及把檔案丟到工作站上而已了!

其實這個惡搞的想法很簡單,就只是寫一個 script 去檢查某個目錄,當該目錄下有檔案,而且是 PostScript 檔案的話,就使用 prnt 指令把檔案送印,然後不管成功失敗都會寄 mail 通知我,並把成功的檔案搬到一個目錄,失敗的檔案丟到另一個目錄去。然後就只是設定 crontab,讓該 script 每 10 分鐘跑一次即可。這樣我就只需要把檔案轉好,丟進那個特定目錄,然後等送件時間過了以後去拿就好啦!雖然因為 Solaris 上有些指令的預設行為和在 Linux 上不同,不過基本上寫這樣的 script 並不是難事,但結果卻是省掉很多後續的瑣碎手續。

結論是:會 UN*X 真好

3 則留言:

anton 提到...

此頁面有需要大量運算的 Script,可能會導致系統停止回應

這個好像是在 firefox 的 about:config 裡面調整就可以了:
network.http.keep-alive.timeout : 300

anton 提到...

忘了說,你的乳酪蛋糕看起來不錯吃耶....

Shang-Feng Yang 提到...

嗯。不過我是覺得應該是該網頁的 Javascript 程式有問題。後來過一陣子以後,那個狀況就消失了。

另外蛋糕其實有點失敗,雖然看起來好像還好。最近有空的話會可能有試驗品二號 :P