◆ First of all,,,
自宅サーバを運営していて、必要となってくるものとしてバックアップがあります。◆ サーバ側の準備
定期的にFTPや共有で手動ダウンロードしている手間はまずらわしいですよね。
私はサーバがLinux、クライアントにLinuxもデュアルブートしているものの
ソフトの対応やその他で使用頻度としてWindows2000をたいてい利用することが多いです。
他のサーバ管理者さんもサーバがLinux、クライアントがWindowsで
運用している方が結構いると思います。
システム交換性から、自動にする方法が見つからなかった方に朗報です!
ちなみにLinuxとLinuxの間では、バックアップ先のコンピュータが起動してさえいれば
シェルとCronで簡単に自動転送バックアップが出来ます。ここでは、サーバ機がLinux、クライアント機(バックアップ先)がWindowsの場合で
進めていきます。
生活スタイルに合わせてバックアップをすることが出来るのが画期的です。
ただし、毎日なり2日おきなり、毎日20分以上パソコンを起動するのが前提条件です。
というよりサーバを管理するぐらいなら簡単にクリアできる条件でしょう?なお、その他としてtarとCron、コマンドを打てるユーザ(サーバ・クライアント共に)、
がFTP接続・転送ができるユーザがいりますが問題ないと思われます。
基本的にはバックアップ用のディレクトリを作ってそこにtarで圧縮し、
それをクライアント側からFTP転送する、といった具合です。
それでは、やってみましょう!
あらかじめ、どこをバックアップしたいかを決めて置いてください。◆ クライアント側の設定
VineLinuxの例としては、
・ユーザファイルがある場所として... /home
・ログファイルがある場所として ... /var/logとりあえず先に、最後にWin(バックアップ先)からFTP転送をするためのユーザを
作成しておいてください。例:backup
このユーザはシェルがつかえないFTP転送だけの状態にしておくとよりセキュアです。きめたら、viエディタなどを使って以下のシェルを書いてください。
# mkdir /bup ←バックアップ先のディレクトリを先に作ります
# vi /bup/arc.sh
#!/bin/shtar cvf /bup/home_directory.tar /home/
tar cvf /bup/log_file.tar /var/log/
gzip /bup/home_directory.tar
gzip /bup/log_file.tar
chmod 600 /bup/* ←バックアップファイルを他ユーザに見られないように変更
chown backup:backup /bup/* ←FTP転送用のユーザ(・グループ)に権限変更
:wq
# chmod 600 /bup/arc.sh ←他ユーザからの実行をさせないこのスクリプトを基本とするので、シェルが使えるユーザでrootになり(suコマンド)、
# sh /bup/arc.sh実行後、/bupないにhome_directory.tarとlog_file.tarが出てくれば成功です。
次に、このシェルスクリプトを定期的に実行させるようにCronに登録します。
上記では毎日3時50分にバックアップファイルを作成します。
# vi /etc/crontab
# ≪以下を追記≫50 3 * * * root sh /bup/arc.sh
:wq
頻度に関してはいろいろとカスタマイズしてOKです。
以上でサーバ側の設定は完了です。
転送先のクライアント側では、DOSコマンドを連続実行します。
とりあえず、クライアントの方にもバックアップの専用ディレクトリを確保しましょう。
例: C:\server-backup
フォルダの作り方などは特にかかなくて問題ないですよね(^^;用意したら、メモ帳(エディタなら特にTeraPadなどどれでも)で、以下のような文章を書きます
これを先ほど作ったディレクトリに保存します。例:command.txt
open 192.168.0.2 ←サーバのIPアドレスまたはホスト
backup ←最初辺りに作ったFTP転送用のユーザ名
password ←そのユーザのパスワード
binary ←バイナリモードに切り替え
get /bup/home_directory.tar (homeディレクトリのバックアップをDL)
get /bup/log_file.tar
quit ←FTP接続終了実行中はDOS窓で不信に思っちゃうかもしれません(笑)
なので、一応「実行しているんですよ」と表示するためのテキストを作ります。
このようなファイルを 例 「bu-messages.txt」といった名前で保存しましょう。あとは実行用のbatファイルを作ります。
先ほどのようにメモ帳などで、以下のような文面を書いて、「sdl.bat」という名前で保存します。
これで実行準備は出来ました。
type bu-message.txt ftp -s:command.txt > backupget.log
あとは定期的に(例では毎日)実行するだけです
定期実行といえばタスクスケジューラを使ってもいいですが待機しているだけムダなど
がありますので却下します。毎日1回だけ、パソコンが起動してから5分後にダウンロードするようにします。
これを実現できるソフトが既にあります。
これならば、1日に何回もやったり、「定刻何時」と決めなくても毎日に応じて可能です。
もちろん、その日は忙しくて起動してなくても翌日、また出来ますし。先に、先ほど保存したsdl.batをスタートアップに登録します。
[スタート]−[プログラム]→『スタートアップ』をダブルクリックすると開きます。
そこにsdl.batのショートカットを作成してください。
もちろん、そのままにしておくとログインするたびに即刻動きます。そこで、 Startup Impactを使います。←のリンクからダウンロードしてインストールしてください。
インストール途中に現在のスタートアップを登録するかなどと聞かれたと思います。
指示に従ってすべてStartup Impactで管理するように変更してください。インストール後起動すると、下側の部分に一覧が表示されています。
そこからsdl.batの文字をダブルクリックしてください。
・起動直後では負荷が掛かっているので、5分(300秒)後に実行するように遅延タイムを変更
・1日何回も実行したらムダなので「1日1回だけ起動」にチェックON
・朝は起動するけど忙しくて・・・帰宅直後がいい!
など、バックアップしてもいい時間帯を指定することもできます。設定が完了したらOKで閉じます。
あとは、毎日、勝手にやってくれます。