linuxWindows

【お手軽】WindowsからLinux資産を簡単バックアップ(ebackup)

linux

WindowsのBATファイルを実行することで、Linux上のファイルをバックアップできるツールの紹介です。
スケジュール登録することで、バックアップを自動化することも可能です。
普段から大切なファイルをバックアップして、意図せずファイルを更新/消失するリスクに備えましょう。

当ツールの利用には、無料で使えるファイル転送ソフト「WinSCP」のインストールが必要です。
セットアップはすぐにできますので、お気軽にお試しください。

ツールの特徴

セットアップが簡単

当ツールは、4ステップでセットアップできます。

  • WinSCPをインストール
  • ツールをダウンロード&解凍
  • Linuxにツールをアップロード。
  • Windows上のファイルに、サーバの接続情報、バックアップ対象を設定。

 これだけです。

手軽バックアップ

バッチファイルを実行するだけで、バックアップ完了。
バックアップが完了すると、実行した日付のフォルダが作成されます。
このフォルダ内には、バックアップ対象のディレクトリごとに、下記が格納されます。

  • tar+gzip形式の圧縮ファイル
  • バックアップファイルのリスト(lsの結果)

バックアップの自動化も可能

 Windows標準コマンドを使用して、バックアップの自動化が可能。

資産の変更を把握できる

 バックアップする際に、対象ディレクトリ配下のlsリストが取得されます。
 WinMerge等の比較ツールで前回のリストと比較することで、
 ファイルの増減、更新有無、サイズ変更、権限変更が把握できます。

WinSCPインストール

すでにWinSCPがインストールされている場合は、ここを読み飛ばして下さい。

WinSCPをダウンロード

WinSCPプロジェクトのページにアクセスして、最新の「~Setup.exe」をダウンロードして下さい。

インストール

ダウンロードしたexeファイルを実行します。

インストールモードの選択画面が表示されます。
ここでは、「現在のユーザー用にインストール」をクリックします。

使用許諾の同意画面が表示されます。
内容を確認して「許諾」ボタンを押します。

セットアップ形式の選択画面が表示されます。
[標準的なインストール(推奨)]を選択して、「次へ」ボタンを押します。

画面形式の選択画面が表示されます。
ここでは、一般的な[コマンダー]を選択して、「次へ」ボタンを押します。
(後からでも設定画面で変更できます)

インストール準備完了画面が表示されます。
「インストール」ボタンを押します。

しばらく待つと、セットアップが終わります。
「完了」ボタンを押して、画面を終了します。

ツールをセットアップ

ダウンロード

こちらからツールの圧縮ファイルをダウンロードします。
このツールは自由にご利用いただけます。

圧縮ファイルを解凍

ダウンロードしたファイルを右クリックして、[すべて展開]をクリックします。

「展開」ボタンをクリックします。

解凍されたフォルダは、必要に応じて、任意の場所にフォルダごと移動してください。
ここでは、C:\work 配下に ebackupフォルダを移動して進めます。

Linuxへファイルを配置

WinSCPを起動します。

ホスト名(または IPアドレス)、ユーザ名、パスワードを入力して、ログインボタンを押します。

「はい」を押して、をホストを信頼します。

画面の左側にWindowsのファイル、右側にLinuxのファイルが表示されたら接続OK。

ツール(ebackupフォルダ)を、サーバへアップロードします。
右のリスト(Linux側)で、ツールを配置する任意のディレクトリへ移動。
左のリスト(Windows側)で、ツールを格納したフォルダへ移動。

「ebackup」フォルダを選択して、「アップロード」ボタンをクリック。
バイナリ転送になっていることを確認して、OKボタンを押します。
(バイナリ転送になっていない場合は、転送設定ボタンを押して、転送モード[バイナリ]を選択してください)

以上で、ツールをLinuxへ配置できました。
右上の「×」ボタンを押して、WinSCPを閉じてください。

バックアップ情報設定

ebackupフォルダ内にある bkup.bat を、テキストエディタで開きます。
(誤って実行しないよう注意ください)

下表の項目の値を設定してください。
複数のディレクトリをバックアップする場合は、⑥~⑧を繰り返し記述します。

No.項目設定値
hostLinuxサーバのIPアドレスまたはホスト名
userLinuxサーバのユーザ
pswrdLinuxサーバのパスワード
tool_dirアップロード先のebackupディレクトリのパス
scp_pgmWinSCPインストールディレクトリ。(通常は変更不要)
WinSCPのインストール先を変更してインストールた場合に設定必要。
file_base任意のバックアップ名。バックアップファイルの名前になる
trgt_dirバックアップするLinuxのディレクトリ(フルパス)
変更不可

編集できたら保存して、テキストエディタを閉じてください。

実行方法

先ほど編集した bkup.bat ファイルをダブルクリックします。

少し待つと、当日日付のフォルダが作成されますので、そのフォルダに移動します。

2つのファイルが存在していれば、バックアップ成功です。

作成されるもの

バックアップファイル

バックアップファイルは圧縮されています(tar+gzip形式)。
tar形式、gzip形式に対応した解凍ソフトで解凍して、ファイルが取得できているか確認ください。
PONSEは今回、CubeICEで解凍しました。迷わず使えるので、初心者にオススメです。

バックアップリストファイルls結果

バックアップしたディレクトリ配下のlsの結果です。
前回のls結果と比較することで、バックアップディレクトリ配下の資産の変更を確認できます。
ファイルの比較には、WinMerge等のファイル比較ソフトをご利用ください。

バックアップの自動化

毎回バッチファイルを実行するのが手間でしたら、バックアップを自動化しましょう。
Windowsがロック状態(ロック画面)でも、バックアップできます。

スケジュール登録

Windows標準のスケジュール機能を利用して、バックアップを定期的に自動実行できます。
毎朝6:00にバックアップする場合の例は、次の通りです。
(DOSプロンプトに、1行で入力してください)

schtasks /create /sc DAILY /tn ebackup /tr C:\work\ebackup\bkup.bat /mo 1 /st 06:00

指定している値の詳細は、こちらのMicrosoftのページを参照ください。

スケジュール解除

登録したスケジュールを解除して自動実行を止めるには、次のコマンドを実行します。
(DOSプロンプトに、1行で入力してください)

schtasks /delete /tn ebackup

指定している値の詳細は、こちらのMicrosoftのページを参照ください。

ソースファイル

以下にソースコードを掲載します。
ダウンロードできない環境などで、ご使用ください。

bkup.bat【Windows】

set cur_dir=%~dp0
set ymd=%date:/=%
set host=xxx.xxx.xxx.xxx
set user=test
set pswrd=test
set tool_dir=/home/test/ebackup
set scp_pgm=%LOCALAPPDATA%\Programs\WinSCP\WinSCP.exe

cd /d %cur_dir%
md %ymd%
cd %ymd%

set file_base=dir1
set trgt_dir=/home/test/dir1
"%scp_pgm%" /script=%cur_dir%bkup.txt

cd ..

exit 0

bkup.txt【Windows】

option batch on
option transfer binary

open %user%:%pswrd%@%host%

cd "%tool_dir%"
call bash ./bkup.sh %file_base% %trgt_dir%

get -delete -preservetime "*_ls.txt"
get -delete -preservetime "*.gz"

clsoe
exit

bkup.sh【Linux】※改行コードは、LFで保存してください。

#!/bin/bash

CMD=`basename $0`
TZ="Asia/Tokyo"
ymd=`date +%Y%m%d`

file_base=$1
trgt_dir=$2

date

echo "--- ls start [${file_base}] ---"
ls -lR ${trgt_dir} > ${file_base}_${ymd}_ls.txt

echo "--- archive start [${file_base}] ---"
tar zcvf ${file_base}_${ymd}.tar.gz -C ${trgt_dir} .

echo "--- end ---"

exit 0

コメント

タイトルとURLをコピーしました