Staging

開発BLOG

よく使うコマンド

よく忘れるのでメモをしておく。

内容はこちらの記事を参考にしている。(Special Thanks!)

qiita.com

メモリ・ディスク

  • 現在のメモリ使用量を確認する

free -m

-t はTotal行の出力 -m はMB単位での出力

  • メモリやCPUの情報だけでなく、スワップやプロセスの情報を出力できる

vmstat

less /proc/meminfo

  • swapサイズをみる

swapon -s

  • 現在の全体ディスク使用量を確認する

df-Th

  • ディスク使用量を確認する

sudo ionice -c 2 -n 7 nice -n 19 du -scm /* | sort -rn

CPU・OS・パッケージ

  • CPU情報・コア数など

less /proc/cpuinfo

  • CPUの使用量

ionice -c 2 -n 7 nice -n 19 top

sar

  • プロセス数を確認

ps auxww

  • 使っているファイルのプロセスを調べる

lsof -p PID

  • OSのバージョンを調べる

cat /etc/redhat-release

  • Kernelバージョンを調べる

uname -a

ネットワーク

ifconfig

ip addr show

  • ルーティングを確認

route

  • ネットワークの経路を調べる

traceroute -n 8.8.8.8

  • mysqlのコネクションを調べる

netstat -ano | grep 3306

iptables -L

アカウント・ログイン周り

  • ログインユーザを確認

w

  • ログインしているユーザ全員にメッセージを送る

wall

  • ユーザー・グループ一覧を表示

getent passwd

  • ユーザ作成

sudo useradd -g hoge -u 600 -d /hoge/user/hogehoge hogehgoe

  • ユーザ削除

sudo userdel hogehoge

  • パスワード設定

passwd hogehoge

Dockerで使うコマンドたち

イメージ一覧

docker images

イメージ詳細確認

docker inspect コンテナ識別子またはイメージ識別子

イメージ検索

docker search

イメージ削除

docker rmi

Docker hubへのログイン

docker login

イメージアップロード

docker push

コンテナ生成

docker create

コンテナ生成・起動

docker run

コンテナ起動

docker start

コンテナ停止

docker stop

コンテナ削除

docker rm

稼働コンテナ一覧

docker ps

コンテナの稼働確認

docker stats

稼働コンテナへの接続

docker attach

稼働コンテナでプロセス実行

docker exec

稼働コンテナのプロセス確認

docker top

稼働コンテナのポート転送確認

docker port

コンテナ内のファイルをコピー

docker cp

コンテナ操作の差分確認

docker diff

Dockerfileからイメージを作成

docker build -t

既存アプリケーションにRuboCopを導入する

RuboCopとは

  • Rubyの静的解析Gem

導入

まずはGemfileに追加

Gemfile gem 'rubocop, require: false'

カレントディレクトリに .rubocop.yml を作成 このファイルにrubocopの設定を書いていく。

ex)

AllCops:
  Exclude:
    - db/schema.rb

修正のサイクル

bundle exec rubocop -R --auto-gen-config

で、.rubocop_todo.yml に直すべき箇所を記載しておく。

それを直し続ける。愚直に…

Anemone

Anemoneとは

Webクローラーフレームワーク

使い方

基本形

require 'anemone'

URL = "https://example.jp"
Anemone.crawl(URL) do |anemone|
  anemone.on_every_page do |page|

      # URLを取得
      puts page.url

  end
end

crawlのオプション

:depth_limit 階層の制限を指定
:delay  アクセス間隔を指定
:user_agent UAを指定
:skip_query_strings trueにするとURLのパラメーターを無視する

Anemone::Coreで使用するメソッド

on_every_page    取得したすべてのページごとに処理を実行
after_crawl クロール後に各ページのデータに処理を実行。
focus_crawl 各ページごとに巡回するリンク先を指定。
on_pages_like   指定された正規表現にマッチするURLを持つページに処理を実行。
skip_links_like 指定された正規表現にマッチするURLを持つページは取得しない。

Anemone::Pageで使用する主なメソッド

url  ページのURLを取得
headers header情報を取得
code    HTTPのレスポンスコード(e.g. 200, 301, 404)を取得
body    HTMLを取得
doc bodyをNokogiriで使用できる形式(Nokogiri::HTML::Document)で取得
links   ページ内の <a> タグのリンクリストを取得(URI::HTTPで取得)

なんで割り算する時に逆数にするの?

小学生の子に算数を教えていたら、タイトルのようなことを聞かれました。

こんな問題でした。

3/8 ÷ 5/7 = ?

これは5/7を逆数にして、それをかけてあげればいいよ〜と教えたのですが、なぜなぜ攻撃をされました。笑

「逆数にすると、1になるよね。それで計算しやすくするの。」

3/8 ÷ 5/7 = 3/8 / 5/7 = 3/8 / 5/7 × 7/5 = 3/8 × 7/5 = 答え

子供「意味わかんなーい」

図とか使うとよかったのかな。

おじさんもっと算数勉強するね。笑

Caching in development

config/environments/development.rb  の中で

config.action_controller.perform_caching = true

ちなみにActiveSupport::Cache の参考になりそうなAPIドキュメントも貼っておこう

RailsDoc - ActiveSupport::Cache

ネットワークコマンド基本

アドレスを調べる

$ifconfig

ホストからIPアドレスを調べる(IPからホスト)

$nslookup

パケットが届いているか確認

$ping

ルート表示

$traceroute

ARPテーブル

$arp -a

特定のポートで通信しているプロセスを調べる

$netstat

ネートワーク楽しもう