顯示具有 系統設定 標籤的文章。 顯示所有文章
顯示具有 系統設定 標籤的文章。 顯示所有文章

2007年1月31日 星期三

利用 mpack 自動備份檔案到 Gmail

GMail 的容量那麼大,除來用來儲存信件之外,當然也可以用來當作備份重要檔案的第二選擇。

之前就有使用 GMail 備份檔案的習慣,不過原先是利用 metasend 這支程式來寄送包含夾檔的信件,但是最近發現夾檔的 size 太大的話,他會自動把檔案切割分兩份寄送,可是這樣會造成 GMail 這邊只收到第一部份的夾檔,第二部分的夾檔會出現無法完全解碼的情況。

Gmail-metasend error

所以我找到另外一支寄送夾檔的程式 - mpack,所需要用到的參數比 metasend 簡單很多。mpack 的安裝相當簡單,在 Gentoo 下的安裝只要直接執行
$ emerge mpack

不到一分鐘,就會自動將 mpack 安裝完成。mpack 的參數指令大概如下
mpack [ -s subject ] [ -m maxsize ] [ -c content-type ] file address ...

[] 之內的選項都可以省略,其他部分簡單說明如下

  • subject 就是信件的標題

  • maxsize 就是夾檔的最大 size

  • content-type 則是指定夾檔的 mime-type

  • file 為夾檔所在的路徑

  • address 就是收件人的 email address。


下面就是我用來備份 blog 程式碼和資料庫的 shell script,提供大家當作參考。
#!/bin/sh

DATE=`date +%Y%m%d%H%M`
BACKUP_PATH='/home/backup'
STOORZ_EMAIL='stoorz6@gmail.com'
STOORZ_DB_DST="${STOORZ_BLOG_HOME}/stoorz_scheme.db"
STOORZ_BLOG_DST="${BACKUP_PATH}/stoorz_blog_${DATE}.tgz"

/usr/bin/mysqldump -u root stoorz > ${STOORZ_DB_DST}

/bin/tar czvf ${STOORZ_BLOG_DST} ${STOORZ_BLOG_HOME}

/usr/bin/mpack -s "Backup stoorz blog `date +%Y-%m-%d_%H:%M`" -c "application/octet-stream; name=\"stoorz_blog_${DATE}.tgz\"" ${STOORZ_BLOG_DST} $STOORZ_EMAIL

rm -rf ${STOORZ_BLOG_DST}

2007年1月17日 星期三

lighttpd 下跑用 perl 寫的 cgi 動態網頁

lighttpd」預設是關掉用 perl 寫的 cgi 動態網頁,不過要讓他跑起來很簡單,只要打開 /etc/lighttpd.conf (如果你的 lighttpd 有安裝在自訂目錄,就不是這邊指的 /etc 下),做兩個步驟的設定就可以了。


先將 server.modules 裡面的 mod_cgi 註解拿掉


server.modules = (

"mod_rewrite",

# "mod_redirect",

"mod_cgi",

...

}


最後找到 cgi.assign,把這個部分的註解也拿掉


cgi.assign = ( ".pl" => "/usr/bin/perl", ".cgi" => "/usr/bin/perl" )


然後存檔,restart lighttpd, 這樣你的 lighttpd 就可以跑 perl 寫的網頁了。

WordPress 裝在 lighttpd 上的 permalinks 設定方法

WordPress 」內建的 permalinks 設定主要是支援 「Apache」 的 .htaccess,但是在「lighttpd」下卻沒有這個檔案可以使用,所以必須要另外尋找其他的解法。兩年前剛裝的時候還沒有找到適合的方法,剛剛又找了一下,總算讓我很快就試出來了。

我目前的「WordPress 」版本是 2.0.7,以下的解法應該適用於所有 2.0 版本。

先到「WordPress 」後端的平台,選擇『Options』 ->『Permalinks』,之後會進入類似下面的頁面



接下來在第一個方塊裡面將『Custom』選項點選,然後在 input box 裡面填入
/archives/%year%/%monthnum%/%day%/%post_id%/

在第二個方塊裡面的 input box 填入
/categories

這樣「WordPress 」部分的設定就完成了,接下來換「lighttpd」的部分,先打開「lighttpd」的設定檔 /etc /lighttpd.conf (如果你的 lighttpd 有安裝在自訂目錄,就不是這邊指的 /etc 下),然後先將預設關閉的 mod_rewrite 註解拿掉
server.modules = (
"mod_rewrite",
# "mod_redirect",
# "mod_alias",
"mod_access",
....
)

在 url.write 的部分加入一行
url.rewrite = ( "^/(archives|categories|comments|feed)/" => "/index.php" )

尋找 server.error-handler-404 字串,將 http status code 404 的 error-handler 指到 WordPress 主目錄下的 index.php 檔
server.error-handler-404 = "/index.php"

(這邊假設 WordPress 放在根目錄下,如果 WordPress 放在 lighttpd 設定的 virtual hosts 下,請參考 lighttpd 的 virtual hosts 虛擬主機設定)

最後存檔,restart lighttpd 之後,這樣子就大功告成了。

lighttpd 的 virtual hosts 虛擬主機設定

lighttpd」的 virtual 設定相當簡單,只要在 /etc/lighttpd.conf 設定檔裡面 (如果你的 lighttpd 有安裝在自訂目錄,就不是這邊指的 /etc 下),尋找 prefix 為 simple-vhost.* 的字串,例如
simple-vhost.server-root = "/var/www/servers/"
simple-vhost.default-host = "default"
simple-vhost.document-root = "/"

將這三行前面的註解給拿掉,然後存檔,restart lighttpd,這樣你的 lighttpd 就可以支援 virtual hosts 虛擬主機了。

放置每個 virtual host 網頁的目錄就在 simple-vhost.server-root 所設定的目錄下,例如

  • hostname 是 stoorz.org 的話,就放在 /var/www/servers/stoorz.org/ 下。

  • hostname 是 blog.stoorz.org 的話,就放在 /var/www.server/blog.stoorz.org/ 下。


此外,不同的 virtual host 會有各自不同的設定,在 /etc/lighttpd.conf 的設定檔裡面,我們利用 $HTTP["host"] == "HOSTNAME" {} 來分開設定,例如
$HTTP["host"] == "blog.stoorz.org"{
server.document-root = "/var/www/server/blog.stoorz.org"
server.error-handler-404 = "index.php"
...
}

這樣子的話,不同的 virtual host 就可以有各自的區塊來作自己的設定。