WEBアプリ開発 ぷちTips

WEBアプリの開発をやってます。自分が調べててなかなか見つからなかったり苦戦した内容をTips集にできたらなと思います。

Linux/CentOS NTP設定 時刻同期

時刻同期を行うため、ntpの設定を行います。

2ファイル編集します。

あとで戻せるようにオリジナルファイルは残しておきましょう。

 

1.ntp.conf設定
 $ mv -iv /etc/ntp.conf /etc/ntp.conf.org
 $ vi /etc/ntp.conf

 デフォルトの設定がごちゃごちゃ書いてあるので、バックアップとしてだけ残し、新規にconfファイルを作成します。

下記設定を入れればOK。

-------------------
restrict default ignore
restrict 127.0.0.1
restrict ntpsrv1.xxxxx.yyyy nomodify notrap
restrict ntpsrv2.xxxxx.yyyy nomodify notrap

server ntpsrv1.xxxxx.yyyy
server ntpsrv2.xxxxx.yyyy

driftfile /var/lib/ntp/drift
-------------------

〈設定詳細〉

・restrictはアクセス制限の設定です。

・ntpを設定すると誰からでも接続される可能性があるため、セキュリティ観点から全拒否の設定を1行目に入れます。

(設定は上から順に読み込まれる)

・2行目からは許可するIP/ドメインを追加していきます。

ローカルからは全許可し、あとは参照するntpサーバの情報を登録します。

また許可内容としてオプション設定が可能です。

下記くらいがわかれば良いと思われます。

ignore:全拒否します

notrust:アクセス拒否(v4.2の場合です。v4.1では問い合わせ許可の意味だったため、注意が必要。)

nomodify:相手から変更要求があった場合拒否します

notrap:メッセージトラップの拒否

※どうやら同一LAN内ではない、上位のntpサーバであれば登録しなくてもserverの設定だけで良いらしいです。

 私は設定してしまいましたが、、

・serverでは時刻同期するntpサーバを指定します。

複数台(3台以上推奨)指定して下さい。

・ntpした時の時差情報を書き込むファイルを指定します。

ここはデフォルト値で良いと思います。

ドメイン指定する場合はhostsファイルへの追加かDNS設定が必要です。(DNSの話は別記事に記載します。)

 

2.ntpdの設定

$ cp -ipv /etc/sysconfig/ntpd /etc/sysconfig/ntpd.org
$ vi /etc/sysconfig/ntpd

特に設定しなくてももう使えますが、このままだと時刻同期した際に一気に時差を解消してしまうため、サーバ上で動くアプリ、プロセスに悪影響を与える可能性があります。

そのため徐々に同期していく設定としてslewモードにした方が良いようです。(最大 秒間0.5msずつ)

solarisの場合は本ファイルがなく、ntp.confに設定を行います。

-------------------

1)オプションに-xをつける(slewモード)

 オプションをつけなくても128msの差までならslewモードになるが、つけると600秒の差までslewモードになります
2)さらに-gを足すとオフセットが非常に大きくても同期をおこなってくれる

 ※-gはデフォルトでついてます。設定しないと1000秒以内の差の場合だけ自動同期します。それ以上の場合はしてくれなくなります。

-------------------

 

3.ntpdの起動、状況確認

$ /etc/init.d/ntpd start

$ ntpq -p

ntpqコマンドで同期の状態が表示されます。

ntpd起動後しばらくしないと同期されません。

同期されるとドメインの頭に*が付加されます。

offset欄が時差分をmsで表示してます。

 

これで設定完了です。

あとはchkconfigでaddしてあげればサーバ再起動しても自動的に起動します。

Linux/CentOS パケットキャプチャ

通信エラーが発生した時にtcpdumpが使えると助かるのでメモ。
環境構築だったり接続先の追加でなぜか通信がつながらない!となったときに使えると便利だと思います。
使いこなせているわけではないですが・・。

あるある話で、iptableでフィルタしていた事が原因だった場合、dump取ればパケットの確認ができてますので、絞りすぎてた!と気づくことができます。

 

◇基本的なコマンド

$ tcpdump [向き先] [カテゴリ] [条件値]

 1.向き先
  送信先:dst
  送信元:src
 2.カテゴリ
  ポート指定:port
  IP指定:net(追加オプションでmaskとすればIP帯でフィルタできます)
     ex)tcpdump src net 192.168.1.0 mask 255.255.255.0
 3.条件値
  具体的な値(IPとかポート番号とか)を指定してください。
 4.その他
  ほかにも色々オプションがあります。
  orをつければ複数条件指定できます。

 
◇その他オプション
 1.生データの出力(バイナリ出力)
 いろいろ分析したい場合は、-wオプション指定でファイル出力できますので、
 wireshark等でパケットの中身が確認できます。
 $ tcpdump dst port 80 src net 192.168.1.1 -n -w /home/hogehoge/dumpdata_20160130

 2.名前解決されないようにする
 -nオプション指定をしないと勝手に名前解決されてしまい、どのIPか
 よくわからなくなってしまうのでつけます。 

◇コマンド実行例
特定端末からの通信(ポート:80、IP:192.168.1.1)をキャプチャする場合
$ tcpdump dst port 80 src net 192.168.1.1 -n
 

Linux/CentOS dateコマンド 日付フォーマット

dateコマンドで日付フォーマット指定したい事が時々出てきますが、使うたびになんだっけとなり、調べることになるのでメモ。

$  date "+%Y%m%d %H%M%S"
「YYYY/MM/DD hh:mm:ss」となります。
年月日時分秒まで指定したい時に。

$ date "+%w"
曜日が取得できます。
0が日曜で1が月曜、ってな感じで連番で続きます。

Excel小技集①

Excel2010をよく使います。
役に立ってる小技をメモ。

印刷したときにオートシェイプがずれる、切れる

  • オートシェイプ、吹き出しを組み合わせて作って印刷したときにズレる場合
「書式設定」→「プロパティ」で「セルに合わせて移動やサイズ変更をする」

  • オートシェイプの中に書いた文字が印刷したとき切れる
「書式設定」→「テキストボックス」で「テキストに合わせて図形のサイズを調整する」

この二つは相反する関係なので、「テキストに合わせて図形のサイズを調整する」を選択したときは「プロパティ」の値が「セルに合わせて移動するがサイズ変更はしない」に自動で変更になります。

線(コネクタ)をまっすぐ引きたい


  • Shiftキーを押しながら線を引く
結構線ってまっすぐ引けないんですよね。

オートシェイプ、吹き出しを等間隔で配置したい


縦と横でそれぞれあります。
  • 等間隔で配置したいオートシェイプ達を選択し、「書式」タブ→「配置」で「左右中央揃え」または「上下中央揃え」を選択すると等間隔に並びます。

私はクイックアクセスツールバーに入れてAlt+1とかで使ってます。
画面左上にある▼マークから設定でき、Alt+○といった感じでショートカットキーとして使用できます。

それとExcel2010からなくなった「オブジェクトの選択(矢印マークのやつ)」も登録しておくとすぐ使えて便利です。
「ホーム」タブにあります。

Linux/CentOS プロセスの一時停止、再開

プロセスを一時停止/再開できるコマンドがあるんですね。。
フォアグラウンドで動かしているプロセスを一時停止したときはバックグラウンドへ移ります。

バックグラウンドだからと言ってターミナルを切るとプロセスが死んでしまうのでそこも注意。

◇一時停止する
$ kill -s SIGSTOP [プロセスID]

◇再開する
$ kill -s SIGCONT [プロセスID]


Linux/CentOS ディレクトリ毎の容量の確認方法

Linuxで、ディレクトリ毎に容量、ディスク使用量の確認したい時があります。
容量を多く使用しているディレクトリを探す場合とか。

直下のディレクトリ毎のディスク使用量
$ du -shc ./*

または
$ du -hc --max-depth=1

階層を深くする時は後者の数字をいじった方が簡単ですね


Linux/centOS ノンパス設定

いつもやるとき忘れてしまうのでメモ。

 
サーバA(ユーザーxxxx)からサーバB(ユーザーyyyy)へノンパス設定をする場合。
 
  1. サーバAで公開鍵を作成
    xxxxユーザーでログイン
    $ ssh-keygen
    パスフレーズはナシで公開鍵を作成

    $ cat ~.ssh/id_rsa.pub
    サーバAの公開鍵をコピーする

  2. 公開鍵をサーバBに登録
    yyyyユーザーでログイン
    $ mkdir ~/.ssh/
    $ cd .ssh/
    $ vi authorized_keys
    初めて設定する場合はディレクトリ作成から。
    authorized_keysにサーバAの公開鍵を登録する

    $ chmod 600 ~.ssh/authorized_keys
    $ chmod 700 .ssh/
    自ユーザのみ権限を与えておく(そうしないとうまくいかないときがあるらしい)

  3. 一度サーバAからサーバBへssh接続しておく
    ssh サーバA サーバB
    一度もssh接続してないと、接続先のサーバ情報(フィンガープリント)の登録確認が行われるため、ノンパスで定期的に処理を行うようなツールを仕込んだときに、この登録確認で詰まってしまう。。
    ノンパス設定したのに動かない、止まってしまうってなったら、sshしてみよう。