バックアップシェルスクリプトver.1
バックアップシェルスクリプト
rsyncコマンドを並べただけのバックアップシェルスクリプトサンプルです。
Cygwinなどで実行します。
#!/bin/sh
echo "This program take backup..."
echo "bk01:WorkDrive to FileServer,and to BackUp_HDD_k"
echo "bk02:ShareData in fileServer to BackUp_HDD_Q"
#bk01:WorkDriveのファイルサーバーへのバックアップ
rsync -a -delete -v /cygdrive/w/ //192.168.01.01/share/\ 部署A_bk/w_drive
#bk01:WorkDriveのバックアップ(ToHDD:K)
rsync -a -delete -v /cygdrive/w/ /cygdrive/k/w_drive/
#bk02:ファイルサーバ内のShareDataのバックアップ
rsync -a -delete -v //192.168.01.01/share/ShareData/ /cygdrive/Q/ShareData_bk/
やりたいこと
- "my_PC"(Cygwin環境)とLAN内にある"FileServer"の間で、バックアップをとりつとられつ。
- LAN内の通信量を減らすため差分バックアップを行いたい。
- コマンドラインでサクッと毎回実行したい
ファイル構成
< my_PC(cygwin) >
w:WorkDrive
│workfiles...
└
k:BackUpDrive1(外付けHDDです)
│w_drive
└
q:BackUpDrive2(外付けHDDです)
│ShareData_bk
└
< FileServer >(アドレス192.168.01.01)
|share
|部署A
|w_drive
#!/bin/sh
バックアップのコードとは関係ないですが、動かすシェルプログラムを指定します。
例えばCygwinだと
$ echo $SHELL
/bin/bash
という風にシェルの場所が分かります。
echo "This program take backup..."
echo "bk01:WorkDrive to FileServer,and to BackUp_HDD_k"
echo "bk02:ShareData in fileServer to BackUp_HDD_Q"
このスクリプトを起動したときにシェルにメッセージを表示させてみました。プログラムの動作が分かるように。
#bk01:WorkDriveのファイルサーバーへのバックアップ
rsync -a -delete -v /cygdrive/w/ //192.168.01.01/share/10\ 部署A_bk/w_drive
rsyncを利用して、差分バックアップを行っています。
rsyncのオプションは以下の通り
-a:フォルダのコピーを行い、リンクを相対的につくりなおし、ファイルのタイムスタンプ・編集権限は保ってコピーを行う。
-delete:2回目以降のバックアップの際、バックアップもとで削除されたファイルはバックアップ先でも削除する。
-v:rsyncが行う操作を表示させながら動かす。現在どのファイルをコピーしているのかという情報。
rsyncの文法
rsync [-オプション] [バックアップ元ディレクトリ/] [バックアップ先ディレクトリ/]
また、上記サンプルでバックアップ先に「\ 」(バックスラッシュ+スペース)はwindowsにおけるディレクトリ名に半角スペースを表しています。(共有フォルダ内はちゃんとシェルから指定しやすいフォルダ名にしてほしい!(まさかの☆とか★とかつけるのやめてほしい!!!orz))
Cygwinでネットワークドライブにアクセスするときは「//」をつけてアクセスします。
以上のシェルスクリプトをPC使わない時間に実行してます。
課題など
- 1世代しかバックアップ取れてない
- 実際のところ、バックアップファイルの権限がオリジナルファイルと変わっている。winだといちいちファイルの権限を編集してから使用しないといけない。
Author And Source
この問題について(バックアップシェルスクリプトver.1), 我々は、より多くの情報をここで見つけました https://qiita.com/trickre/items/1c5e113b58cf0af462a3著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .