git関連のメモ
- ログを見やすくする
git log --graph --all --format="%x09%an%x09%h %d %s"
- コミット間のファイル一覧取得
git diff --stat --name-only [コミットID] [コミットID]
name-onlyをつけるとファイル名のみ取得できる
- マージする方法
git merge [ブランチ名]
特定のファイルをマージするとき
git checkout ${branch} ${file}
- 差分確認
git diff HEAD^ --color-words
color-words →単語に色を付ける
- 変更を戻す場合
git checkout data/batch/mail/BAT_01_01/mail_ok_zero.txt
- ブランチ削除する場合
git branch --delete foo
- コミット改行を含める方法
#-mは複数つけることができる git commit -m "abc" -m "edf" -m "hij"
PHPにてjson_decodeの罠にはまった
最近、phpを書きはじめました。
本当に初歩的なことなので、忘れないように書き留めておく。
json_encodeの返却値が第2引数をつけないと配列としてアクセスできない。
配列として扱うには第2引数をつけるのを忘れない。
↓↓↓
php5.6の場合
$array = array(
'a'=>1,
'b'=>2,
'c'=>3,
);
//jsonエンコードする
echo(json_encode($array)."\n");
//出力結果->{"a":1,"b":2,"c":3}
//オブジェクトで返却される
$json_decode_obj = json_decode($json);
//出力結果
// object(stdClass)#1 (3) {
// ["a"]=>
// int(1)
// ["b"]=>
// int(2)
// ["c"]=>
// int(3)
// }
//配列で返却される
$json_decode_array = json_decode($json,true);
//出力結果
// array(3) {
// ["a"]=>
// int(1)
// ["b"]=>
// int(2)
// ["c"]=>
// int(3)
// }
AWS plenvでperlのインストール
AWSにてplenvからperlをインストールしたときにエラーになった。
OSの情報
[ec2-user@ip-10-3-10-53 ~]$ uname -a Linux ip-10-3-10-53 4.9.62-21.56.amzn1.x86_64 #1 SMP Thu Nov 16 05:37:08 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
エラーの内容
[ec2-user@ip-10-3-10-53 ~]$ plenv install 5.26.1 Installing 5.26.1 as 5.26.1 /usr/bin/perl -- /home/ec2-user/.plenv/plugins/perl-build/bin/perl-build --symlink-devel-executables --build-dir /home/ec2-user/.plenv/build/1512626314.23666/ --tarball-dir /home/ec2-user/.plenv/cache/ -Dusedevel 5.26.1 /home/ec2-user/.plenv/versions/5.26.1 WARN: [cpan_perl_releases] not found the tarball for perl-5.26.1 WARN: [perl_releases_page] This page is 3 or more days old. ignore Fetching 5.26.1 as /home/ec2-user/.plenv/cache/perl-5.26.1.tar.gz (http://www.cpan.org/authors/id/S/SH/SHAY/perl-5.26.1.tar.gz) Downloaded http://www.cpan.org/authors/id/S/SH/SHAY/perl-5.26.1.tar.gz to /home/ec2-user/.plenv/cache/perl-5.26.1.tar.gz. Configuring perl '5.26.1' rm -f config.sh Policy.sh Auto-guessed '5.26.1' patching Configure No patch utility found ABORT
いろいろ調べたら 原因は、patch、gccが入ってなかったらしいです。
yumでをインストール
[ec2-user@ip-10-3-10-53 ~]$ sudo yum install patch [ec2-user@ip-10-3-10-53 ~]$ sudo yum install gcc
無事インストールできた。
perlのsplitで空の末尾を残す場合
my.cnfのパラメータの内容
MySQL5.5
| パラメータ | 内容 |
|---|---|
| basedir | MySQLバイナリのインストールディレクトリ |
| datadir | データ格納先 |
| tmpdir | テンポラリディレクトリ指定 |
| lc-messages-dir | エラーメッセージが配置されているディレクトリ |
| key_buffer_size | MyISAMのインデックスをキャッシュするメモリ上の領域 |
| innodb_buffer_pool_size | InnoDBのデータとインデックスをキャッシュするバッファのサイズ |
| innodb_log_file_size | InnoDBの更新ログを記録するディスク上のファイル |
| innodb_log_buffer_size | ログファイルのためのバッファのサイズ |
| innodb_file_per_table | データファイルをテーブル単位で管理できる |
| innodb_flush_log_at_trx_commit | メモリ上にあるInnoDBバッファプールがディスク上のInnoDBデータファイルにフラッシュされる |
| innodb_flush_method | Linux固有のフラグで、OSのバッファキャッシュの効果を最小化する効果がある |
| innodb_additional_mem_pool_size | InnoDBの内部データなどを保持するための領域 |
| innodb_autoextend_increment | InnoDB システムテーブルが容量いっぱいになったら、拡張するが、拡張する大きさを決める |
| innodb_lock_wait_timeout | InnoDB transactionが row lock がかかった時に、待つ時間 |
| slow-query-log | スロークエリ出力 |
| slow-query-log-file | スロークエリ出力場所 |
| long_query_time | 指定した秒数以上かかったクエリを記録 |
| max_connections | 同時接続数 |
| table_open_cache | 頻繁なアクセスに対して使うデータキャッシュ |
| table_definition_cache | 定義キャッシュに保存できるテーブル定義数 |
| read_rnd_buffer_size | キーを使用したソートで読み込まれた行がキャッシュされるバッファのサイズ |
| sort_buffer_size | ソート 処理に利用される |
| read_buffer_size | index無しの全体スキャン時に利用される |
| max_allowed_packet | MySQL でクライアントからサーバに送ることができるパケットの値を設定 最大16M |
| query_cache_size | クエリキャッシュを使用する |
サブネットマスク計算 Net::Netmaskモジュール使ってみた
use utf8;
use strict;
use warnings;
use NetAddr::IP;
use Net::Netmask;
my $block = new Net::Netmask ('192.168.56.1/27');
print "block:$block"."\n";
#ネットワークアドレス
print "base:".$block->base()."\n";
#サブネットマスク
print "mask:".$block->mask()."\n";
#ホストマスク
print "hostmask:".$block->hostmask()."\n";
#ビットの数
print "bits:".$block->bits()."\n";
#サイズ取得
print "size:".$block->size()."\n";
print "maxblock:".$block->maxblock()."\n";
#ブロードキャストアドレス
print "broadcast:".$block->broadcast()."\n";
print "next:".$block->next()."\n";
print "first:".$block->first()."\n";
#IPアドレスの範囲を取得 ネットワークアドレス、ブロードキャストアドレス含む
for my $ip ($block->enumerate) {
print "$ip\n";
}
実行結果
block:192.168.56.0/27 base:192.168.56.0 mask:255.255.255.224 hostmask:0.0.0.31 bits:27 size:32 maxblock:21 broadcast:192.168.56.31 next:192.168.56.32 first:192.168.56.0 192.168.56.0 192.168.56.1 192.168.56.2 192.168.56.3 192.168.56.4 192.168.56.5 192.168.56.6 192.168.56.7 192.168.56.8 192.168.56.9 192.168.56.10 192.168.56.11 192.168.56.12 192.168.56.13 192.168.56.14 192.168.56.15 192.168.56.16 192.168.56.17 192.168.56.18 192.168.56.19 192.168.56.20 192.168.56.21 192.168.56.22 192.168.56.23 192.168.56.24 192.168.56.25 192.168.56.26 192.168.56.27 192.168.56.28 192.168.56.29 192.168.56.30 192.168.56.31