terminal

前回の記事

lftpで自動的にcdとlcdコマンドを使って環境を合わせる方法 » WisdomTrees : http://wisdomtrees.net/?p=707

の続きです。

lftpで自動的に目標のサーバーへmirror出来るようになったので、更に発展させてローカルでの編集を監視して、即座にサーバーに反映させるような仕組みを作りました。

まず前回作ったコマンドを使ってlftp mirrorをする仕組みをシェルスクリプト化します。

#target_mirror.sh
#!/bin/sh

lftp -c 'connect XXX; cd /target/Dir/; lcd ~/Dropbox/target/Dir/; mirror -R'

そしてディレクトリの監視には、fswatchというソフトを使います。

brew install fswatch

でinstallできます。

Linux環境だと似たようなのにinotify-toolsというものがあるようです。

あとは、自分が編集しているディレクトリを監視させて、変更があった場合にはtarget_mirror.shを実行する仕組みを作ります。

fswatch -o ~/Dropbox/target/Dir | xargs -n1 -I{} target_mirror.sh

これで、ファイルを保存したタイミングで自動的にlftp mirrorコマンドが実行され、ローカルの変更が即座にリモートに反映されます。




terminal

継続的に開発をするサーバーについては、lftpでsftp接続をしてMirrorコマンドを使ってやる事があります。

毎回 lftpで接続した後に指定のディレクトリに移動して、ローカルディレクトリも合わせて、

$ lftp mirror -R

などをするのがつらくなってきたので自動化の方法を探しました。

まず、lftpで通常どおりサーバーに接続し、そこをbookmarkしてあげます。

$ lftp add bookmark XXX

次に、

$ lftp -e 'connect XXX; cd /target/Dir/; lcd ~/Dropbox/target/Dir/'

と -e オプションを使う事によって、こんな風にリモート、ローカルともにディレクトリ移動を自動化できます。
-eオプションはlftpから抜けないので、そのままlftp内で操作を継続できます。
反対に、-cオプションを使うと、lftpから抜けてしまいます。

mirror -Rをするのだけが目的であれば

$ lftp -c 'connect XXX; cd /target/Dir/; lcd ~/Dropbox/target/Dir/; mirror -R'

としても良いかもしれませんね。




index(2)

LinuxMint 17.1 RebeccaにDockerをインストールして、centosを導入してみる

まず、LXC (Linux Container)をインストール

sudo apt-get install lxc

つぎに、Dockerをインストールする

sudo apt-get install docker.io

インストールが終わったらDockerのデーモンを起動する

sudo service docker start

デーモンが立ち上がったらcentosのイメージをリポジトリからPULLする。

sudo docker pull centos

ちゃんとイメージがPULLできたかどうか、

sudo docker images

で確認できる。

さて、centos上でhelloworldを行うことにする

sudo docker run centos echo "hello world"

するとエラーが出た

FATA[0000] Error response from daemon: Cannot start container ac403b642da98d0e211e54a20718199bf02d6d70c7255f5f6f9e17dc5c1d8c7c: [8] System error: mountpoint for devices not found 

調べてみるとどうやら、cgroupを使える必要があるらしい。

cgroup を使うと、CPU時間やメモリ、ネットワークなどといったリソースを、 グループ単位で割り当てたり、制限をかけることができるとの事。

これとLXC(Linux Container)は依存関係にあるらしいのでこれをインストールする

sudo apt-get install cgroup-lite

これにて、centos上からのhello worldが実行出来た。

どうでもいいが、Dockerのロゴはとてもかわいいと思った。