自分でつかったコマンドのログを取る

自分でサーバーでなんのコマンドを使ったかログを取りたいときのメモ。

 コード

#! /bin/bash

mkdir -p ~/Log 2>/dev/null
script -f ~/Log/$(date +%Y%m%d_%H%M%S)_$(whoami).log

自分のホームディレクトリに Log というディレクトリを作って, その中に日付をいれてコマンドのログを保存する形。

.bash_profile の中に書いておくと便利.

CentOS 7 での CUI と GUI の切り替え

CentOS 7 で GUICUI を切り替える際のメモ

inittab の確認

linux の初期起動時の設定ファイルである inittab を確認します.

cat /etc/inittab

すると次のように書かれていました.

f:id:shsm385:20180831111321p:plain

初期設定を inittab に書き込まないで systemd を使うようになりましたとのことです.
なので書かれているとおりにしていけば設定を切り替えられるようです.

現在の設定の確認

systemctl get-default

現在の設定を確認できます. multi-user.target だと CUI の設定がデフォルトになっていて
graphical.target だと GUI の設定がデフォルトになっています.

CUI への切り替え

 systemctl isolate multi-user.target # 一時的に変更
 systemctl set-default multi-user.target # 永続的に変更

上記のコマンドで CUI に変更できます.

GUI への切り替え

 systemctl isolate graphical.target # 一時的に変更
 systemctl set-default graphical.target # 永続的に変更

上記のコマンドで GUI に変更できます.

VirtualBox 上の CentOS 7 で画面のリサイズを有効にする

CentOS 7 を VirtualBox で導入した際に画面のリサイズがされなかったことと CentOS から ホストOS の画面に移行する際にいちいち右の Ctrl キーを押さないといけないのが面倒だったのでリサイズとマウス移動を有効にした際のメモ

VBoxGuestAdditionsiso を有効にする

 VirtualBox内のCentOSを動かして, メニューバーにある [デバイス] の中の [Guest Additions CD イメージの挿入...] を選択して [イメージを挿入] をクリックする.

以下のような選択肢がでてくるので許可するを選択する.

f:id:shsm385:20180814101248p:plain

その後にコンソールが開いてスクリプトが動くのでそれが終わったら一度シャットダウンします. 

設定の変更

再びVMを立ち上げる前に設定を確認します.

[設定] の中の [一般] にある [高度] の設定を確認します.

クリップボードの共有とドラッグ&ドロップが双方向になっていることを確認してください.

f:id:shsm385:20180814101831p:plain

その後に起動したら設定が有効になっているはずです.

エラーが出た時

次のようなエラーがでてイメージが挿入できない時には次のように対処します.

f:id:shsm385:20180814102208p:plain

仮想マシンを一旦シャットダウンする.

[設定] の中にある [ストレージ] の中の VBoxGuestAdditons.iso というディスクを仮想マシンから削除します.

その後仮想マシンを起動すれば設定できるようになるはずです.

 

【Windows10】 VirtualBox で CentOS 7.5 をインストール

Windows環境でVirtual Boxを使って Cent OS をインストールする必要があったのでその時のメモ

環境

VirtualBox : 5.2.16 r123759

・ホストOS : windows10

・ゲストOS : CentOS 7.5.1804

セットアップ

公式サイトからディスクイメージをDLしてきます。

 

f:id:shsm385:20180809175605p:plain

 

「Get CentOS Now」をクリックすると次のようにディスクイメージの選択画面がでてきます。

 

f:id:shsm385:20180809175800p:plain

 

3種類のISOがありますが, 特に理由がなければ「DVD ISO」を選択します.

3種類の違いは次のようになっています.

DVD ISO

GUIインストーラーでインストールできる全パッケージが最初から含まれているディスクイメージ.

Everything ISO

CentOS で利用できる全パッケージが最初から含まれているディスクイメージ.

GUIインストーラーでインストールできるもの以外のパッケージもすべて入っている.

Minimal ISO

必要最小限のパッケージだけが含まれているディスクイメージ. 

GUI 等も yum で自分で設定する感じの内容

 

どの ISO をダウンロードするか選んだらミラーサイトを含むダウンロードサイトがたくさんでてくるので好きなところからディスクイメージをダウンロードする.

 

f:id:shsm385:20180809181155p:plain

仮想マシンを作成する

VirtualBox を起動して新規の部分をクリックします. 

 

f:id:shsm385:20180809182546p:plain

 

仮想マシンの名前やメモリサイズを選択する画面が出てきます.

それぞれを自分が作りたい形で入力していきます.

 

f:id:shsm385:20180809182734p:plain

名前とオペレーションシステム

今回は名前を CentOS としました. 名前に OS 名を入れると自動でタイプとバージョンが選択されます.

名前を自由にした場合にはタイプを Linux , バージョンを Red Hat (64-bit) を選択しましょう.

モリーサイズ

今回はデフォルトの 1024MB を選択しました.

ハードディスク

 仮想ハードディスクを作成するを選択します.

(注意) 64bit が選択できない時

Windows の場合には, バージョンで 64bit を選択できない場合があります. 

その場合には BIOS の設定を変更して 64bit を選択できるようにする必要があります. 

BIOS の設定画面の出し方はどこの会社の PC を使っているかで変わりますが, 

PCを再起動して起動時に F2 キーや F10 キーを押すことで BIOS の設定画面を開けます.

 

f:id:shsm385:20180810144021p:plain

 

ThinkPadの場合には F2 キーを押すことで HP 社の PC の場合には F10 キーを押すことで設定画面を開けました.

設定の中の 「Security」にある「Virtualization」 の中にあるIntel Virtualization Technology」を「Disable」から「Enable」に変更して保存し, Windows を起動することで 64bit を選択できるようになります.

PC によっては「Advanced」にある「CPU Configuration」の中に「Intel Virtualization Technology」があることもあるそうです.

 

作成するボタンをクリックしたあと引き続き設定を行います.

 

f:id:shsm385:20180810145507p:plain

ファイルの場所

今回はデフォルトで設定します.

ファイルサイズ

ストレージのことです. 今回はデフォルトで設定します.

ハードディスクのファイルタイプ

VDI を選択します.

物理ハードディスクにあるストレージ

可変サイズを選択します.

 

ここまで設定して「作成」をクリックすることで仮想マシンの作成は終わりになります. 

仮想マシンの設定

設定(S) をクリックします.

 

f:id:shsm385:20180810150104p:plain

 

「一般」の中の「高度(A)」を選択して,

クリップボードの共有」と「ドラッグ&ドロップ」を双方向に変更します.

 

f:id:shsm385:20180810150509p:plain

 

次に, 「ストレージ」の中の「空」を選択します. 

その後に「属性」の中の「光学ドライブ」の右にあるディスクのアイコンをクリックします.

 

f:id:shsm385:20180810151246p:plain

 

「仮想光学ディスクファイル選択」を選択して, CentOS のファイルを選択して「開く」をクリックします。

最後に「OK」をクリックして設定を保存します.

CentOS のインストール

作成した仮想マシンを選択し「起動」を押すか選択した仮想マシンをダブルクリックします.

 

f:id:shsm385:20180810152443p:plain

 

CentoOS のインストーラが起動するので「Install CentOS 7」を選択してエンターキーを押します.

インストールが終了すると, 言語選択画面が表示されるので, 「日本語」を選択します.

 

f:id:shsm385:20180810152737p:plain

 

「続行」をクリックするとインストールの概要の画面に映るので「インストール先」を選択します.

 

f:id:shsm385:20180810153424p:plain

 

ディスクのアイコンにチェックが入っていることを確認して「完了」をクリックします.

 

f:id:shsm385:20180810153152p:plain

 

キーボードが US の人は「キーボード(K)」から設定を行います.

このままインストールを行うをコンソールだけの画面になってしまうので,

GUI 等で動作を行いたい場合には「ソフトウェアの選択(S)」をクリックします.

 

f:id:shsm385:20180810154150p:plain

 

今回は最初にGUIを使いたかったので設定を行います. (もちろん設定あとにCUI画面に切り替えることもできます.)

 

f:id:shsm385:20180810153809p:plain

 

ベース環境

サーバーGUI 使用)を選択します.

選択した環境のアドオン

開発ツールをクリックします.

 

設定を終えたら「完了」をクリックします.

 

f:id:shsm385:20180810154349p:plain

 

「インストール開始」をクリックします.

インストールしている間に「ROOTパスワード(R)」と「ユーザの作成(U)」を行います.

 

f:id:shsm385:20180810154823p:plain

 

「ROOTパスワード(R)」をクリックします.

パスワードを入力して, 「完了」をクリックします.

 

f:id:shsm385:20180810154922p:plain

 

「ユーザの作成(U)」をクリックします.

「フルネーム(F)」, 「ユーザ名(U)」, 「パスワード(P)」を設定して「完了」をクリックします.

 

f:id:shsm385:20180810155021p:plain

 

インストールが完了したら「再起動」をクリックします.

 

f:id:shsm385:20180810155454p:plain

 

初期セットアップ画面に遷移するので「LICENSING」をクリックします.

 

f:id:shsm385:20180810155803p:plain

 

「ライセンス契約に同意します.(A)」にチェックを入れて「完了」をクリックします.

 

f:id:shsm385:20180810155941p:plain

 

画面が初期セットアップの画面にもどるので, 「設定の完了」をクリックします.

あとは手順どおりに行えば CentOS 7 を使用できるようになります.

 

 

 

 

 

 

 

Macbook Pro 13inch 2018 を購入したので性能を評価してみた

使用していたMacbook Air (Mid 2011) をメインPCとして使うのが流石につらくなったので先日アップデートされて性能がアップしたMacbook Pro (2018) を購入しました.

f:id:shsm385:20180808230838p:plain

Geekbench や他のブログさんでもベンチマークされていますが, せっかくなので自分もやってみました.

今回購入したモデル

・CPU : Intel Core i5-8259U 2.3GHz クアッドコア

GPU : Intel Iris Plus Graphics 655

・RAM : 16GB 2,133MHz LPDDR3

SSD : 512GB

・Color : スペースグレイ

・キー配列 : US

GPUとCPUの性能評価

CINEBENCH R15で内蔵GPUとCPUの性能を評価します.

f:id:shsm385:20180808231948p:plain

 

SSDの性能評価

Disk Speed TestでSSDの性能を評価します.

f:id:shsm385:20180808232151p:plain

総合性能

Novabenchで Macbook Pro の総合性能を評価します.

f:id:shsm385:20180808232345p:plain

まとめ

IT Strike さんなどでMacBook Pro の 2016, 2017などのモデルでの性能評価を行っているので, 参考にさせて頂いて比較すると2017年のモデルと比べて

・CPU に関しては約94%向上

SSDに関しては書き込み速度は約31%向上, 読み込み速度は約14%向上

・Totalのスコアとして約91%向上

という結果になりました.

一年で大幅に性能が向上しましたね.

 

<jsp:include>と<jsp:forward>の違い

Tomcat + Serblet + RDBSの開発の際にServletの処理であるinclude とforwardの処理の違いがいまいちわからなかったのでまとめてみた.

include処理について

JSPプログラム中に<jsp:include>があるとタグの中で指定したファイルの処理を実行して, 処理の実行後に再びタグ中に記載されたプログラムに処理を実行します.

forward処理について

<jsp:forward>は指定したファイルに処理を転送すために使用される.

<jsp:forward>タグの前には値を出力する処理はしては行けない. もし行った場合には例外が投げられます. <jsp:include>は指定したファイルの処理が終わると再び指定元に処理が戻るのに対して, <jsp:forward> は指定したファイルに処理が転送され, 再び処理が指定元に戻ることはありません.

実装でinclude処理とforward処理についての違いを確認

includeとforwardに関して処理が指定元に戻るか戻らないかという違いがあるので実際にJSPを書くことで違いを見てみました.

今回は下記のtest.jspを<jsp:forward>と<jsp:include>で処理することで違いをみます.

今回Tomcatの環境等に関しては導入が書いてありませんが, 希望があれば書きます.

<!-- test.jsp -->
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <main style="background-color: blue; color: white;">
    <div>include and forward are reading test.<br>
    以下適当なフォーム</div><br>
    <form name="test" method="get" action="">
      ・好きなエディタ<br>
      <input type="radio" name="button" value="jsp1" checked>
        Vim<br>
        <input type="radio" name="button" value="jsp2">
          emacs<br>
    </form>
  </main>
  </body>
</html>
incluide処理

include処理を行うJSPファイル

<!-- testinclude.jsp -->
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<html>
  <head>
    <title>include test</title>
  </head>
  <body>
    <div>JSP ファイルのincludeを開始.</div>
      <div><jsp:include page="test.jsp"/></div>
    <div>JSP ファイルのincludeを終了.</div>
  </body>
</html>

include処理実行の結果

f:id:shsm385:20180607222812p:plain

forward処理

forward処理を行うJSPファイル

<!-- testforward.jsp -->
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<html>
  <head>
    <title>forward test</title>
  </head>
  <body>
    <div>JSP ファイルのforwardを開始.</div>
      <div><jsp:forward page="test.jsp" /></div>
    <div>JSP ファイルのforwardを終了.</div>
  </body>
</html>

forward処理を行った結果

f:id:shsm385:20180607223150p:plain

forward.jspの結果では処理を行ったjspファイルの中身だけが表示されていることがわかります.

参考にしたページ

Javaの道:JSP(4.<jsp:include>、<jsp:forward>)

UNIX系のパーミッション設定

macLinuxパーミッションの設定方法をなんとなくしかわかっていなかったのでまとめました.

 

パーミッションの確認方法

$ ls -l

lsコマンドのオプションでパーミッションがどんな状態になっているか確認できます.

実際にコマンドを実行してみると下のような感じになります.

drwx------@ 63 user  staff  2016  3 26 13:19 Dropbox
drwxr-xr-x  14 user  staff   448  5 20 13:13 Git
drwx------ 69 user  staff  2208  5  8 22:25 Library

これによりファイルやフォルダに関してのパーミッションが分かります.

パーミッションの見方は次のようになります.

f:id:shsm385:20180521201750p:plain

そのため, 図の例ですとGitというディレクトリはユーザのアクセス権としては読み込み可能, 書き込み可能, 実行可能の権限を持ち, グループからのアクセス権としては読み込み可能, 実行可能を持ち, その他からはアクセス権として読み込み可能と実行可能といった状態になっていることがわかります.

パーミッションの変更

パーミッションの変更はchmodコマンドを使って変更を行います.

コマンド名はchange modeの略です.

変更の仕方は2通りあります.

種別等をしていする方法

次のように行います

# ファイル作成
$ touch sample
# パーミッションの確認
$ ls -l sample
-rw-r--r--  1 user  staff  0  5 21 20:28 sample
# パーミッションの変更
$ chmod u+x,g+wx,o=u sample
$ ls -l sample
-rwxrwxrwx  1 user  staff  0  5 21 20:28 sample

chmod コマンドは chmod モード ファイル名とすることで実行できます.

モードは複数 , で区切って指定できます.

f:id:shsm385:20180521204219p:plain

数字で指定する方法

こちらのほうが使っているかたが多いと思いますが次のようになります.

# パーミッションの確認
$ ls -l sample
-rwxrwxrwx  1 user  staff  0  5 21 20:28 sample
# パーミッションの変更
$ chmod 755 sample
$ ls -l sample
-rwxr-xr-x  1 user  staff  0  5 21 20:28 sample

数字の3桁はそれぞれユーザ, グループ, その他の順で表されます.

・読み込みを4

・書き込みを2

・実行を1

という数字で表し, それぞれ与えたい権限の数字を足したものをモードとして指定してあげます.

なので, 755ならば7ですべての権限を5で読み込みと実行の権限を与えることになります.

 

先輩から効いたのですが, 数字で指定するやり方は割りと古いそうで最近では種別等を指定することが多いみたいです. (数字のほうをよくつかっていたのでびっくり.)

 

もうちょっとブログを書く頻度を上げたい.....