で、Rsync はできたのか?

シェルスクリプトをやってみようかと思ったそもそもの切っ掛け、外付けハードディスクに Rsync を使ってバックアップを取るというシェルスクリプトは機能したのか?

苦節何ヶ月、といっても暇を見つけて、あるいは気が向いたら『ちょこっと』だが、結論からいってやっとこさ機能した。

これでバックアップをすると何が良いか?なんてたって一度バックアップを取ってしまえば、次回からは更新のあったファイル(というより更新部分だけなのかな?)だけを見つけてバックアップをしてくれるので、バックアップが劇的に早くなるのだ。

その Rsync を使ったぼくなりのシェルスクリプト、過去記事と重複する部分があるかもしれないが、自分の為の備忘録としても記しておく。

  1. シェルスクリプト自体はテキストエディットで記入。その際、エンコードが UTF-8、改行が UNIX (LF)であること。
  2. 拡張子は .sh とする。( .command とする方法もあるが)
  3. 置場所は users/usersneme/ 以下に bin というフォルダを作ってそこに格納するのが良いかと思う。
  4. 上記 ~/bin にパスを通す。(シェルがここにプログラムがあると判るようにしてやる。)

ここまでがまず第一段階。ところでこのパスの通し方だが、ぼくはシェルが起動するたびに自動的に ~/bin にパスが通るやり方を選択した。その方法は【Shiratsuki Public Blog】の【Mac OS X でシェルのパスを通す】を参考にさせていただいた。

それによると、ホームフォルダ直下に .bash_profile というファイルを作成し、以下のように記述し保存する。

export PATH=$PATH:~/bin

ここでもエンコードが UTF-8、改行が UNIX (LF)であること。それと不可視ファイルになってしまうので Jedit などの不可視ファイルをハンドリングできる物が必要だ。【Shiratsuki Public Blog】の著者さんは【 vi 】という(おそらくターミナル上で編集できるエディットだと思うが)ものを使われているが、ぼくはまだ知らないので単純な方法で行った。要するに export PATH というのが PATH を通すコマンドで、それを .bash_profile というファイルに書込むことでシェルがそいつを読みに行ってくれるんだと思う。

さていよいよ Rsync のシェルスクリプト。ぼくは【matopc :: computing】の【RsyncXでバックアップ】と【仕事と家事の狭間に】の【rsync の使い方】(こちらは過去のコンテンツになるようだ。)を参考というか、これはもう真似をさせていただいた。以下スクリプト。

#!/bin/bash

RSYNC=/usr/local/bin/rsync
OPTIONS="-avzu --delete --stats --exclude='.FBC*' --exclude='.DS_Store'"

a=$(date)

echo $a START Backup >> /Users/keizo/Documents/Backup_Log/rsyncx.log

${RSYNC} ${OPTIONS}	 /Users/keizo/Library/'Application Support'/ecto /Volumes/backup/Backup
${RSYNC} ${OPTIONS}	 /Users/keizo/Personal/account.fp7 /Volumes/backup/Backup

a=$(date)

echo $a END Backup >> /Users/keizo/Documents/Backup_Log/rsyncx.log

実は当初は複数のフォルダというかディレクトリを一度にバックアップするにはどうしたら良いのか判らなかった。そこでググったところ、最初にどのプログラムを使うか(ここでは rsync )とか Option を指定して、そしてバックアップするディレクトリとバックアップ先を指定すれば良いことが判った。

だから RSYNC=/usr/local/bin/rsync というのがこのプログラムを使いますよという指定。そして次に Option 。この -avzu とか --delete --stats などというのが、それぞれバックアップをする時の詳細なのだが、これを細かに説明する技量はぼくには無い。UNIX のコマンドで Rsync を検索すると必ずその詳細もわかると思う。ということで手を抜かせていただきます。

そして /Users/keizo/Library/'Application Support'/ecto というのがバックアップしたいディレクトリ。ここで 'Application Support' とシングルクォーテーションで括ってるが、このように間にスペースのあるディレクトリ名はシングルクォーテーションで括らないとエラーになる。そして半角スペースを空けて /Volumes/backup/Backup というようにバックアップ先を指定する。そして同じように別のディレクトリを指定していく。

a=$(date) というのは次の echo $a START Backup >> /Users/keizo/Documents/Backup_Log/rsyncx.log に関係するのだが、バックアップを始めたことと終了したことをログに残してくれるようだ。ようだというのも心もとないが、ログを見たら確かにコンソールが起上がってログを表示してくれている。

と、まあざっとこんな感じなのだが、こうやって文章(特に下手な)で書くとややこしそうだし、ぼくもそうだが何となく敷居が高く感じてもいたが、いや、これは便利だと思う。しかもさすが Mac OSX は UNIX の仲間だけあって、これらのプログラムが最初からインストール済なんだから嬉しいじゃないですか。

トラックバック

このエントリーのトラックバックURL:
http://www.sumainobaiten.com/blog/mt-tb.cgi/527

コメントを投稿

アーカイブ

最近のコメント

最近のトラックバック

Powered by
Movable Type 3.34