`npm list`で表示される”extraneous”

表題の件、なんだっけ?となったのでメモしておく。

■ 環境

  • node 4.4.7
  • nodebrew
  • Mac OSX El Capitan

■ `npm list`

実行すると下記のように表示されるのと”ERR“が出ている。久しぶりに見かけて、何でだっけ?となったので確認する。

$ npm list
  :
└── XXXXXXXX@0.2.1 extraneous

npm ERR! extraneous: XXXXXXXX@0.2.1 /Users/withsin/project/node_modules/XXXXXXXX
$

extraneous“は、直訳すると”外来“とか。このパッケージがちゃんと管理されていない、ということか。確かにインストール時に下記のように実行していなかった。

$ npm install --save XXXXXXXX

この為、`package.json`の`dependencies`に追加されずに上記のように外来パッケージと表示されているようだ。また”ERR“の内容も同じである。というわけで再度`–save`付きでインストールしたところ、前述のような表記や”ERR“は表示されなくなった。

以上。

ファイル時刻の秒単位まで取得

表題の通り。

■ 環境

  • Linux
  • Mac OSX El Capitan

■ Linux

下記コマンドで取得することができる。

$ ls --full-time test.txt
-rw-rw---- 1 worker worker 20076 2016-12-26 19:17:05.360541977 +0900 test.txt

■ Mac

下記コマンドで取得することができる。

$ ls -lT test.txt
-rw-r--r--  1 withsin  staff  74 12  26 19:11:52 2016 test.txt
$

以上。

MySQLでCSVを出力

表題の通り。ネットワーク越しにデータをCSV形式で出力したい時用のメモ。

■ 環境

  • MySQL

■ CSV

データの中に、”,“とかを含まない場合にのみ使える。AWSのRDSであったり、”INTO OUTFILE“が使えない環境で簡易にCSVにしたい場合に使ってる。

$ mysql -uroot -p --database=db --host=mysqlserver --batch -e "select * from test"
  | sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//g' > output.csv

普通にdumpした方が良いかもしれない…。が、まぁ時と場合によって使えるだろう。

以上。

sshdのコンテナ

Dockerにおいて表題のコンテナを用意したい。

■ 環境

  • Docker for Mac 1.12.5
  • Mac OSX El Capitan

■ Ubuntu

元にするコンテナは”ubuntu“で行う。現在用意したい環境がUbuntuだからである。

$ docker run -ti --name ssh -p 2222:22 ubuntu /bin/bash

コンテナにログインして作業を行う。portは先に開けておいた。

■ ssh

もちろん最初は入っていないので”ssh“をインストールする。

root@fc22189f73c0:/# apt-get update
root@fc22189f73c0:/# apt-get install ssh

サービスを起動してみる。

root@fc22189f73c0:/# service ssh start
* Starting OpenBSD Secure Shell server sshd      [ OK ]
root@fc22189f73c0:/#
root@fc22189f73c0:/# ps -ef | grep ssh
root       270     1  0 10:05 ?        00:00:00 /usr/sbin/sshd
root@fc22189f73c0:/#

プロセスも起動しているようである。ローカルからアクセスしてみるがログインできず。”ssh“の設定だろうと当たりをつけて確認する。設定ファイルを編集する為に”vim“もインストールしておいた。

root@fc22189f73c0:/# apt-get install vim
  :
root@fc22189f73c0:/# vi /etc/ssh/sshd_config

下記のように編集し、”root”ユーザにパスワードも設定しておいた。

# PermitRootLogin prohibit-password
PermitRootLogin yes

本来はよくないが今は良いとする。

以上でローカルから再度アクセスを試みる。

$ ssh -p 2222 root@localhost
root@localhost's password: ******
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.39-moby x86_64)

* Documentation:  https://help.ubuntu.com
* Management:     https://landscape.canonical.com
* Support:        https://ubuntu.com/advantage
Last login: Wed Dec 21 10:03:40 2016 from 172.17.0.1
root@fc22189f73c0:~#

ログインもできた。

以上。

date +%N

表題の件について知らなかったのでメモ。

■ 環境

  • Amazon Linux
  • Mac OSX El Capitan

■ +%N

ナノ秒が取得できるそうである。ただしGNUの`date`コマンドでのみ対応しているそうである。前述の2つの環境でそれぞれ試してみた。

AmazonLinuxでの実行結果は下記の通りである。

$ date --help
  :
  %N   ナノ秒 (000000000..999999999)
  :
GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
  :
$$ date +%N
870689627
$

取得できている。続いてMacでも試してみる。

$ date -h
date: illegal option -- h
usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
            [-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]
$
$ date +%N
N
$

ヘルプも出せなかったのであるが、ナノ秒は取得できなかった。

以上。