PALMisLIFE 討論區
標題:
[分享] Zaurus C760 新手筆記 - rsync + samba 備份中文檔名的檔案
[列印本頁]
作者:
mfhsieh
時間:
2005-1-16 20:09
標題:
[分享] Zaurus C760 新手筆記 - rsync + samba 備份中文檔名的檔案
<!--StartFragment --> <h3 class="post-title">[PDA] Zaurus C760 新手筆記 (11) - rsync + samba 備份中文檔名的檔案 </h3><div class="post-body"><div>大概很多人都用過 rsync 來備份 zaurus 上的檔案,不過這一遇到中文檔名的檔案就破功了。rsync 不會視檔案編碼系統的不同來轉譯檔名,中文檔名的檔案一備份到 Windows 或 Linux,檔名就變成一堆亂碼。<br /><br />另一個不方便之處是 Windows 上一般都不支援 rsync,還須得要自行安裝軟體 (我是用 cygwin + openssh + rsync)。<br /><br />不過在試完 samba 後,忽然有個想法:既然 samba 可以轉譯 utf8 的檔名為 codepage 950 (差不多就是 BIG5 啦!),那只要用 zaurus 來 mount 自身分享的檔案,雖然在 zaurus 自身 mount point 上看到的檔名是一堆亂碼,不過只要在 codepage 950 的系統上,那些亂碼就會變成正常的中文字。而且只要 zaurus 上有 rsync,就不用擔心 Windows 系統上是否要安裝 rsync 了。<br /><span class="fullpost"><hr />實作方式如下:<ol><li>先安裝 <a href="http://www.killefiz.de/zaurus/showdetail.php?app=1278">rsync</a> 軟體。<br /><br /></li><li>設定 zaurus 上的 samba,請參考 <a href="http://mfhsieh.blogspot.com/2005/01/pda-zaurus-c760-9.html">[PDA] Zaurus C760 新手筆記 (9) - 連上網路芳鄰</a>。<br /><br /></li><li>設定 Windows 上的分享目錄。<br /><br /></li><li>剪下下面的 script,存成文字檔放到 zaurus 上,權限改為 700。<blockquote>#!/bin/bash<br /><br />TIME_START=`date`<br /><br />function check_mount () {<br /> mount | grep "^$1" > /dev/null<br /> if [ $? -eq 1 ]; then<br /> smbmount "$1" "$2" -o "username=$3,password=$4"<br /> let $5=1<br /> else<br /> let $5=0<br /> fi<br />}<br /><br />function check_umount () {<br /> if [ $LOCAL_UMOUNT -eq 1 ]; then<br /> smbumount "$LOCAL_MOUNT"<br /> fi<br /> if [ $REMOTE_UMOUNT -eq 1 ]; then<br /> smbumount "$REMOTE_MOUNT"<br /> fi<br />}<br /><br />LOCAL_SHARE="//localhost/home"<br />LOCAL_MOUNT="/mnt/sync/local"<span style="FONT-SIZE: 85%; COLOR: rgb(255,0,0)"> <-- 掛載本地端的掛載點,若沒有此目錄要先建立</span><br />LOCAL_USER="root"<br />LOCAL_PASS="xxxxx"<span style="FONT-SIZE: 85%; COLOR: rgb(255,0,0)"> <-- root 在 本地端的 samba 密碼</span><br />LOCAL_DIR="Main_Memory"<span style="FONT-SIZE: 85%; COLOR: rgb(255,0,0)"> <-- 在本地端 samba 下,須同步的目錄</span><br /><br />REMOTE_SHARE="//netbios_name/share_name"<span style="FONT-SIZE: 85%; COLOR: rgb(255,0,0)"> <-- 遠端分享的位址</span><br />REMOTE_MOUNT="/mnt/sync/remote"<span style="FONT-SIZE: 85%; COLOR: rgb(255,0,0)"> <-- 掛載遠地端的掛載點,若沒有此目錄要先建立</span><br />REMOTE_USER="aaaaa"<span style="FONT-SIZE: 85%; COLOR: rgb(255,0,0)"> <-- 遠地端的使用者帳號</span><br />REMOTE_PASS="yyyyy"<span style="FONT-SIZE: 85%; COLOR: rgb(255,0,0)"> <-- 遠地端的使用者密碼</span><br />REMOTE_DIR="."<br /><br />check_mount "$LOCAL_SHARE" "$LOCAL_MOUNT" "$LOCAL_USER" "$LOCAL_PASS" LOCAL_UMOUNT<br />check_mount "$REMOTE_SHARE" "$REMOTE_MOUNT" "$REMOTE_USER" "$REMOTE_PASS" REMOTE_UMOUNT<br /><br />rsync -avSc --delete "$LOCAL_MOUNT/$LOCAL_DIR" "$REMOTE_MOUNT/$REMOTE_DIR"<br /><br />check_umount<br /><br />TIME_END=`date`<br /><br />echo "From: $TIME_START"<br />echo "To: $TIME_END"</blockquote></li><li>執行此 script。然後就可以檢查是否有同步成功了。<br /></li></ol><hr />這項工作其實是我在 <a href="http://mfhsieh.blogspot.com/2005/01/linux-debian-on-my-thinkpad-r40-5.html">[Linux] Debian on My ThinkPad R40 (5) - 無線網路的設定</a> 中,所提及想做的工作之一。<br /><br />不過這樣的型態只適合作為文件的備份,而不適合作為檔案系統的備份。因為在 samba 下,檔案的權限及擁有者等屬性消失了,且鏈結都只單純地以檔案的型式存在,所以無法作為將來復原的依據。(所以我只用這備份 /home/zaurus/Documents (就是 samba 下的 Main_Memory) 下的檔案,全系統的檔案備份,我還是依靠 rsync + ssh。)<br /><br />另一個問題是遇到日文或其它 codepage 的檔名,samba 一概視而不見。不過還好,我大概只會用中文的檔名。</span> </div></div>
[
Last edited by mfhsieh on 2005-1-16 at 20:53
]
[
本文章最後由 mfhsieh 於 2006-5-31 18:11 編輯
]
歡迎光臨 PALMisLIFE 討論區 (http://f.pil.tw/)
Powered by Discuz! X2.5