匿名使用者
匿名使用者 發問時間: 電腦與網際網路軟體 · 9 年前

用sftp遠端到linux伺服器並下載檔案問題

大家好,

我想要備份Linux伺服器上的資料,

方式為用sftp遠端到伺服器下載檔案到家裡的外接式硬碟,

但是我發現它超連結的檔案並不會只複製超連結,

而是把超連結的那個檔案抓下來,

請問我要怎麼設定才能只把超連結的那個連結抓下來就好而不是整個檔案,

因為這樣會增加很多容量的使用,

謝謝!

by the way, 我用的作業系統和軟體: Mac OS, transmit.

之前用filliza也會有這個問題。

已更新項目:

除了用tar之外有其它方法嗎?因為覺得用tar的話萬一tar檔損毀就會無法解開。

2 個已更新項目:

另外一個問題就是server上已經沒有空間讓我先tar完再ftp....苦惱中...

3 個已更新項目:

另外一個想法就是tar完的檔案如果太大(ex:10Gup)就算tar過程中沒有問題,萬ㄧ以後硬碟壞軌....可能就真的完全讀不到了,但是如果是一個一個檔案傳就算壞軌可能就部份檔案遺失。

rsync看起來是可以遠端備份,但是我發現server上預設是disable,and I don't have the right to use administrator..

4 個解答

評分
  • 飛揚
    Lv 6
    9 年前
    最佳解答

    以SFTP 遠端備份 FreeBSD 系統設定檔及重要資料檔來說

    給你做個參考…

    寫法如下:

    Environment :

    BSD 1 Server IP:77.77.77.77

    BSD 2 Server IP:88.88.88.88

    Setp 1.

    在 BSD1 上寫個自動備份的 shell script ,並且用 tar 來壓縮備份資料,備份完成資料後即刪除前一天的備份資料,接著採用 sftp 上傳到 BSD2 Server 上。

    #vi /data/backup/auto-backup.sh

    #!/bin/sh

    #

    host="88.88.88.88"

    id="帳號"

    pw="密碼"

    basedir="/data/backup/ntut_backup"

    remodir="/data/backup/ntut_backup"

    filename="*.tgz"

    today=`/bin/date +%Y%m%d`

    deldate=`/bin/date -v -1d +%Y%m%d`

    #

    echo off

    echo ' 本地資料備援 !!!'

    cd $basedir

    tar -czvf $today.ntut_etc.tgz /etc /usr/local/etc

    tar -czvf $today.ntut_home.tgz /home

    tar -czvf $today.ntut_g2data.tgz /data/g2data

    tar -czvf $today.ntut_mysql.tgz /var/db/mysql

    tar -czvf $today.ntut_www.tgz /usr/local/www

    rm -f $deldate.ntut_etc.tgz

    rm -f $deldate.ntut_home.tgz

    rm -f $deldate.ntut_g2data.tgz

    rm -f $deldate.ntut_mysql.tgz

    rm -f $deldate.ntut_www.tgz

    #

    echo off

    echo ' 遠端資料備援 !!!'

    cd $basedir

    sftp "$host" <<EOC

    user $id $pw

    binary

    cd $remodir

    put $filename

    bye

    EOC

    #chmod 755 /data/backup/auto-backup.sh # 將 auto-backup.sh 的權限改成可執行。

    編輯 crontab #crontab -e 加入下面這行:

    30 4 * * * /data/backup/auto-backup.sh # 讓 BSD1 Server 每天零晨4點30分做一次本地及遠端資料備份

    Setp 2.

    BSD 2 上只要有 ssh 服務就可透過 sftp 接受遠端資料,寫個 del-daily.sh 自動刪除 5 天前的備份資料。

    #!/bin/sh

    #

    deldate=`/bin/date -v -5d +%Y%m%d`

    basedir="/data/backup/ntut_backup"

    #

    echo off

    echo '開始刪除5天前的資料 !!!!'

    cd $basedir

    rm -f $deldate.ntut_etc.tgz

    rm -f $deldate.ntut_home.tgz

    rm -f $deldate.ntut_g2data.tgz

    rm -f $deldate.ntut_mysql.tgz

    rm -f $deldate.ntut_www.tgz

    #chmod 755 /data/backup/del-daily.sh # 將 del-daily.sh 的權限改成可執行即可。

    編輯 BSD2 的 crontab #crontab -e 加入下面這行:

    30 5 * * * /data/backup/del-daily.sh # 讓 BSD2 Server 每天零晨 5 點 30 分自動執行刪除五天前的備份資料檔

    To Add.

    如何備份 mysql 資料庫的檔案?mysql 的資料庫檔案,是放置在 /var/db/mysql 下,因此我們需備份時,只需要備份此目錄下的資料即可。

    範例如下:

    #tar czvf mysql_backup.tgz /var/db/mysql

  • 匿名使用者
    6 年前

    ●九州 娛樂 網站 http://ts777.cc/

    ●●●運彩遊戲、真人遊戲、電子遊戲、對戰遊戲、對戰遊戲●●●

    ●新舊會員儲值就送500點

    ● 真人百家樂彩金等你拿

    ●線上影片直播、正妹圖、討論區免費註冊

    歡迎免費體驗交流試玩!

    ●九州 娛樂 網站 http://ts777.cc/

  • 其威
    Lv 7
    9 年前

    rsync over ssh?

  • 9 年前

    tar 指令發生後,沒有中斷的話,就該不會有損毀的問題。

    檔案傳輸,沒有中斷的話,就該不會有損毀的問題。

    2012-03-17 19:27:03 補充:

    飛揚給的答案,很不錯!

還有問題?馬上發問,尋求解答。