モノとしてrsync使うとデータ移行楽なの知ってたんですけど、社内PCのデータ移行として利用するの初めてでビクビクしてたけど、とっても便利でした!ファイルのパーミッションもそのままで同期してくれるのが最高に良い。ほとんど元のまま次のPCでも使える。
なんかいくつか思った点があったので、日記にかいとく。
Thunderbirdのデータ移行の例
メーラーはThunderbird使ってるけど、公式のバックアップ方法を見るとプロファイルのフォルダをそのまま移行すれば新しいPCでもそのまま利用できそうでした。ああ、じゃあここでrsync使えるかなと思ったので、下記でプロファイルのデータ送って、
$ rsync -av /Users/from/Library/Thunderbird/Profiles/ to@192.168.xxx.xxx:/Users/to/Library/Thunderbird/Profiles/
そいで、一度新しいPCでThnderbirdを開く→閉じるってして、公式の復元方法見ながらプロファイルのフォルダ名を合わせたら全部移行完了でした。 移行に際して、空いてるハードディスクとかなかったし、パーミッション関係心配だったので、すごい便利でした。
半角空白がパスにあると変な場所に送られた
ただちょっとハマったこと。 以下のコマンド使ってFirefoxのプロファイルを送ってたんだけど、なんか一発で指定したパスへ配置してくれなかった。
$ rsync -av /Users/from/Library/Application\ Support/Firefox/Profiles/ to@192.168.xxx.xxx:/Users/to/Library/Application Support/Firefox/Profiles/
上記でファイル送れるんだけど、実際には /Users/to/Library/Application/
へデータが送られた。パスを"
(ダブルクォート)で囲んでもダメ。回避する方法あるのかな?
最後は手動でプロファイルフォルダ移動させました。
あとrsync全然関係ないけど古い資料のアーカイブ
僕は全部、お仕事のディレクトリの階層って、 /path/to/work/<お客さんのとこの名前>/<案件の名前>/<いろんなファイル>
ってしてるんです。分かりやすいので。
ただ、終わった案件のファイルって大抵使わなくて、でも捨てるとあとあと面倒なことになるので、アーカイブにしておこうと思いました。
ただ、案件のフォルダがまためちゃめちゃ多いので、 /path/to/work/
に以下のシェルスクリプト作って実行、一括アーカイブしました。
#!/usr/bin/env bash echo "Start archive..." for comp in `ls` do echo if [ ! -d $comp ]; then echo "$comp is a file. Skip." continue fi echo "$comp" cd $comp for targetDir in `ls` do if [ ! -d $targetDir ]; then echo "$targetDir is not a directory. Skip." continue fi if [ -e $targetDir.tar.gz ]; then echo "$targetDir is already compressed. Skip." continue fi echo -n "Start compress $targetDir ..." tar zcf $targetDir.tar.gz $targetDir rm -rf $targetDir echo "Compressed." done echo echo "Finished $comp." cd ../ done
載せるほどじゃないんですけどね…なんにせようまくアーカイブできてよかった。
今年はあまり各方面で顔を出さなかったけれど、ぼちぼちやってるので、また来年はアウトプット増やせるように頑張るます。