2014年9月26日金曜日

gitで差分を表示する方法

ワークツリーとインデックスの比較

git diff

ファイル名のみ表示する

上記のコマンドに、–name-only optionを付けて実行
結果は、ファイルパスの一覧が帰ってきます。
git diff --name-only

作業ブランチと他のブランチの比較

現在のワークツリーと比較ブランチに指定したブランチをdiff します。
git diff  [比較ブランチ] 

ファイル名のみ表示する

git diff  [比較ブランチ] --name-only

Postgresで結果をCSV出力する方法

postgresでSQLの結果をCSV出力する。

実行するSQLをコマンドで直接渡す方法とSQLファイルを実行するパターンがありますが、よく使うのは、SQLファイルを実行する方法です。

SQLファイルを実行する方法

書き方は
psql [DB名] -U [ユーザー名] -f [SQLファイル.sql] -A -F, >> [出力CSVファイル.csv]
-A 桁揃えしない
-F 区切り文字指定

psql dbname -U postgres -f test.sql -A -F, >> test-result.csv

直接SQLを指定する方法

少し、SQLが複雑になってしまうと、めんどになってしまうのであまり使いませんが、コマンドはこんな感じ。
シンプルなSQLには、こちらの方が便利ですね。
psql [DB名] -U [ユーザー名] -c [SQL] -A -F, [出力CSVファイル.csv]

psql dbname -U postgres -f "select * from user;" -A -F, >> test-result.csv

2014年9月25日木曜日

git ですでに管理済みのファイルの変更を無視する方法

共同作業をしている場合などに、必要なファイルだけど、
各々設定がことなるファイルとか存在しますよね。
そんな、git ですでに管理済みのファイルの変更を無視したい場合。
git update-index --assume-unchanged [ファイル]
変更が入っていても、変更がなかったこととして扱われます。
変更の無視を解除したい場合は、
git update-index --no-assume-unchanged [ファイル]
no-がつきます。

コマンドでファイルをダウンロードする方法

コマンドでファイルをダウンロードするには、以下のコマンドを実行する。
wget [option] url

option

option 説明
-t リトライ回数の上限を指定
-i FILE FILE の中に指定された URL をダウンロードする
-d デバッグ情報を表示する

使用例

wget http://ec2-downloads.s3.amazonaws.com/cloudwatch-samples/CloudWatchMonitoringScripts-v1.1.0.zip

コマンドでディスク容量を確認する方法

コマンドでディスク容量を確認するには、以下のコマンドを実行する。
df [option]
このコマンドで、ファイルシステムの以下の項目が確認できる。
  • 全容量
  • 使用容量
  • 空き容量
  • 使用率
  • マウント位置

option

option 説明
-k キロ単位で表示
-m メガ単位で表示
-h 単位をつけて表示

使用例

df -m
df -h
上記をよく使います。

2014年9月23日火曜日

AWSのCloud Watchでディスク容量を監視する方法

awsのCloudWatchの管理画面の機能では、ec2のディスク容量を確認するUIが用意されていないようなので、自分でスクリプトを仕込んでCloudWatchにデータを送ってやる必要があります。
その設定方法は以下の通りです。

インストール方法

Amazon CloudWatch Monitoring Scriptsのインストール

/opt/aws配下にインスールを想定
cd /opt/aws
wget http://ec2-downloads.s3.amazonaws.com/cloudwatch-samples/CloudWatchMonitoringScripts-v1.1.0.zip
unzip CloudWatchMonitoringScripts-v1.1.0.zip
rm CloudWatchMonitoringScripts-v1.1.0.zip
cd aws-scripts-mon/

AWSのアクセスキーとシークレットキーの登録

awscredsに、AWSAccessKeyIdとAWSSecretKeyを設定します。
cp awscreds.template awscreds
vim awscreds

AWSAccessKeyId=xxxxxxxxxxxxx
AWSSecretKey=xxxxxxxxxxxxx

テスト用のコマンド実行

上記の設定が終わったら、下記のコマンドを実行してみる。
/dev/hoge のディスク容量を監視することを想定しており、適宜ディスクの場所は変更してください。
それから、以下のコマンドは実際にCloudWatchにはデータを送信されません。
あくまで、動作確認用になります
./mon-put-instance-data.pl --disk-space-util --disk-path=/dev/hoge --verify --verbose --aws-credential-file=/opt/aws/aws-scripts-mon/awscreds

–verif

メトリックスを収集するスクリプトのテストを実行し、完全な HTTP リクエストを準備します。ただし、実際に CloudWatch コールを実行して、データをレポートしません。また、このオプションは、認証情報が提供されているかどうかもチェックします。このオプションを冗長モードで実行すると、CloudWatch に送信されるメトリックスを出力します。

–verbose

スクリプトが実行する内容についての詳細情報を表示します。

–aws-credential-file=PATH

AWS 認証情報が格納されているファイルの場所を指定します。

cronに設定

上記コマンドが問題がなければ、cronに設定する。
crontab -e

*/5 * * * * /opt/aws/aws-scripts-mon/mon-put-instance-data.pl --disk-space-util --disk-path=/dev/hoge --aws-credential-file=/opt/aws/aws-scripts-mon/awscreds
これで、5分間隔で、cloudwatchにデータが収集されます。
送信されたMetricsは、Linux System > Filesystem,InstanceId,MountPathとして登録されます。
あとは、適宜アラートを設定して、監視に利用する。

cronが動作しているか確認する5つの項目

あれっ!?クーロン動いてるの?って思ったことは無いでしょうか?
そんなときは、以下の5点を確認してみてください。
  1. デーモンの確認
  2. サービス自動起動の設定の確認
  3. 実行権限の確認
  4. クーロンログの確認
  5. スクリプ自体のログを確認

1.デーモンの確認

下記のコマンドを実行して、クーロンのデーモンが実行中になっていることを確認
# /etc/rc.d/init.d/crond status 
crond (pid  1346) を実行中...

2.サービス自動起動の設定の確認

chkconfig –list crond
2~5までがonになっていることを確認
# chkconfig --list crond
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off

3.実行権限の確認

実行するファイルの実行権限が付いているか確認
# ls -al
-rwxr-xr-x 1 root root  9376  2月  9 10:39 2013 script.sh
もし、実行権限が付いていないようであれば、権限を変更する
# chmod 755 script.sh 

4.クーロンログの確認

クーロンログを確認する
# tail -100 /var/log/cron
以下のようなエラーが出ていたら
Sep 22 16:01:01 ip-10-0-4-29 crond[3465]: (root) FAILED to authorize user with PAM (Module is unknown)
クーロンを再起動で対処できるようです。
/etc/init.d/crond restart
or
sudo service cornd restart

5.スクリプ自体のログを確認

スクリプトのログを設定する

* * * * * /bin/sh /script.sh >>/var/log/script.log 2>>/var/log/script-error.log
/var/log/script.logに標準出力のログ、/var/log/script-error.logにエラーログが出力されるので、そのログを確認する。

2014年9月20日土曜日

オススメ スライダー Owl Carousel 2の使い方

スライダーのプラグインも色々とありますが、私がオススメなのはOwl Carouselです。
動画のスライドや、レスポンシブルにやってくれたり、モバイルのタッチ&ドラッグにも対応しているので、PC、モバイル共通のコードでいく人には、最高にオススメのスライダーです。
以下に簡単に使い方を説明します。
執筆時点のバージョンは、2.0.0-beta.2.4です

基本的な使い方

js
$( document ).ready(function() {
    $('.owl-carousel').owlCarousel({
        loop:true, // 無限ループ
        margin:10, // margin-right 単位はpx
        nav:true, //  next/prevボタンの表示・非表示
        responsive:{ // 画面サイズによるスライドの表示数
            0:{
                items:1 // 0~600pxの間は、1個表示
            },
            600:{
                items:3 // 600~1000pxの間は、3個表示
            },
            1000:{
                items:5 // 1000px~の間は、5個表示
            }
        }
    });
});
html
<div class="owl-carousel">
    <div class="item"><h4>1</h4></div>
    <div class="item"><h4>2</h4></div>
    <div class="item"><h4>3</h4></div>
    <div class="item"><h4>4</h4></div>
    <div class="item"><h4>5</h4></div>
</div>
owl-carouselの子要素($(".item"))がスライドの対象となる。

Lazy Load

後ろにあって、まだ表示されていない画像を表示される直前に読み込むことができるため、初期表示での描画負荷が軽くすることができる。
js
$( document ).ready(function() {
    $('.owl-carousel').owlCarousel({
        items:4,
        lazyLoad:true,
        loop:true,
        margin:10
    });
});
html
<div class="owl-carousel">
    <img class="owl-lazy" data-src="http://placehold.it/350x250&text=1" alt="">
    <img class="owl-lazy" data-src="http://placehold.it/350x250&text=2" alt="">
    <img class="owl-lazy" data-src="http://placehold.it/350x250&text=3" alt="">
    <img class="owl-lazy" data-src="http://placehold.it/350x250&text=4" alt="">
    <img class="owl-lazy" data-src="http://placehold.it/350x250&text=5" alt="">
    <img class="owl-lazy" data-src="http://placehold.it/350x250&text=6" alt="">
    <img class="owl-lazy" data-src="http://placehold.it/350x250&text=7" alt="">
    <img class="owl-lazy" data-src="http://placehold.it/350x250&text=8" alt="">
</div>
ポイントは以下の2点。
1. lazyLoad:trueをtrue
2. data-srcに画像のパスを指定する。
これで、画像を遅延して読み込んでくれます。

参考ページ

最新バージョン

公式ページ
デモページ
ドキュメント

旧バージョン(安定)

旧公式ページ

statistics