シェルスクリプトメモ
メモです。
研究でログ取ったり、いっぱいデーモン立ち上げたりするときに必要だったので調べた。
残しておかないとすぐ無くす・・
シェルスクリプトでミリ秒を含むUnixTimeの出力
$ echo $(printf '%d' $(expr `date +%s%N` / 1000000)) > 1370856437368
指定した文字列(foo)を含むプロセスの終了
kill -9 `ps aux | grep foo | cut -c10-14`
gitでWebページのデプロイ
銀鷹です。
お題の通りですが、金曜日に研究室のWebページのデプロイを
gitで出来るようにしたのでまとめておきます。
今までは、Webページの管理者がWinSCPとかで頑張ってやってたんだけど、
更新が衝突することが多かったのでやってみた。
あと、ついでに研究室のGitLabにもミラーリポジトリを作ったので更新履歴がWebでも見れる。
git万歳。
必要な手順については、以下のとおり。
1. Webページ用のbareリポジトリの作成
どこか、適当な場所に作る。
gitでpushする際に、SSHでログインするので、SSHでログイン出来るユーザのホームに作った。
mkdir -p ~/repos/web cd ~/repos/web $ git init --bare --shared=true
bareリポジトリ
作業ファイルのない、管理情報だけのリポジトリらしい。
つまるところ、普段pushする先のリポジトリ(サーバ側のリポジトリ)ということなんだと思う。
2. baraリポジトリをWebページのDocumentRootでclone
cd /var/www sudo git clone ~/repos/web ##/var/www/webがDocumentRoot sudo chown -R yutaka:yutaka web/
3. bareリポジトリにhookを設定
post-receive(クライアントからのpushが終わったら呼ばれる)で、
2.でcloneしたリポジトリ(DocumentRoot)でpullするhookを設定する。
cd ~/repost/www/hooks cp post-receive.sample post-receive echo "(cd /var/www/web; git --git-dir=.git pull)"
4. クライアントでcloneしてWebページのコンテンツをデプロイ
まずは、SSHの設定をする。
# .ssh/config Host web-deploy User yutaka Port 10022 Hostname 10.0.0.1 IdentityFile ~/.ssh/id_rsa
設定が終わったらリポジトリをcloneする。
cd git clone web-deploy:~/repos/web
リポジトリに変更を加えてpush、これでWebページのコンテンツが更新される。
cd web echo "test" > test.txt git add . git commit -m "add: test.txt" git push
以上で設定は完了。
これで、gitで簡単なデプロイが出来るようになる。
研究室の環境では、これに加えて、事前に作成したミラーへもpushするようにしてあるので、
ミラーが登録されているGitLabで更新履歴が見れるので便利。
感想
適当にbareリポジトリを作っておくと、あとはSSHでログインさえ出来ればcloneやpushが出来て、
hookを仕掛けるだけでお手軽にこういった環境を作れるのは便利だ。
今回の場合、基本的には静的なコンテンツしか無いので、単純にpullで済むけど、
そうじゃない場合はhookに頼るんじゃなくて、fabricとかを使ったほうがいいのかな?
いまいち、gitでのデプロイと他のデプロイツールの使い分けがわからない。
ブログ移行と近況報告
銀鷹です。
以前から、どこかに移行しようと思っていたので、思い切って移行しました。
暫くはてなブログでやってみて、問題無さそうなら続けて行きたいなと。
近況報告
無駄に忙しいです。
特に、学会発表の準備が2件と英語論文1本が同時進行してるあたり無理がある。
07/9-07/12に北海道
07/15に英語論文締切
09/09-09/11に北九州
最後に通れば11月にドイツらしい。
あと、夏休みはインターンに行きたいので、その準備もやってます。
普段はあんまりプロダクト作ってないのでそのへん辛いけど、
何とかやれるようにやりたいなと思っている。
ひとまず、AnsibleとRedisあたりの検証とかはやっておきたいな。
如何せん、Webサービス的なものを作るのは苦手です。同期が羨ましい。
ブログ移転
gistが貼り付けられなかったり、Markdownが書けなかったりと色々不満があったので移行。
なんか、記事の移行も出来るらしいけど、特に必要は無いと感じているので、
お互いに移行した事実だけ書いておいて置いておこうと思う。
旧銀鷹のメモ帳 http://d.hatena.ne.jp/yutaka_j/