linuxのファイルをwindowsにバックアップする
6804 ワード
主な内容
linuxホストの内容をwindowsマシンにバックアップします.
バックアップlinux
tarバックアップを使用する主な特徴:
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サーバにアップロードします.
準備が必要:
定期的に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
例コードはセキュリティ要因を考慮していません.注意してください.