external storage

2018-12-11

2018-12-05

slack Incoming Webhooks

14:09

SlackのIncoming Webhooksを使い倒す

https://qiita.com/ik-fib/items/b4a502d173a22b3947a0

Incoming Webhooksのエンドポイントを発行 → POST

2018-11-30

sendmail ローカル配送

12:52

$ sendmail -bt
> $=w

$=w is a class that contains all the names sendmail considers local. These include those listed in /etc/mail/local-host-names and those in /etc/hosts that sendmail considers local after examining the machine's network interfaces.

https://serverfault.com/questions/495600/why-sendmail-is-accepting-mails-for-hostname-not-present-in-local-host-names-fil

まずはstatic配送=mailertable

sendmailは配送先判定で真っ先にmailertableを見る

全丸投げstatic=LOCALRELAY

spool(localuser)がいない→LOCALRELAY

ドラえもんstatic=SMART_HOST

localとstaticで配送先がわからなかったら→SMART_HOST

SmartHost設定がない=MX配送

http://www.soi.wide.ad.jp/class/20040031/slides/03/42.html

9.2.1 Determine the Local Canonical Name

The local hostname is then given to the gethostbyname routine to obtain the canonical name for the local host. That same routine also returns any aliases (other names for the local host). Note that, if you defined NETINET6 (NET...) when compiling (for IPv6 support), you must use getipnodebyname(3) in place of gethostbyname(3).

The short (host) name found by gethostbyname(3) or getipnodebyname(3) is assigned as the value of the $w sendmail macro. The short name, the canonical name, and any aliases are added to the class $=w.

If the DontProbeInterfaces option (DontProbeInterfaces) is undefined, or set to false, the address and hostname associated with each interface are also added to the class $=w (see Section 9.2.2).

https://docstore.mik.ua/orelly/other/Sendmail_3rd/1565928393_sendmail3-chp-9-sect-2.html

https://serverfault.com/questions/65365/disable-local-delivery-in-sendmail

DontProbeInterfaces

https://serverfault.com/questions/536051/how-do-i-configure-sendmail-to-send-mail-via-mx-record-and-not-to-localhost

DontProbeInterfaces

m4 名: confDONT_PROBE_INTERFACES

引数: true または false。デフォルトは false。

このオプションを true に設定すると、sendmail は、すべてのローカルインタフェースの名前およびアドレスをクラス w ($=w) に挿入しません。したがって、これらのアドレスのサポートを同時に含める必要があります (たとえば、mailertable エントリに)。そうしないと、これらのインタフェースアドレスへのメールは構成エラーで戻されます。ただし、このオプションを設定すると、起動が速くなります。

https://docs.oracle.com/cd/E19455-01/816-0113/6m6kenfm7/index.html

define(`confDONT_PROBE_INTERFACES',true)dnl

 インターフェイスに付いているアドレスの逆引きをしないようにする

http://blog.livedoor.jp/nor_x/archives/22808506.html

2018-11-21

ファイルサイズの合計

10:55

ls -l /var/log/maillog* | awk '{ total += $5 }; END { print total/1024/1024 "M" }'

http://blogcdn.rutake.com/techmemo/2017/04/19/linux-lsで特定ファイルサイズの合計値を出す/

2018-11-20

aws cloudfront 証明書

11:01

It seems there's substantial delay, but it does eventually propagate. After almost 24h I'm now seeing the cert being served from both CDNs I was updating. It may be the case that doing invalidations on the / path helps as the other one that I did that came through already yesterday, whilst for the CDN I had to give over night.

https://forums.aws.amazon.com/message.jspa?messageID=825995

反映に時間かかる

https://aws.amazon.com/jp/about-aws/whats-new/2017/11/aws-certificate-manager-easier-certificate-validation-using-dns/

DNS検証

AWS Certificate Manager(ACM)による証明書の自動更新について勘違いしていたのでまとめ - Qiita

https://qiita.com/VTRyo/items/9534c73ff300ff721056

2018-11-19

Ansible Galaxy role 登録

16:12

Ansible の Role を Ansible Galaxy に登録し再利用

https://qiita.com/kouji-kojima/items/2525ea87952d4039bad7

roleを作成してAnsible Galaxyに登録するワークフロー

https://qiita.com/hnakamur/items/4c5abbbbbb5623ce46ad

が参考になった

role用のgithubレポジトリ名はrole名と同じにしない

role名とレポジトリ名を同じにしてしまうと、Ansible roleが扱うupstreamのソフトウェアのレポジトリをforkするときに名前が衝突してしまいます。例えばnginxのroleをnginxという名前でgithubレポジトリを作ってしまうと、nginx自体のレポジトリをforkするときに困ってしまいます。そこで、role用のgithubレポジトリにはansible-role-という接頭辞をつけることにしました。

https://qiita.com/hnakamur/items/4c5abbbbbb5623ce46ad

Use galaxy_info.role_name, if set in meta/main.yml

https://github.com/ansible/galaxy/issues/498

githubレポジトリはansible-role-xxx に

meta/main.yml の galaxy_info.role_name: xxx にする

On pushing the change that sets this metadata tag, every one of our roles with a hyphenated name was silently converted to using underscores instead.

https://www.stackhpc.com/galaxy-broken.html

role_nameのハイフンはアンダースコアに変わる

参考

ansible で role を新規作成して ansible galaxy で公開して更新した

https://blog.n-z.jp/blog/2017-06-03-ansible-galaxy-new-role.html

https://galaxy.ansible.com/geerlingguy

https://github.com/geerlingguy

Add 'update' option to ansible-galaxy #6466

https://github.com/ansible/ansible/issues/6466

2018-11-18

ansible コーディング規約

15:28

ansibleのコーディング規約

https://gist.github.com/kkkw/ea55caf2fdaa38a965d7de6954f1fdda

block ディレクティブ

Ansible v2.0 からの "block" ディレクティブを使ってみる

https://qiita.com/tksarah/items/5ec07acf9e7ee7814a04

2018-11-14

2018-11-12

aws CloudFront S3 hosting

19:16

CloudFrontとS3でHTTPSな独自ドメイン

https://qiita.com/yoneapp/items/ed355be381723cd37b54

CloudFront で S3 静的ウェブサイトホスティングを SSL/TLS に対応させる

https://dev.classmethod.jp/cloud/aws/tls-for-s3-web-hosting-with-cloudfront/

エラーページ

AWSのCloudFront+S3でSPAするときにErrorPagesを使いたくない

https://area-b.com/blog/2017/12/02/2205/

2018-11-09

megacli コマンド

20:24

Adapter parameter -aN

The parameter -aN (where N is a number starting with zero or the string ALL) specifies the PERC5/i adapter ID. If you have only one controller it is safe to use ALL instead of a specific ID, but you are encouraged to use the ID fohing that makes changes to your RAID configuration.

Physical drive parameter -PhysDrv [E:S]

For commands that operate on one or more pysical drives, the -PhysDrv [E:S] parameter is used, where E is the enclosure device ID in which the drive resides and S the slot number (starting with zero). You can get the enclosure device ID using '${megacli} -EncInfo -aALL'. The E:S syntax is also used for specifying the physical drives when creating a new RAID ual drive.

https://www.maths.cam.ac.uk/computing/docs/public/megacli_raid_lsi.html

HW保守で使いそうなTips 〜ディスク周り〜

https://qiita.com/shotaTsuge/items/85d6d63f47fafbc24911

megacli -LDInfo -Lall -aALL
megacli -PDList -aALL

megacli -PDList -aALL | grep -e "Slot Number" -e "Error Count" -e "Firmware state"
ログ確認
megacli  -AdpEventLog -GetLatest 100 -info -f /tmp/megaclievent.log -a0 -NoLog
パトロールリード

確認

MegaCli64 -AdpPR -Info -aALL

http://fibrevillage.com/storage/175-lsi-megaraid-patrol-read-and-consistency-check

リビルド

リビルドの進捗確認

以下のコマンドでリビルドの進捗状況を確認できます。

MegaCli -PDRbld -ShowProg -PhysDrv [エンクロージャID:スロットナンバー] -aアダプタN

/opt/lsi/MegaCLI # ./MegaCli -PDRbld -ShowProg -PhysDrv [252:4] -a0

Rebuild Progress on Device at Enclosure 252, Slot 4 Completed 66% in 10 Minutes.

Exit Code: 0x00

https://xmms.jp/confluence/pages/viewpage.action?pageId=852020

Rebuildの進捗確認

#  -physdrv[Enclosure Device ID:Slot Number]
$ /opt/MegaRAID/MegaCli/MegaCli64 -AdpGetProp RebuildRate -a0
$ /opt/MegaRAID/MegaCli/MegaCli64 -PDRbld -showprog -physdrv[E:S] -a0

https://qiita.com/shotaTsuge/items/85d6d63f47fafbc24911

BBU バッテリー

確認

megacli -AdpBbuCmd -aALL
ディスク交換

こんな感じでできる。 ただ、PDmarkMissingが対応していない場合があるので注意。

http://cequiestaime.blogspot.com/2012/06/megacli64.html

http://d.hatena.ne.jp/mtkys+tech-memo/20121215/1355591665

2018-11-08

Synology acl

20:08

https://www.reddit.com/r/synology/comments/8h6u9c/unix_permissions_synology_permissions/

getfacl / setfacl のかわりに synoacltool を使う

$ synoacltool -get /volume1/shared
ACL version: 1 
Archive: has_ACL,is_support_ACL 
Owner: [root(user)] 
--------------------- 
	 [0] group:administrators:allow:rwxpdDaARWc--:fd--  (level:0)

Synology chmod is a modified gnu version. See chmod --help. Unless using option -k (or [+-=]a), the command "chmod mode file" will clear ACls.

https://forum.synology.com/enu/viewtopic.php?t=136202

chmod すると acl は消える

2018-11-06

opcache

23:37

opcacheの推奨設定

PHP: インストール手順 - Manual

opcache.memory_consumption=128

opcache.interned_strings_buffer=8

opcache.max_accelerated_files=4000

opcache.revalidate_freq=60

opcache.fast_shutdown=1

opcache.enable_cli=1

http://tmysz.hateblo.jp/entry/2016/10/29/173313

opcache.revalidate_freq=60 (default 2)

2018-10-29

PG-Strom

15:16

https://heterodb.github.io/pg-strom/ja/

CUDA Toolkit

PG-Stromの実行にはCUDA Toolkit バージョン9.1以降が必要です。

PG-Stromが提供する半精度浮動小数点(float2)型は、内部的にCUDA Cのhalf_t型を使用しており、古いCUDA Toolkitではこれをビルドできないためです。

https://heterodb.github.io/pg-strom/ja/install/

インストール

https://heterodb.github.io/swdc/

操作

https://heterodb.github.io/pg-strom/ja/operations/

参考

AWS上でPG-STROMにチャレンジ(失敗)

https://qiita.com/___monta___/items/75c3e15b249579e07214

Ubuntu 16.04へのCUDAインストール方法

https://qiita.com/yukoba/items/3692f1cb677b2383c983

Ubuntu 14.04にCuda 6.5をインストール

https://qiita.com/tshimba/items/69c17a4b42345d7bf895

2018-10-16

megacli ubuntu debian

14:56

MegaRAIDコントローラを使っているのを確認
# lspci -nn | grep RAID
02:00.0 RAID bus controller [0104]: LSI Logic / Symbios Logic MegaRAID SAS 1078 [1000:0060] (rev 04)

(参考) http://ironiccog.blogspot.jp/2015/08/checking-raid-level-with-megacli-on.html

インストール

http://hwraid.le-vert.net/wiki/DebianPackages

を導入する。

例 debian 8 jessie

# vi /etc/apt/sources.list.d/hwraid.list 
deb http://hwraid.le-vert.net/debian jessie main

# wget -O - https://hwraid.le-vert.net/debian/hwraid.le-vert.net.gpg.key | sudo apt-key add -
# apt-get update
# apt-get install megacli
使用方法

RAID状態を確認

megacli -LDInfo -Lall -aALL
megacli -PDList -aALL
nagios nrpe
# apt-get install nagios-nrpe-server
# wget https://github.com/glensc/nagios-plugin-check_raid/releases/download/4.0.8/check_raid.pl
# chmod +x check_raid.pl
# mv check_raid.pl /usr/lib/nagios/plugins/
# /usr/lib/nagios/plugins/check_raid.pl -S
# sudo -u nagios /usr/lib/nagios/plugins/check_raid.pl --plugin megacli
# vi /etc/nagios/nrpe_local.cfg
command[check_raid]=/usr/lib/nagios/plugins/check_raid.pl --plugin megacli
# /etc/init.d/nagios-nrpe-server restart

2018-10-04

freebsd unsupported vesion pkg error

20:54

old version

2018/10/04 10.3-RELEASE-p24 png-1.6.35
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/lib/php/20131226/gd.so' - /lib/libz.so.6: version ZLIB_1.2.9 required by /usr/local/lib/libpng16.so.16 not found in Unknown on line 0

→ ports で再インストール

2018/10/05 11.1-RELEASE-p4 nagios-plugins 2.2.1_6,1
/usr/local/libexec/nagios/check_http 
Shared object "libdl.so.1" not found, required by "check_http"

→ freebsd-update

2018/10/09 11.1-RELEASE-p1 ruby

Shared object "libdl.so.1" not found, required by "ruby24"

→ ports で再インストール

nss_ldap も

2018-10-03

Mac OSX Spotlight

17:15

Spotlight 検索時、検索窓にテキストを打ち込むと、たちまち検索窓が消えてしまい検索できない。Spotlight はお目当てのファイルを探すのに頻繁に使うので、これは困った!

http://simasima.info/archives/3815

2018-08-27

ノートPC SSD増設

11:30

→ WD BLUE 3D NAND / SATA 2.5インチ 500GBを増設した

【2018年最新版】おすすめSSDの選び方 容量ごとに比較してメーカーランキング評価 | ITハンドブック

【2018年最新版】M.2接続タイプのおすすめSSDの比較 メーカーをランキング評価 | ITハンドブック

【最新版】オススメなSSD「6選」:自作歴23台が解説する | ちもろぐ

no title

SSDで DRAMバッファのキャッシュの無い製品の一覧表 2018年版 (「SSDには DRAMキャッシュバッファが絶対に必須」と考えている人用の除外製品リスト)

nvme (M.2), sata (M.2) と sata (2.5インチ) どれにするか

sata (M.2) と sata (2.5インチ)なら2.5インチの方が排熱で有利?

no title

M.2 SSDのRAID 0には相応の覚悟を

https://qiita.com/aketa/items/2672afb095c1d7c16c97

温度

投稿者Amazon カスタマー2018年4月28日

容量: 1TB|スタイル名: M.2-2280|Amazonで購入

Weastern Digital は温度に気を使っているとかインタビューで言っていたのを見かけましたが、やはりSanDiskの親会社なので、ヒートシンクと、水冷もしくは十分なエアフロー(ファン)が必須です。金属製の外付けケースで使っていたら、室温25℃でSSDの温度が71℃になり速度ガタ落ち。冷却してから、純正のDashBoadを見ると、書き換え不可のFull領域ができてしまいましたΣ(゚д゚lll)

SanDisk別に熱は気にならないけど?という書き込みや周囲の人と、発熱する私の環境の違いがわかりました。

熱が気にならない人は、十分なエアフローがありますが、私はミニPCやノートPCなど、熱が篭りやすい環境でした。当たり前と言われそうですが、似たくらいの性能で、同一環境で使っても発熱しないSSDもあります。なお、M.2はこれしか持っていないので、どのM.2は発熱しないのか、知りません。

熱を気にした方が良さそうな環境では、WesternDigitalやSanDiskを避けた方が無難でしょう。

SSDもカラーで選ぶ、3色展開のWestern Digital製SSDの選び方 - AKIBA PC Hotline!

WD Black NVMe WDS500G2X0C / PCIe NVMe (M.2)

【PR】超高速SSDでゲームをより快適に、「WD Black NVMe SSD」で最強のゲーミングPCをさらに強化! - AKIBA PC Hotline!

http://kakaku.com/item/K0001054465/

SDSSDXPM2-500G-J25 / PCIe NVMe (M.2)

https://www.amazon.co.jp/gp/product/B07CXWR1DY/

WD Blackと同じ

https://yuutosi.net/post-1519/


WD BLUE 3D NAND / SATA (M.2-2280) WDS250G2B0B

https://www.amazon.co.jp/gp/product/B073SB2MXT/

ASCII.jp:【鉄板&旬パーツ】M.2 SSDはSATAもある! WD最新の「WD Blue 3D NAND SATA SSD」を試す (1/2)|鉄板&今が旬なパーツを性能検証!!

ベンチマーク時の温度はNVMeの時は最大で59度まで上がったのに対し、SATAは43度でした。(室温18度〜20度)

https://korya-sugoi.com/x270/x270_m2_2280_sata/

 若干気になったのは、各種ベンチマークを実行した際の温度で、軽いテストでも50度台に達し、「CrystalDiskMark 5.2.2」のテストデータ32GiBを連続実行すると温度は63度までアップしてしまった。2.5インチSSDのように、金属外装でコントローラーを冷却できないため、やむを得ないが、環境によっては動作温度に気を配ったほうが良いだろう

http://ascii.jp/elem/000/001/544/1544224/

WD BLUE 3D NAND / SATA (2.5インチ)

「WD Blue 3D NAND SATA SSD 500GB」をレビュー。64層3D NANDでTLC型の弱点を克服した今一押しな最新SSDを徹底検証 : 自作とゲームと趣味の日々

ウルトラ 3D SSD

http://kakaku.com/article/pr/17/09_sandisk/

WD BLUE 3D と同じ

MX500 / SATA (2.5インチ)

【レビュー】Crucialの最新SSD「MX500」の性能を検証 | ちもろぐ

https://www.amazon.co.jp/gp/product/B078BMW8D9/

CT500MX500SSD4/JP / SATA (M.2)

https://www.amazon.co.jp/gp/product/B077PNJTZ7/

http://kakaku.com/item/K0001051514/

Micron製64層3D NAND採用SATA接続M.2SSD「Crucial MX500 M.2 SSD」シリーズが発売 : 自作とゲームと趣味の日々

2018-08-24

sql distinct

11:26

SELECT * FROM buyList WHERE rowid in
       (SELECT max(rowid) FROM buyList GROUP BY 商品番号 ORDER BY 入荷日付);

重複行削除の際、重複判定に指定したキー列項目以外の列も取得するSQL - 一所懸命に手抜きする

2018-08-20

Mac Emacs IME

15:39

EMP(Emacs Mac Port) で .emacs に以下を追加。Ctrl-o でIMEをトグル

(defun mac-win-ime-toggle()
  (interactive)
  (when (fboundp 'mac-input-source)
    (mac-select-input-source
      (concat "com.google.inputmethod.Japanese"
        (if (string-match "\\.base$" (mac-input-source))
           ".Roman" ".base")))))
(global-set-key "\C-o" 'mac-win-ime-toggle)

この記事は,Emacs を IME(ことえりや Google IME など)と共に使う Macユーザに向けた記事です.

https://qiita.com/takaxp/items/a86ee2aacb27c7c3a902

調べてみるとMacでEmacsを使うには、YAMAMOTO Mitsuharu版のMac Port用のemacs-macというものが一番使いやすそう。MacのネイティブなGUI環境に対応していて、Macの辞書機能やことえりなど、色々とMacの機能が使える。

railwaycatという方が、このemacs-macをHomebrewから簡単にインストールできるようにしてくれていて、これを使うのが一番手っ取り早い。

http://keisanbutsuriya.hateblo.jp/entry/2016/04/10/115945

https://github.com/railwaycat/homebrew-emacsmacport/releases

  ;; EMP版Emacsの野良ビルド用独自設定群
  ;; IME toggleを Emacs内で有効にする
  (defun mac-win-ime-toggle ()
    (interactive)
    (when (fboundp 'mac-input-source)
      (mac-select-input-source
       (concat "com.google.inputmethod.Japanese"
               (if (string-match "\\.base$" (mac-input-source))
                   ".Roman" ".base")))))
  (global-set-key (kbd "M-SPC") 'mac-win-ime-toggle)
  (global-set-key (kbd "S-SPC") 'mac-win-ime-toggle)

https://takaxp.github.io/init.html#org5664627

2018-08-13

yaml

12:08

null

YAMLでのnullはnullもしくはチルダ(~)で表現されます。

https://symfony.com/legacy/doc/reference/1_2/ja/02-yaml