linuxのファイルをwindowsにバックアップする

6804 ワード

主な内容


linuxホストの内容をwindowsマシンにバックアップします.

バックアップlinux


tarバックアップを使用する主な特徴:
  • 予約権限
  • は、ディレクトリ全体のバックアップに適しています.
  • は、異なる圧縮方式
  • を選択することができる.
  • 圧縮しないでインクリメンタルバックアップを実現する場合、一部のリストアはmantar
  • を参照してください.
    tarの選択肢は多く、具体的な要求に応じて選択されます.
    tarコマンドインクリメンタルバックアップlinuxディレクトリ:
    tar -g snapshot -cvpzf $tarfile --exclude-from=$exclude_from $sourcedirectory

    コンテンツのバックアップ


    全量と増分
    上記のコマンドでは、実行するたびにsnapshotファイルの内容に基づいてインクリメンタルバックアップを行います.snapshotが存在しない場合は、すべてのファイルをバックアップします.
    ターゲットファイルが大きい場合は、フルバックアップを行うのに時間がかかります.サーバの負担を軽減するため、毎日インクリメンタルバックアップを行い、週に1回または月に1回、フルバックアップを行います.
    ターゲットディレクトリ
    上記のコマンドでは、$sourcedirectoryはバックアップされたオブジェクトディレクトリであり、1つのディレクトリまたは複数のディレクトリ、または1つのファイルの具体的な内容として指定できます.たとえば/optに設定できます.このディレクトリの下にあるすべてのファイルは、–exclude-fromオプションで指定したファイルまたはディレクトリを除いてパッケージされます.–exclude-fromは、ディレクトリまたはファイルのパスを指定するか、ファイル内の特定の内容として指定できます.

    履歴バックアップファイルのクリーンアップ


    上記のコマンドでは、バックアップファイル$tarfileがlinuxローカルに保存されます.リモートサーバ(windows)に転送されたファイルについては、定期的に削除する必要があります.
    ファイルがリモートサーバに保存されている場合は、linuxで管理する必要がなく、リモートサーバ自身がファイルの管理を担当する必要があります.

    バックアップファイルの転送


    上のコマンドでは、ファイルがローカルに保存されていると仮定し、定期的にwindowsサーバにアップロードします.
    準備が必要:
  • window上のpscp,puttyはscpのようなプログラムを提供し、windows上でlinuxとファイルを渡すために使用します.
  • linuxにリモートアクセスインタフェースを開設し、pscpプログラムに接続能力を提供します.

  • 定期的にlinuxからファイルを取得し、タグファイルをアップロードしてlinuxファイルの転送が完了したことを通知し、linuxは転送が完了したファイルをクリーンアップすることができます.

    linuxのリカバリ(検証が実行されていません)


    tar xvpfz tarfile−C targetdirectory
    このコマンドはtarfileの内容をtargetdirectoryディレクトリに上書きしますので、特に注意してください.
    インクリメンタル・バックアップのファイルでは、インクリメンタル・リカバリを逆順序で実行できます.

    参照先:


    Centosはtarコマンドを使用してインクリメンタルバックアップcentos 7システムのバックアップと復元を行いputtyのpscpの使い方を記録します
    例コード:
    backupall.sh毎日12:30バックアップ開始
    #!/bin/bash
    # /backup/backupall.sh
    
    # define
    dayofweek=`date "+%u"`
    today=`date "+%Y%m%d"`
    source=/
    backup=/backup/
    exclude_from=/backup/exclude_from
    
    # action
    cd $backup
    
    # clean backuped files
    for ff in `ls done/*.tar.gz.*`
    do
      fff=${ff##*/}
      fff=${fff%.*}
      echo done file: ${fff}
      rm -f $ff
      rm -f $fff
    done
    
    # do backup
    if [ $dayofweek -eq 6 ]; then
      tarfile = "$today"_full.tar.gz
      if [ ! -f $tarfile ]; then
        rm -rf snapshot
        tar -g snapshot -cvpzf $tarfile --exclude-from=$exclude_from $source
      fi
    else
      tarfile = "$today"_incr.tar.gz
      if [ ! -f $tarfile ]; then
        tar -g snapshot -cvpzf $tarfile --exclude-from=$exclude_from $source
      fi
    fi
    
    echo $tarfile created.
    

    exclude_from
    /backup
    /proc
    /lost+found
    /mnt
    /media
    /sys

    backup_centos_server.batは毎日11:00、14:00からファイルの転送を開始します
    rem linux: backup files at 12:30
    rem backup: get backup files at 11:00 and 14:00
    
    @setlocal
    @echo off
    set backupPath=f:\backup\centos7server
    set path=e:\term\putty
    set PSCP=%path%\pscp.exe -pw
    set PSCPP=Pscpp$ecret10
    set remote=backup@10.10.132.199:/backup
    
    rem get files
    %PSCP% %PSCPP% %remote%/*.tar.gz %backupPath%\temp
    
    rem check files
    cd %backupPath%
    for /R temp %%f in (*.tar.gz) do (
      echo %%f
      if %errorlevel% equ 0 (
        echo %%f > %%f.saved
        date /t >> %%f.saved
        time /t >> %%f.saved
        %PSCP% %PSCPP% %%f.saved %remote%/done
      )
    )
    
    rem clean files
    move %backupPath%\temp\*.tar.gz %backupPath%
    del /Q %backupPath%\temp\*.saved
    

    例コードはセキュリティ要因を考慮していません.注意してください.