ファイルサーバへファイルを自動バックアップする運用

    こんにちは。漢鷹です。

    現在、自宅サーバでは以下のような構成で動画データをLINUXのSMB共有フォルダへ手動でコピーしている運用を行っています。

     

    構成

    動画PC→LAN→ルータ→LAN→LINUXファイルサーバ

     

    現在の運用では、「手動で目的の動画ファイルをコピペしてそののちリネーム」となっており、

    非常に煩わしく、時間を作らないと、この作業ができません。

    「もし、外出先からリモートで接続して、この作業が一発でできるようなバッチプログラムがあったら・・・」そう思って、まずはファイルを単純にコピーするバッチプログラムをC#で作ることにしました。なお、リネームするバッチプログラムはLINUX側でシェルプログラムを作り、簡単にリネームできるようにします。

    ※本当はPowerShellを使えばどうにでもなるようなプログラムですが、各PC環境でPowerShellが有効になっていなかったり、セキュリティレベルが設定されていなかったりするので、あえてプログラムを自作します。(コマンドプロンプトは利用できるものが少ないので起動時にしか使いません)

    以下のような仕様とします。

    バッチプログラムの仕様

    1. バッチファイル構成は「*.bat(バッチ本体) + *.exe(今回作るプログラム)」
    2. 作るプログラムの言語はC#。
    3. 開発環境はMicrosoft Visual Studio Community 2013
    4. プログラム起動時の起動引数の最初の引数に「コピー元のディレクトリ」とし、次の引数に「コピー先のディレクトリ」を指定する
    5. コピーしたいファイル名の文字列と変換後の文字列をXMLファイルで保持する。
    6. XMLファイルの読み出しはLINQを利用する。
    7. ディレクトリ指定ミスやネットワーク不調によるエラーが発生した場合は、処理を終了し、ログファイルにエラー出力する。
    8. データコピー終了後、データを所定の場所に移動させ、コピー元のディレクトリには何も残さない。また、エラー終了した場合はデータを移動させない。

    次の記事で、実際に作ったバッチプログラムのコードを紹介します。

    次の記事:ファイル自動バックアップバッチプログラムの作成 – 仕様編 –

    似たカテゴリーの投稿