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