teematsu @ ウィキ

Cygwin

最終更新:

teematsu

- view
管理者のみ編集可

cygwinインストール

http://cygwin.com/

パッケージの追加

上の本家からsetup.exeをダウンロード。実行。 参考。

rsync

転送対象を別ファイルで指定

rsync -r --include-from=filelist /foo /bar

filelistファイルの記述方法は man rsync の FILTER RULES の節に説明がある。

  • 1行1ルール
  • 最初にマッチした行が有効
  • どれにもマッチしなければ転送対象になる。
  • #で始まるのはコメント
  • マッチしたら転送対象
    + パターン
    
  • マッチしたら除外
    - パターン
    

パターン

  • /abc
    /foo/abc にマッチ (/fooは、rsyncのコマンドラインにSRCとして指定したパス)
  • abc
    /foo/abcや/foo/xyz/abcにマッチ(最後がマッチすればマッチ)
  • /abc/
    /foo/abc というディレクトリにマッチ (/foo/abcが通常のファイルならマッチしない)
  • /abc/*
    /foo/abc/xyzや/foo/abc/123 にマッチ。ただし、/foo/abc/xyz/pqrにはマッチしない (/abcの直下にマッチ)
  • /abc/**
    /foo/abc/xyzや/foo/abc/xyz/pqrにマッチ(/abc配下にマッチ)
  • /abc/***
    /abc/ および /abc/** の両方を指定したのと同じ

再帰的に転送することを指定している場合(-r もしくは -aを指定している)、 /foo/a/b 配下が転送されるようにするには、/foo/aが除外されるような設定になっていてはならない。 以下の指定では、/foo/aが除外されてしまうため、/foo/a/b配下は転送されない。

+ /a/b/***
- *

差分転送に対する制御

デフォルトでは、タイムスタンプとファイルサイズの両方が一致すれば、ファイルに変更なしとみなす。 ファイルに変更がなければ転送しない。

差分転送を制御するオプションとして以下がある。それらの詳細な動作・関係がよくわからない。

  • --ignore-times ファイルの変更チェックにタイムスタンプとファイルサイズを使わない⇒すべてのファイルを転送
  • --whole-files ファイル一致確認をせずにすべて転送、と読めるが、実際にはこのオプションによらず差分転送になっている気がする。
  • -c/--checksum
  • --size-only

rsyncでバックアップ

日本語ファイル名の文字化け、および、転送漏れ(file has vanished)を防ぐため、以下のUTF-8 Cygwinのモジュールを組み込む。

http://www.okisoft.co.jp/esc/cygwin-20.html

#!/usr/bin/bash
# -a archive mode
# -v verbose
# -z compress
# --delete delte a remote file, if the local file is removed
dest=user@host:path/to/dest
rsyncopt='-avz --delete'
cd /cygdrive/d/work
rsync $rsyncopt src $dest

「--link-dest」を使うとディスクを節約できる

http://www.itmedia.co.jp/enterprise/articles/0804/25/news034.html#

SSH ポートフォーワーディング

ssh -L 12345:foo.example.com:80 bar@foo.example.com

ローカルの12345をfoo.example.comの80に転送
foo.example.comにログインするときのユーザーはbar

上記指定ではローカルの127.0.0.1以外のインタフェースからはフォーワーディングしてくれない場合がある。この場合は、

ssh -L mypc.example.com:12345:foo.example.com:80 bar@foo.example.com

のように、フォーワード元のインタフェースアドレスを明記する。


名前:
コメント:
人気記事ランキング
目安箱バナー