nDiki : rsync

rsync

よく使うパターン

 # 基本
 rsync -av $src $dest

 # 同期先にしかないファイルは削除
 rsync -av --delete $src $dest

 # 同期先にしかないファイルは削除 (--exclude 指定してあるものも削除)
 rsync -av --delete-excluded --exclude '...' $src $dest

 # シンボリックリンクはその先のファイル実体にする
 rsync -avL $src $dest

 # 圧縮して転送する
 rsync -avz $src $dest

 # .svn/ を除外してコピーする
 rsync -av --delete-exclude --delete .svn/ $src $dest

src と dest の指定

 rsync -av /src/foo  /dest
 rsync -av /src/foo/ /dest/foo

関連情報

  • cwRsync
    • Cygwin 上で動く rsync を使うのに必要な最低限のファイルをパッケージングしたもの。
  • Unison
  • lsyncd (live syncing (mirror) daemon)
    • inotify を使ってディレクトリツリーの変更を監視し、同期するデーモン。
  • SSH
  • バックアップ
  • rdiff-backup
  • rsnapshot

web

スポンサード リンク

2014年3月25日 (火)

EmacsOrg Capture でぼっちつぶやき

あとで整理してまとめたりできるように、ふと思ったことを非公開で1人 Twitter タイムライン的にログっておくのに PC 上でなかなかいいのないんだよねとずっと思っていたんだけれど Emacs の Org mode にある Org Capture 試してみたらいい感じだった。

普段 Org mode 使っていないので Org Capture で必要なところだけ設定してみた。

 (require 'org)

 (setq org-capture-templates
       '(
         ("t" "Timeline (local)"
          plain
          (file (concat "~/var/timeline/timeline-" (format-time-string "%Y-%m-%d") ".md"))
          "- [%(format-time-string \"%Y-%m-%d %H:%M:%S\")] %?\n")
         ("n" "Note (local)"
          plain
          (file (concat "~/var/note/" (format-time-string "%Y-%m-%d-%H%M%S") ".md"))
          "# %?\n[%(format-time-string \"%Y-%m-%d %H:%M:%S\")]\n")
         ("T" "Timeline"
          plain
          (file (concat "/naney@example.com:/home/naney/var/timeline/timeline-" (format-time-string "%Y-%m-%d") ".md"))
         "- [%(format-time-string \"%Y-%m-%d %H:%M:%S\")] %?\n")
        ("N" "Note"
         plain
         (file (concat "/naney@example.com:/home/naney/var/note/" (format-time-string "%Y-%m-%d-%H%M%S") ".md"))
         "# %?\n[%(format-time-string \"%Y-%m-%d %H:%M:%S\")]\n")))

 (global-set-key (kbd "\C-cc") 'org-capture)

'C-c c t' すると

 - [2014-03-25 23:24:25]

が書かれたバッファが開くので適当に何か書いて C-c C-c する。と、~/var/timeline-2014-03-25.md にその内容が追記される。

TRAMP でリモートホスト上のファイルを開く時のファイル名を指定してみたらうまくいったので、さくっとリモートファイルにも追記できてすごく嬉しい。ので 'C-c c T' で書き込めるように設定してみた。これで Dropboxrsync / Unison などで同期する必要がなくていろいろ良い。

あとは追記型ではなくて都度新しくノートファイルを起こすタイプの設定も追加しておいた('C-c c n' と 'C-c c N' で呼び出し)。howm で 'C-c , c' するのと同じ感覚で作れる。こちらもリモートホスト上にファイル名で悩む必要なくさくっとノートを書いておくことができて良い(そのかわり howm みたいに grep できないけれど)。

2014年3月27日追記

リモートホスト上のファイルへの保存の方を良く使うので、'C-c c' の後のキーは小文字の方をリモートに、大文字の方をローカルに変更。

スポンサード リンク
[ 3月25日全て ]

2014年6月19日 (木)

今日のさえずり: 相変わらず「すり合わせ」という会議名気持ち悪い

2014年06月19日

[ 6月19日全て ]

2014年6月20日 (金)

今日のさえずり: ボスすみません! figma 江頭2:50 はやっぱり NG もらいました!

2014年06月20日

naney:14459672071

[ 6月20日全て ]

2014年6月23日 (月)

rsync --link-dest でスナップショットをとる

バックアップには pdumpfs をずっと使い続けているけど、メンテナンスもされていないので、ぼちぼち rsync --link-dest を使ったバックアップにしようかと。

rsync は --link-dest で前の同期ディレクトリを指定するとそちらに同一のファイルがある場合はそのファイルへのハードリンクにする形に同期してくれるので、無駄なくスナップショットをとれる。ただ --link-dest は自分で明示的に指定する必要があり面倒なのでなんらかしらスクリプトを作る必要がある。

今のところ決定版みたいなのが見つかっていないので、とりあえず用に書いた。ローカル-ローカル専用。

 #!/usr/bin/perl

 use warnings;
 use strict;
 use File::Spec;
 use File::Path;

 my ($sec, $min, $hour, $mday, $mon, $year) = localtime(time);
 $year += 1900;
 $mon++;

 my $backup_root_dir = '/mnt/backup';
 my $source_abs_dir  = '/home/naney';

 my $i          = 1;
 my $backup_dir = sprintf("%04d-%02d-%02d-%02d%02d%02d",
   $year, $mon, $mday, $hour, $min, $sec);

 my $backup_abs_dir = File::Spec->catfile($backup_root_dir, $backup_dir);
 exit 1 if -e $backup_abs_dir;

 opendir(my $dh, $backup_root_dir) or die;
 my @old_backup_dirs = reverse sort { $a cmp $b }
   grep { /^\d{4}-\d{2}-\d{2}-\d{2}\d{2}\d{2}$/ } readdir $dh;
 closedir $dh;

 my $link_dest_dir;

 for my $old_backup_dir (@old_backup_dirs) {
   exit 1 if $old_backup_dir eq $backup_dir;
   next   if (($old_backup_dir cmp $backup_dir) > 0);
   $link_dest_dir = $old_backup_dir;
   last;
 }

 File::Path::make_path($backup_abs_dir);
 exit unless -d $backup_abs_dir;

 my $command;
 if ($link_dest_dir) {
   $command
     = "rsync -av --delete --link-dest=../$link_dest_dir $source_abs_dir $backup_abs_dir";
 }
 else {
   $command = "rsync -av --delete $source_abs_dir $backup_abs_dir";
 }

 system($command);
[ 6月23日全て ]

2015年4月4日 (土)

13インチ MacBook Pro Retina Early 2015 買った

naney:17026016921

2015年3月10日にアップデートされた「13インチMacBook Pro Retinaディスプレイモデル」(いわゆる Early 2015) を先週の土曜日についに注文した。めでたく今日到着して開梱。

Model No は A1502 で、 Family ID は Z0QP。Apple Store で注文時の内容は以下。「13インチ:2.9GHz Retinaディスプレイ」のメモリを16GBにして、キーボード英語キーボードにした。

 2.9GHzデュアルコアIntel Core i5(Turbo Boost使用時最大3.3GHz)
 16GB 1,866MHz LPDDR3 SDRAM
 512GBフラッシュストレージ(PCIeベース)
 Intel Iris Graphics 6100
 感圧タッチトラックパッド
 バックライトキーボード (US) + 製品マニュアル(日本語)

個人で Mac を使うのは初めて。

13インチ MacBook Pro Retina Early 2015 の選定

ThinkPad X31ThinkPad X200 と直近2台は ThinkPad だったんだけれど、ここ最近の ThinkPad (というか Lenovo) を考えると次は無いなと。しかしでは他に Linuxインストールしたいノート PC があるかというと思い浮かんでこない。

ということで陥落して MacBook Pro をチョイスした。

3月に仕事で「15インチMacBook Pro Retinaディスプレイモデル」を支給されてついに初 Mac・初 OS X となったわけなんだけれど、使ってみてまあ Debian GNU/Linux から乗り換えてもいいかなと。

MacBook Pro Retina は「13インチか15インチか」が非常に迷うところ。 Web を見ていると「性能的に15インチが良い」という声が多い。しかし実際にオフィスで15インチモデルを使い、東北新幹線仙台出張に行ってきた感じではちょっと大きいなと。

13インチモデルは13.3インチディスプレイで、今使っている ThinkPad X200 の12.1型ディスプレイより少し広いぐらいでほぼ同じ感じ。本体も若干大きくなるぐらい。やはり普段使うには13インチモデルで十分かな。あとそもそも15インチモデルはまだ Early 2015 が出ていないし。なお MacBook Air は Early 2015 でもメモリ最大8GBなので選外。

初期設定

初回起動時に指示に従って設定。FileVault ディスク暗号化はデフォルトでチェックされていたけれど、ちょっとリスキーな雰囲気だったので切で進めた。

起動してからシステム環境設定をちょこちょこいじり、後は以下をインストール

ここまで入れれば一段落。Web ベースの作業はだいたいできる状態になった。あとは使いながら順に環境を作っていく感じかな。Debian GNU/Linux 間での乗り換えの時は基本 $HOME 以下を rsync するかバックアップからの cp -a かでガツンと前の環境を持ってきていたんだけれど、今回はいろいろ見直しながら移していくつもり。

[ 4月4日全て ]

2015年4月13日 (月)

OS X でのフォルダ同期ツールを探している

MacBook Pro 上のフォルダと AirMac Time Capsule 上の Data フォルダを同期したい。あと同様に外付け HDD (FAT32) とも同期させたい。OS X 用の良いツールが無いかな? 無ければ地味に rsync かな。

あとちょっとトリッキーな操作をしないとバックアップ先での Time Machine 容量制限をかけられないことを知ってどうしようかと思っているところ。

[ 4月13日全て ]

2015年5月7日 (木)

今日のさえずり: AirMac Time Capsule に mount.cifs してるんだけれど遅い

2015年05月07日

[ 5月7日全て ]

2016年1月3日 (日)

ようやく ThinkPad X200 のホームディレクトリの全データを MacBook Pro にコピー

昨年4月に注文した MacBook Pro が届いてメイン端末を ThinkPad X200 (Debian GNU/Linux) から変更しました。

Emacs・KeePassX・UnisonGIMPdigiKam・VLC などを入れたところで Debian GNU/Linux 上でやっていたことはほぼ OS X 上でもできるようになり環境自体は移行完了。ただ古くから秘伝のタレのようにコピーしていたホームディレクトリはまだ ThinkPad X200 に残ったままでした。

デジカメで撮った写真動画rsyncUnison などで昨年少しずつ同期したりオリジナルデータを Dropbox 経由で同期したりしてから整理するなどして、ようやくホームディレクトリが 50GB を切ったので残りを全部まとめて MacBook Pro 側にコピーできるかなという状況になりました。

なので昨晩ようやく rsync でホームディレクトリをまるごと転送を実行。何度やっても更新されていないのに転送を繰り返すファイルがあって何だろうと思ったら、大文字小文字違いのファイルやディレクトリが Debian GNU/Linux 側にあったという落ちでした(適宜改名等して対応)。

整理は終わってないですが、とりあえず ThinkPad X200 が死んでデータ復旧が面倒になる自体は避けられるようになって一安心。年末年始休暇で1つ大仕事が終わって満足です。

今日のさえずり: 今年最初のアイカツ! 活動

2016年01月03日

[ 1月3日全て ]

2016年10月16日 (日)

今日のさえずり: 日本語ファイル名のファイルを作るの抵抗が無くなってきた

2016年10月16日

[ 10月16日全て ]

2017年4月8日 (土)

テキストファイル拡張子を txt に統一するのをやめる

Markdown ファイルの拡張子を md にすると Google ドライブで不便だったこともあり、各種テキストファイルファイル名拡張子を txt に統一していました。しかし昨日入れiOS アプリの Editorial が txt md taskpaper で厳密に機能を切り替えるようになっており、拡張子を使い分ける必要性に迫られました。

ふりかえってみるとスマートフォンで Google ドライブ上のテキストファイルを全文検索したかったこともそれほど無かったので、ここは使い勝手を考えてまたきちんと拡張子を使い分けることにしました。

とアプリケーションの設定を変更。それから Ulysses で txt ファイルを Markdown と見なしたいファイル群と標準テキストとして見なしたいファイル群で別の外部フォルダとして分けていたのですが、今後は拡張子で処理を変えられるようになりプレーンテキストファイル・Markdown ファイル・TaskPaper ファイルを混在させても問題なくなったので外部フォルダを適宜まとめなおしました。 Editorial で同期するフォルダがコンパクトになるように TaskPaper ファイルの workspace フォルダ配下への集約もしました。

あとは txt をつけていた Markdown ファイルの拡張子を片っ端からスクリプトで md に変更して対応終了です。 Jota+ が Markdown ファイルをハイライトしてくれるようになったりして、これはこれで良かったかなと。

[ 4月8日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィでマネージャー・PO をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

follow us in feedly

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.051353s / load averages: 0.56, 0.40, 0.35
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker