dos2unixコマンドで改行コード変換

概要

Linuxサーバーにスクリプトをアップロードしたところ改行コードが違っておりスクリプトが正常に動作しなかった。
dos2unixコマンドを使って改行コードを変換した時のメモ

改行コード確認

cat -e test.pl

で確認可能

改行コード
行末 改行コード OS
^M+$ CR+LF DOS / Windows
$ LF Unix系(MacOSX含)


表示例

[tsunokawa@test tmp]$ cat -e test.pl
#!/usr/bin/env perl^M$
^M$
use strict;^M$
use warnings;^M$
use feature 'say';^M$
^M$
say "hoge";^M$
^M$
[tsunokawa@test tmp]$ 

CR+LFになっている。

インストール

改行コード変換のためdos2unixコマンドを使う。

yum install dos2unix.x86_64


改行コード変換

CR+LF(^M+$) → LF($)

dos2unix test.pl


表示例

[tsunokawa@test tmp]$ dos2unix test.pl
dos2unix: converting file test.pl to Unix format ...
[tsunokawa@test tmp]$


確認

[tsunokawa@test tmp]$ cat -e test.pl
#!/usr/bin/env perl$
$
use strict;$
use warnings;$
use feature 'say';$
$
say "hoge";$
$
[tsunokawa@test tmp]$

LFになった。

Redisのslowlog設定

概要

Redisのスローログ出力方法と設定のメモ

slowlogを5件出力する

SLOWLOG GET 5


表示例

[tsunokawa@test ~]$ redis-cli
127.0.0.1:6379> SLOWLOG GET 5
 1) 1) (integer) 18284101
    2) (integer) 1471441352
    3) (integer) 56080
    4) 1) "GET"
       2) "testkey1"
 2) 1) (integer) 18284100
    2) (integer) 1471441352
    3) (integer) 55133
    4) 1) "GET"
       2) "testkey1"
 3) 1) (integer) 18284099
    2) (integer) 1471441352
    3) (integer) 43424
    4) 1) "GET"
       2) "testkey1"
 4) 1) (integer) 18284098
    2) (integer) 1471441352
    3) (integer) 63600
    4) 1) "GET"
       2) "testkey1"
 5) 1) (integer) 18284097
    2) (integer) 1471441351
    3) (integer) 84269
    4) 1) "GET"
       2) "testkey1"
127.0.0.1:6379> 


ログの見方

 1) 1) (integer) 18284101
    2) (integer) 1471441352
    3) (integer) 56080
    4) 1) "GET"
       2) "testkey1"

上から

  • 自動採番されたID
  • コマンド実行時のUnixタイムスタンプ
  • コマンド実行にかかった時間(マイクロ秒)
  • コマンドとそのパラメータ


スローログ設定(デフォルト)

/etc/redis.conf

slowlog-log-slower-than 10000
slowlog-max-len 128

10000マイクロ秒以上かかったクエリを128件保持するようになっている。

スローログ設定確認と変更(オンライン)

設定確認
127.0.0.1:6379> CONFIG GET slowlog-log-slower-than
1) "slowlog-log-slower-than"
2) "10000"
127.0.0.1:6379> 


127.0.0.1:6379> CONFIG GET slowlog-max-len
1) "slowlog-max-len"
2) "128"
127.0.0.1:6379> 


設定変更
127.0.0.1:6379> CONFIG SET slowlog-log-slower-than 0
OK
127.0.0.1:6379> 

10000マイクロ秒から0マイクロ秒へ変更
これで全てのクエリがスローログとして保持される。

127.0.0.1:6379> CONFIG SET slowlog-max-len 256
OK
127.0.0.1:6379> 

スローログ保持件数を128件から256件へ変更

スローログ保持件数確認

スローログが何件保持されているかは

SLOWLOG LEN

で確認可能


表示例

127.0.0.1:6379> SLOWLOG LEN
(integer) 128
127.0.0.1:6379> 


スローログのリセット

保持しているスローログを削除する。

SLOWLOG RESET


表示例

127.0.0.1:6379> SLOWLOG RESET
OK
127.0.0.1:6379> 


Redisのログレベルをオンラインで変更する

概要

Redis稼働中に設定ファイルの書き換え&デーモンの再起動をすることなくログレベルを変更して詳細ログを吐き出す手順です。

現在のログレベル設定を確認

redis-cliで以下を実行することで設定を確認出来ます。

CONFIG GET loglevel


表示例
[tsunokawa@test ~]$ redis-cli 
127.0.0.1:6379> CONFIG GET loglevel
1) "loglevel"
2) "warning"
127.0.0.1:6379> 

現在ログレベルがwarningになっていることが確認出来ます。

ログレベルを変更

CONFIG SETを使ってログレベルをdebugに変更します。

CONFIG SET loglevel "debug"


表示例
[tsunokawa@test ~]$ redis-cli 
127.0.0.1:6379> CONFIG SET loglevel "debug"
OK
127.0.0.1:6379>


再度ログレベルの設定を確認

127.0.0.1:6379> CONFIG GET loglevel
1) "loglevel"
2) "debug"
127.0.0.1:6379> 

ログレベルがdebugに変更になりました。
これでログファイルにdebugレベルのログが出力されます。

その他の設定

ログレベル以外にも同様の手順でオンラインで設定の変更が可能です。
以下で設定全項目名を確認することが出来ます。

CONFIG GET *


表示例
127.0.0.1:6379> CONFIG GET *
  1) "dbfilename"
  2) "dump.rdb"
  3) "requirepass"
  4) ""
  5) "masterauth"
  6) ""
  7) "unixsocket"
  8) ""
  9) "logfile"
 10) "/var/log/redis/redis.log"
 11) "pidfile"
 12) "/var/run/redis/redis.pid"
(略)