PALMisLIFE 討論區

搜索
鹹魚爸魅力四射舞蹈教室
查看: 8244|回復: 0
打印 上一主題 下一主題

[分享] Zaurus C760 新手筆記 - rsync + samba 備份中文檔名的檔案

[複製鏈接]

218

主題

9

好友

3516

積分

我沒有頭銜!

  • TA的每日心情
    開心
    2011-8-12 07:38
  • 簽到天數: 110 天

    連續簽到: 3 天

    [LV.6]常住居民II

    文章
    2679
    跳轉到指定樓層
    1#
    發表於 2005-1-16 20:09 |只看該作者 |倒序瀏覽
    <!--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" &gt; /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)"> &lt;-- 掛載本地端的掛載點,若沒有此目錄要先建立</span><br />LOCAL_USER="root"<br />LOCAL_PASS="xxxxx"<span style="FONT-SIZE: 85%; COLOR: rgb(255,0,0)"> &lt;-- root 在 本地端的 samba 密碼</span><br />LOCAL_DIR="Main_Memory"<span style="FONT-SIZE: 85%; COLOR: rgb(255,0,0)"> &lt;-- 在本地端 samba 下,須同步的目錄</span><br /><br />REMOTE_SHARE="//netbios_name/share_name"<span style="FONT-SIZE: 85%; COLOR: rgb(255,0,0)"> &lt;-- 遠端分享的位址</span><br />REMOTE_MOUNT="/mnt/sync/remote"<span style="FONT-SIZE: 85%; COLOR: rgb(255,0,0)"> &lt;-- 掛載遠地端的掛載點,若沒有此目錄要先建立</span><br />REMOTE_USER="aaaaa"<span style="FONT-SIZE: 85%; COLOR: rgb(255,0,0)"> &lt;-- 遠地端的使用者帳號</span><br />REMOTE_PASS="yyyyy"<span style="FONT-SIZE: 85%; COLOR: rgb(255,0,0)"> &lt;-- 遠地端的使用者密碼</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 編輯 ]
    分享淘帖0 分享分享0 收藏收藏0 頂0 踩0
    您需要登錄後才可以回帖 登錄 | 免費註冊

    與站長聯繫| PALMisLIFE 掌上生活      下載:更快、更棒、更好玩

    GMT+8, 2024-12-27 09:19 , Processed in 0.032921 second(s), 30 queries , Gzip On.

    Powered by Discuz!

    © 2001-2012 Comsenz Inc. style by eisdl

    回頂部