2019年3月10日日曜日

pythonでグラフ2

pythonでグラフ1 (別ページ)
 1.python install
 2.python venv (Virtual Environments)の設定
 3.グラフでつかう matplotlibの日本語表示設定

pythonでグラフ2
 4.別途、手動で気象庁のcsvデータダウンロード
 5,悪運で動いたスクリプト


4.別途、手動で気象庁のcsvデータダウンロード
気象庁の[過去の気象データ・ダウンロード] https://www.data.jma.go.jp/risk/obsdl/index.php から、ダウンロードしたい地点、項目(今回、"時別値:気温")、期間を選んで[CSVファイルをダウンロード]する。

留意:
・1日の境界規定とcsvの記録が違うので、余裕を持った期間長でダウンロードして、後でcalc整形。気象観測統計の解説 https://www.data.jma.go.jp/obd/stats/data/kaisetu/shishin/shishin_all.pdf の「2.3.1 合計値」では「1時から24時の24回・・・」だけど、ダウンロードしたcsvでは[00:00:00から23:00:00]が1日になっている。
・1990年から毎正時観測されているが、1989年では 3時間毎のデーターしか無い。古くなれば資料数が減っていく。
・ダウンロードしたcsvは、shift-jis形式。通常の file コマンドだと、'data.csv: Non-ISO extended-ASCII text'。file-kanjiパッケージの漢字コードを調べる file2 コマンドだと、$ file2 data.csv 出力'data.csv:   SJIS text'。LibreOffice calcでも開くとき'文字エンコーディング: 日本語 (Shift-JIS)'と認識。
・1990年2月と2018年2月の日数をpython 対話モードで見ると、
>>> import calendar
>>> calendar.monthrange(1990,2)
(3, 28) ← 月の初日が(0月,1火,2水)3番目の木曜日で始まる28日間
>>> print(calendar.month(2018, 2))
   February 2018
Mo Tu We Th Fr Sa Su
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28

>>> quit()
どちらも、同じ28日。

ということで、
1990年分(1990-01-01 00:00:00 から1990-12-31 23:00:00)を1990data.csv、2018年分を2018data.csvとして /home/$USER/venv/test/data/ にセーブ。

1990data.csv



5,悪運で動いたスクリプト

温度データは、さらにtestにdataディレクトリを作って 1990data.csv, 2018data.csvに置いている。
/home/$USER/venv/test/data/1990data.csv
/home/$USER/venv/test/data/2018data.csv

ソースは venvの下のtestディレクトリに plot_test.pyとした。
/home/$USER/venv/test/plot_test.py

# coding: utf-8           ← 日本語通すため DebianはLANG=ja_JP.UTF-8
import pandas as pd    ← csvに便利なライブラリ
import matplotlib.pyplot as plt  ← グラフ書くためのライブラリ
# matplotlib.use('Agg')          ← pngファイル出力savefig()に使う。ここではコメントアウト

# 1990年のcsvをshift-jisを読み込んで、いらない行を消して、文字型を日付型と小数点型に設定しなおす
f1 = pd.read_csv("data/1990data.csv", encoding="SHIFT-JIS", header=None, names=["1990yr", "1990tempe", "tr1", "tr2"])
df1 = f1.drop(range(0,5)).reset_index(drop=True)

df1['1990yr'] = pd.to_datetime(df1['1990yr'])
df1['1990tempe'] = df1['1990tempe'].astype(float)

# 2018年のcsvの処理。上と同じ
f2 = pd.read_csv("data/2018data.csv", encoding="SHIFT-JIS", header=None, names=["2018yr", "2018tempe", "tr1", "tr2"])
df2 = f2.drop(range(0,5)).reset_index(drop=True)

df2['2018yr'] = pd.to_datetime(df2['2018yr'])
df2['2018tempe'] = df2['2018tempe'].astype(float)

# 月毎に温度を合計
df1_new = df1.groupby(df1['1990yr'].dt.month).sum()
df2_new = df2.groupby(df2['2018yr'].dt.month).sum()

# 1990年に2018年をくっつける
df = df1_new.join(df2_new)

# print(df)    ← 一旦、状況を見た

# グラフ項目名など。後はデフォルトで棒グラフを設定
df.plot.bar()
plt.legend()
plt.title('某地点の毎時温度を月別で合算')
plt.xlabel("月")
plt.ylabel("℃", rotation=0)  # y軸の"℃"が下向きにならないように
plt.xticks(rotation=0)        # x軸の月目盛りが下を向かないように
plt.grid(True)

# グラフ表示
plt.show()

# plt.savefig("bar.png")  ← pngで出力。showとsavefig両方するにはバックグランド処理が必要?
# ------- end

実行前に、venv環境で matplotlib が入っているかどうか見てみる。

(venv) :~/venv$ pip list  ← $ pip show matplotlib の方が直接的
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
cycler (0.10.0)
kiwisolver (1.0.1)
matplotlib (3.0.3)
numpy (1.16.2)
pandas (0.24.1)
pip (9.0.1)
pkg-resources (0.0.0)
pyparsing (2.3.1)
python-dateutil (2.8.0)
pytz (2018.9)
setuptools (32.3.1)
six (1.12.0)

なかったら
(venv) :~/venv$ pip install matplotlib
....
プログラム実行
(venv) :~/venv/test$ python plot_test.py

ウインドが開いて、グラフが表示される。ウィンドを閉じると、(venv)にプロンプトが戻ってくる。





以上、Do素人のメモ

小数点がついた途端面倒〜!
追加:
s1 = round(df['1990tempe'].sum(), 2)
s2 = round(df['2018tempe'].sum(), 2)
text1 = '1990 total : ' + format(s1)
text2 = '2018 total : ' + format(s2)
と
plt.text(0, 22000, text1, fontsize=10)
plt.text(0, 21000, text2, fontsize=10)
を追加して




2019年3月9日土曜日

pythonでグラフ1

目標:
手作業で、気象庁のデータ( https://www.data.jma.go.jp/risk/obsdl/index.php )から 1990, 2018年の毎時温度をでダウンロードして、各月で合算してグラフにする・・・なんの意味もないデス。
手作業でcalcちまちまやっても30分あれば済むことを、Do素人が、初pythonで初グラフ。

結果:

環境:
OS : Debian GNU/Linux Stretch, KDE, Python3.5

作業:
pythonでグラフ1
 1.python install
 2.python venv (Virtual Environments)の設定
 3.グラフでつかう matplotlibの日本語表示設定

pythonでグラフ2 別ページ
 4.別途、手動で気象庁のcsvデータダウンロード
 5,悪運で動いたスクリプト

1.pythonのインストール
pythonバージョン2系はディフォルトで入っている。
python3系で試したいので、パッケージ名 python3.5 , python3.5-venv, python-pip とその依存パッケージをインストール。
(後に使用する python3-matplotlib, python3-pandas などのdebパッケージはここではインストールせず、仮想環境のvenvで pip install した。)

2.venv の設定
設定は、ディレクト以下に作られる。必要なファイルコピー、その後パス通しをやってるみたい。ここでは安易に "venv"というディレクトリ名にした(任意で、py_venvでもtestPythonでもなんでもいい)。/home/$USER/に置き、python3を使う設定とした。(以下、ユーザー名$USER, プロンプト表示は各環境による)。
ターミナルを開いて、
$ cd
$ pwd /home/$USER
$ python3 -m venv                   ← ここで ディレクトリ venvも作られる。

次に 仮想環境を試してみる
$ cd venv
$ source bin/activate             ← 仮想環境の機能開始
(venv) :~/venv$ python -V    ← プロンプト頭に (venv)と出る。パイソンのバージョン
Python 3.5.3                         ← python3 -V としてないのに、ちゃんとバージョン3.5
(venv) :~/venv/test$ pip3  ← この環境では pip3も pipも同じ。
Usage: 
  pip [options]
Commands:
  install        Install packages.
  ... (省略)
(venv) :~/venv$ pip install pandas  ← 先で使うpandasというライブラリもインストール
Collecting pandas
  Using cached https:/...
  ... (省略)
(venv) :~/venv$ deactivate          ← 仮想環境の機能を止める

結局、venv環境でpython3を使うには、venvディレクトリで

$ cd venvディレクトリ
$ source bin/activate
・・・
$ deactivate

・・・という流れ。venv を使わなくなったら、ディレクトリごと削除。

 [pip のメモ]
 pipのバージョンは?
 $ pip --version
 pip でパッケージは何入れた?
 $ pip freeze
 pythonのバージョン何にした?
 $ python --version
 Python 3.5.3
 Debian stretchの venvには PySide2もインストール簡単
 $ pip install PySide2

3.グラフ作成でつかうmatplotlibの日本語表示の設定
現状は、
$ source bin/activate
(venv) :~/venv$ python                 ← 対話モード(インタラクティブモード)
Python 3.5.3 (default, Sep 27 2018, 17:25:39)
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib as mpl
>>> print(mpl.rcParams['font.family'])
['sans-serif']                         ← sans-serif だけ
>>> print(mpl.rcParams['font.sans-serif'])
['DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Sef', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avantarde', 'sans-serif']
>>> quit()                             ← 対話モード終了は CTRL+D か quit()
(venv) :~/venv$ deactivate              ← venv環境終了


matplotlibは ttfフォント(TrueType フォント)とotfフォント(OpenType)に対応。
以下は Takaoフォント(TakaoGothic, TakaoPGothic, TakaoMincho, TakaoPMincho)の利用で説明。

$ apt search takao
出力に[インストール済み]表記が無い場合、この出力を参考にパッケージをインストール。
(DebianにはデフォルトではTakaoフォントは入っていない。)
$ sudo apt install fonts-takao

インストールの確認を再びpythonで行ってみる。
$ source bin/activate
(venv) :~/venv$ python                 ← 対話モード(インタラクティブモード)
Python 3.5.3 (default, Sep 27 2018, 17:25:39)
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib.font_manager as fm
>>> fm.findSystemFonts()

この出力を mpl_font.txtなんかにコピペしてやる (改行無いのでエラーでるかも)。
見やすいように、普通のターミナルで整形してソート。
$ cat mpl_font.txt | tr ',' '\n' | sort > font.txt
$ grep Takao font.txt
 '/usr/share/fonts/truetype/takao-gothic/TakaoGothic.ttf'
 '/usr/share/fonts/truetype/takao-gothic/TakaoPGothic.ttf'
 '/usr/share/fonts/truetype/takao-mincho/TakaoMincho.ttf'
 '/usr/share/fonts/truetype/takao-mincho/TakaoPMincho.ttf'
拡張子を抜いたファイル名 TakaoGothic, TakaoPGothic, TakaoMincho, TakaoPMinchoは、matplotlibの設定ファイル matplotlibrc で使う。

venv環境で使うフォントなので、venv環境の対話モードで matplotlibrcの場所を聞く。
>>> import matplotlib as mpl
>>> mpl.matplotlib_fname()
'/home/$USER/python venv/lib/python3.5/site-packages/matplotlib/mpl-data/matplotlibrc'
設定ファイルの場所がわかったので、quit()してdeacivate

matplotlib を開いてみると、Debianでは行頭が全部'#'でコメントアウト。
"FONT"で検索していくと"#### FONT"以下が見つかる。
195行 # font.family          : sans-serif
206行 # font.serif            : DejaVu Serif, Bitstream Vera Serif, ...
207行 # font.sans-serif    : DejaVu Sans, Bitstream Vera Sans, ,,,

この3行の# を消して、206行の207行のフォントリストの最初にTakaoPMincho,TakaoPGothic,を書き込み保存。
font.family          : sans-serif
font.serif             : TakaoPMincho, DejaVu Serif, Bitstream Vera Serif, ... ←この行はいじらなくてもいいかも
font.sans-serif   :: TakaoPGothic, DejaVu Sans, Bitstream Vera Sans, ...

一旦、フォントキャッシュを消す (すぐ再生されるので気にしない)。
$ rm -r ~/.cache/matplotlib

再度(venv)で確認
(venv) :~/venv$ python                 ← 対話モード(インタラクティブモード)
Python 3.5.3 (default, Sep 27 2018, 17:25:39)
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib as mpl
>>> print(mpl.rcParams['font.family'])
['sans-serif']
>>> print(mpl.rcParams['font.sans-serif'])
['TakaoPGothic', 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Sef', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avantarde', 'sans-serif']
TakaoPGothicを認識

注意) python venv環境の削除や、アップデートの度に matplotlibrcは上書きされてデフォルトに戻るので、matplotlibrcは再設定が必要。

以上で matplotlibの日本語設定終了。

DO素人のメモ

2019年3月1日金曜日

Kate のメモ

Linux上のディスク環境KDE用のエディター Kate : KDE advanced text editor の設定。
環境 Debian Stretch   $ kf5-config --version Qt: 5.7.1 KDE Frameworks: 5.28.0 kf5-config: 1.0   $ kate --version kate 16.08.3 
・ 拡張子によって Kateが開くようにするには、KDEの設定を使う。
例えば、python慣例の".py"なら、
KDEのシステム設定→[個人設定:アプリケーション]→[ファイルの関連付け]で "python"を入力検索。[既知のタイプ : text→x-python]をクリックして、右タブに現れる[ファイル名パターン]を確認、[アプリケーションの優先順位]で Kateが一番上に来るように [^ 上へ移動(U)] をクリックして調整→適用。


・Kateからターミナルを立ち上げる 
KDE用の端末エミュレーター Konsoleが立ち上がる。

Kateの[設定]→[Kateを設定]→[アプリケーション : プラグイン]→[ターミナルツールビュー]にチェックを入れて[OK]。Kateの下に[ターミナル]のアイコンが出る。

Kateで開いたディレクトリで Konsoleを立ち上げるには、kateの[設定]→[Kateを設定]→[アプリケーション : ターミナル]→[可能なときは自動的にターミナルを現在の文書と同期する (U)]をチェック


以上、素人のメモ

2019年1月29日火曜日

USB外付けハードディスクのマウント Debian

接続したら、外付けUSBハードディスクの所有者が rootになって書き込みできない。

結論:
接続したまま
$ sudo chown -R user:user /media/user/ラベル名 or UUID

抜き差し後も、再起動後も userで読み書き可能になった。
-R ディレクトリごと
user:user 所有者:グループ

前提:
OS: Debian GNU/Linux 9.7 (stretch)
Desktop : KDE Plasma version 5.8.6
USB ハードディスク : UUID (Universally Unique Identifier)による機器の指定が面倒なので、ext4にフォーマット時にラベル指定 (例 ExDisk)。

原因(曖昧):
初めて該当外付けハードディスクを繋いだとき、フォーマットとディスク検査をやるためにroot状態だったからなのか、udisks2がルートでスクリプトを作ってしまった...とか?

関連:
udisks2について
・Debian 8 (jessie)以降、外部接続のメディアは udisks2というサービス(D-Bus, udisksd)によって自動認識される。
・(多分) 接続をudisksdが検知して D-Busを使って動的に /media/user/下にLabel名 or UUIDで適切にマウントポイントを作る。
・KDEでUSBにメディアを接続したときアンダーバー(パネル)に現れる「デバイスの通知」や、クリックでのマウント/アンマウントはこのサービスを利用している。
・KDEシステム設定→ ハードウェア : Removable Strageも udisks2の設定。

・udisks2のサービス確認。
$ ps aux | grep udisks
/usr/lib/udisks2/udisksd の表示がでれば、サービスが動いている。

udisks2が動いていれば
例)
$ udisksctl status
MODEL                     REVISION  SERIAL               DEVICE
--------------------------------------------------------------------------
WDC WD10EZRX-00A8LB0      01.01A01  WD-WCC1U1234567      sda   
WDC WD10EARS-00Y5B1       80.00A80  WD-....
...
BUFFALO External HDD      0000      00123456789999D      sdc
...接続のみで、まだマウントしてない BUFFALO...も表示される。

・udisksctl の使用例
マウントする
$ udisksctl mount -b /dev/sdc1
Mounted /dev/sdc1 at /media/user/ExDisk
-b ブロックデバイス

アンマウント
$ udisksctl unmount -b /dev/sdc1

状態確認
$ udisksctl status


・systemctl を使って udisks2をコントロール
サービスの停止
# systemctl stop udisks2.service

停止の確認
# systemctl status udisks2

サービス開始
# systemctl start udisks2
サービス再起動
# systemctl restart udisks2

udisks2はディフォルトでboot時に自動的に起動する。起動サービスから削除して無効化
# systemctl disable udisks2

マニュアル起動も阻害
# systemctl mask udisks2
maskの確認
# systemctl is-enabled udisks2
masked (とのみ表示)
マスクの解除
# systemctl unmask udisks2
無効化の確認
# systemctl is-enabled udisks2
再有効化
# systemctl reenable udisks2

systemctlによるudisks2の確認
# systemctl status udisks2
# systemctl show udisks2

以上素人のメモ

2019年1月14日月曜日

vnStat vnStati

(Debian GNU/Linux 9 Stretch, vnstat バージョン 1.15 にて)

概要:
何メガバイト使ったんだろ〜という…ネットワーク通信量がわかるコマンドライン。
・synaptic, discover, apt などでインストール。
・vnstatはテキスト形式で表示。
  例) $ vnstat -d
      -d : 日付ごとの通信量


・vnstati は png, gif, jpg, bmp, tiff...形式で画像出力。
  例) $ vnstati --locale C -i enp0s32ff -d -o ./test.gif      ←enp0s32ffは任意
環境が LANG=ja_JP.UTF-8だと、vnstatiは、「年月日」を空白にして出力してしまうので、'--locale C' オプション。Localeの指定は、/etc/vnstat.conf でもできる (デフォルト Locale="-" システムロケール)。
test.gif
Debian 9 (Stretch)以降、ネットワークインターフェイス(NIC)の命名方式が変更され、eht0がデフォルトではなくなった。ens0やenp1s1、wlp3s0...のように各PCで表示が異なる(en - ethernet, sl - serial line IP slip, wl - wlan, ww - wwan)。
 $ sudo dmesg | grep eth0 すると"...renamed from eth0"とでる。
 例) インターフェイス名をさがす。
 $ ip a
 $ ls /sys/class/net/
 $ netstat -i
 $ ip link show (= ip l)
 $ nmcli device show  
vnstat / vnstatiのデフォルトは eth0。/etc/vnstat.confの # default interface Interface "eth0" を書き換えるとインターフェイス指定の -i enp0s3... オプションがいらない (要root)。
・ログファイル /var/lib/vnstat/[enp0s32ff | eth0 ...]の削除
 $ sudo vnstat -i enp0s32ff --force --delete
 Database for interface "enp0s32ff" deleted.
 The interface will no longer be monitored. Use --create
 if monitoring the interface is again needed.

  /var/lib/vnstat/enp0s32ff が削除された。vnstatdはactive。

・再び再開
 $ sudo vnstat -i enp0s32ff --force --create
 Creating database for interface "enp0s32ff"...
 Info: -> A new database has been created.

本家 : https://humdi.net/vnstat/

その他
・関連ファイル
  設定 : /etc/vnstat.conf
  デフォルトのログ先 : /var/lib/vnstat/[enp0s32ff | eth0 ...]
  vnstatd : systemctlから起動されるデーモン(ps aux | grep vnstat )
・rx 受信、tx 送信。
・vnstatは、/proc/net/dev を利用してる?

systemctl を使ったコントロール
・継続的 (OS起動毎に自動起動させて)に利用するには、
 # systemctl enable vnstat.service

・使用可の確認
 $ systemctl is-enabled vnstat  (vnstat.service としても同じ?)
 enabled

・状態の確認
 $ systemctl status vnstat
 ● vnstat.service - vnStat network traffic monitor
 ....
 KDEなら、以下でも確認できる
 KickOff→アプリケーション→システム→システムモニタ : プロセステーブル (検索) vnstat 「すべてのプロセス」or「すべてのプロセス、ツリー表示」。
 KickOff→アプリケーション→設定→システム設定 : Units [All]or[services] (検索) vnstat。

・OS起動毎に自動起動しなくていい  (systemctl enable vnstat の終了)。
 # systemctl stop vnstat ; systemctl disable vnstat
 停止しても /etc/vnstat.confとログファイル /var/lib/vnstat/任意 は残っている。

・一時的に使用/停止
 # systemctl start vnstat
 # systemctl stop vnstat

・vnstati のグラフ色変更
 /etc/vnstat.conf の # image colors で定義されている。変更するには、
https://humdi.net/vnstat/ の Features online color configuration editor : https://humdi.net/vnstat/coloredit/ にて試し、vnstat.confを書き換えるといい。

・vnstat-dashboard と言う PHP + Apache2(httpd) + Docker を使ったグラフィカル表示版もあるけど、なんでか動かなかった。

   - -- - -- - -- -
・ (vnstatの話ではない) ネットのIPv6の無効化
 # echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
 # sysctl -p (確認)
  net.ipv6.conf.all.disable_ipv6 = 1
 $ ip a (確認)


以上、素人のメモ

2018年12月26日水曜日

ルートで、コンソール出力が読めない

普通に日本語環境をインストールしたDebian で Ctrl+Alt+F1 でルートになると、コンソール(システムコンソール)出力がが読めない(縦長の菱形文字化け &blacklozange;)。


ちなみに
# echo $LANG 
ja_JP.UTF-8 ←(LC_ALLとLANGUAGEは設定なし)
# cat /etc/default/locale
#  File generated by update-locale
LANG="ja_JP.UTF-8"


fbterm による対応

・読めるようにする。

fbterm パッケージをインストール。
$ sudo apt-get update; sudo apt-get install fbterm;

CTRL+ALT+F1でルートになって、
# fbterm
# ls
ダウンロード  テンプレート  デスクトップ  ドキュメント  ビデオ   音楽  画像 公開
↑読めるようになった。

fbterm 終了は、
 # exit または Ctrl+D
表示フォントを大きくするには、# fbterm -s 16 や # fbterm --font-size=20 としてやる。
デフォルトのフォントサイズは ~/.fbtermrc に記載の font-size=12となっている。 font-size=16 などにしておけば、オプション入力は必要ない。


・書けるようにする。

uim-fep と uim-anthy のパッケージをインストールし、fbterm上で使用する。

ルートに設定ファイル .uimを作る。
例 Ctrl+space で全角 on / off
~/.uim 
(define default-im-name 'anthy)
(define-key generic-on-key? '("<Control> "))
(define-key generic-off-key? '("<Control> "))

使うには、
# fbterm -- uim-fep
または
# fbterm
# uim-fep

Ctrl+spaceの on / offで、画面左下に anthy[Anあ R ] / anthy[An_ R ]と表示される。

例
# ls ドキュメント (←コンソールに'ドキュメント'と打てる)
test.txt  メモ帳.txt

2018年12月19日水曜日

ハードディスクは何だっけ?

パソコンにハードディスクを追加すると、どれが何だか忘れてしまう。

(Debian/GNU Linux StretchとKDEにて)

・接続ハードディスクをデバイスから調べる
$ df
/dev/sda1         19091540   8070860  10027812   45% /
...
/dev/sda4         46568848  33648720  10524788   77% /home
tmpfs               758480        24    758456    1% /run/user/1000
/dev/sdb1        97676000
...
などから、sdaとsdbとわかる。その後の番号はパーティションとマウントされているポイント。(マウントポイントを見るには findmnt コマンドもある)

・同じく、ハードディスクの接続は?
$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 931.5G  0 disk
├─sda1   8:1    0  18.6G  0 part /
├─sda2   8:2    0     4G  0 part [SWAP]
 ....
sdb      8:16   0 931.5G  0 disk
└─sdb1   8:17   0 931.5G  0 part /media/...
....
などから、sdaとsdbとわかる。


・ハードディスクの型番を見る
$ sudo hdparm -i /dev/sda
/dev/sda:
 Model=WDC WD10EZRX-00A8LB0, FwRev=01.01A... SerialNo=WD-WCC...
 ...
 Western DigitalのWD10EZRXだとわかる。

 ついでに sdbは
$ sudo hdparm -i /dev/sdb
/dev/sdb:
 Model=WDC WD10EARS-00Y5B1, FwRev=80.....
...
WD10EARS だとわかる。

・KDE パーティションマネージャ(パーティション編集ツール)でも デバイス名(/dev/...)や型番がわかる。

・Gparted でも、表示→デバイスの表示から型番やパスがわかる。


・gsmartcontrolでは、デバイス名(dev/sdb...) ハードディスク型番とS.M.A,R.T (Self-Monitoring, Analysis and Reporting Technology) からの情報が読めて、パフォーマンステストが行える(テストで、Completed without error.など表示される。)



・PCケースを開けて直接見る・・・面倒ですが確実。

* gsmartcontrol, Gparted, KDE パーティションマネージャ にしても、外付けハードディスクの型番は読み取れない様子。