星期二, 6月 28, 2011

Open Source的抓畫面軟體GreenShot

雖然說Windows 7內建 剪取工具,但是功能仍然算陽春,以往在Windows XP我都一直用 MWSnap ,現在有更好的選擇:Greenshot

剪取工具 類似,內建一個簡單的圖片編輯軟體

還有OCR功能,不過應該僅限英文,我還沒試。

如果是下載安裝檔,別忘了 繁中語系,我是到 這裏 找NO Installer的zip壓縮檔,加上繁中語系就成為綠色軟體。

星期三, 6月 15, 2011

Postfix mailbox quota check

因為敝公司近幾年來新人都用WebMail,又因為OpenWebMail只能用mailbox,因此偶爾會發生用戶mailbox爆掉的情形。
搜尋後並沒找到Postfix內建有警告功能,網路上只有Postfix Checking Maildir Disk Usage,是駱駝文寫的,我不會改 =.=

最後決定自己動手做,雖然不會大蟒蛇還是勉強寫出個小程式,用Crontab排程每天檢查一次,再自動通知用戶。

#!/usr/bin/env python
#coding: utf-8
import os
import smtplib
from email.mime.text import MIMEText

def sendWarnMail(account, name):
    fromaddr="Email系統 <postmaster@example.com.tw>";
    toaddrs=name +" "+ "<"+account+"@example.com.tw>";
    msg =  MIMEText(name +" 您好:\n\t您的email容量即使用完畢, 請將伺服器上的郵件搬移一部份至其他郵件匣,以免無法收信,謝謝。", 'plain','utf-8');
    msg['Subject'] = "Email容量不足通知";
    msg['From'] = fromaddr;
    msg['To'] = toaddrs;
    server = smtplib.SMTP('localhost');
    #server.set_debuglevel(1);
    server.sendmail(fromaddr, toaddrs, msg.as_string());
    server.quit();
    return;
    
def getPostfixMailBoxLimit(config):
    f=open(config,'r');
    limit = 0;
    for line in f:
        line=line.lstrip();
        if line.startswith("mailbox_size_limit"):
            arrs = line.split('=');
            limit = int(arrs[1]);
            break;
    f.close()
    return limit;

#主程式
postfixconfig = "/usr/local/etc/postfix/main.cf";
mailboxdir = "/var/mail";
postfixlimit = getPostfixMailBoxLimit(postfixconfig);
#設定提醒上限減100MB
sizelimit = postfixlimit-100000000;
f = open('/etc/passwd', 'r');
for line in f:
    arrs = line.split(':');
    if not arrs[0].startswith('#'):
        mailbox = mailboxdir+"/"+arrs[0];
        if os.path.exists(mailbox):
            filesize = os.path.getsize(mailbox);
            if(filesize > sizelimit):
                sendWarnMail(arrs[0], arrs[4]);
f.close();

星期二, 6月 14, 2011

神奇的Chkdsk

剛才忽然覺得電腦變很頓,打開工作管理員一看,才發現居然是...

我也只不過是打開一個chkdsk /r檢查隨身硬碟的壞軌,有必要吃到10GB RAM嗎?XD

星期二, 6月 07, 2011

Windows 7 x64 SP1 無法安裝Windows Server 2003分享的印表機 0x0000007e

最近敝公司新裝的Windows 7 x64 SP1都無法安裝Windows Server 2003分享的印表機,出現 0x0000007e的錯誤訊息;原本以為是安全性問題,試了網路上所有的方法都無效。
剛才忽然想到會不會是driver太舊?看了一下HP Universal Printer的版本是2010年10月,也不會很舊呀?再上HP官網發現最新的版本是2011年2月,更新Driver後居然就可以正常安裝了@_@

因為這問題都沒有別人發生過,特此誌之。

Update:同場加映 0x000000bcb 的解決之道
才剛更新HP driver,結果又有同事在別台Windows 7 x64發生 0x000000bcb 錯誤,後來終於找到 這篇,文章內沒寫清楚,也是只會發生在Windows 7 x64身上,在Printer Server上刪除機碼 "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\印表機名稱\CopyFiles\BIDI",再重新啟動Print Spooler服務即可。