それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

Number と parseInt()の挙動の違い / 数字に変換するとひと言でいうが奥深い

js

parseInt と Number の挙動の違い。 parseInt と Number という2つがある。文字列 → 数値の型変換の関数を使おうとしてみんな一度くらいこの違いが気になるんじゃない? 違いをパパッと確認しよう parseInt と Number の差異が如実に顕出するのは、次の例で…

tcpdump コマンドで ping の応答 ( icmp echo reply ) だけに絞り込む

tcpdump で ping の 応答パケットだけを取り出す。 tcpdump をLinuxルーターのなかで実行しているときに、デバッグしてるときにパケットを見ます。 ネットワーク間の forward が正しく動いているか、iptables の設定が正しいかどうか、NATできてるかどうか。…

ssh のポート転送をipv6 / ip6 宛にする

ssh のポートフォワーディングのやり方IPv6アドレス編 ssh のポート転送は便利で手軽に使えるものです。 ipv6 でも同じです。 ssh -L 8080:[2001:a253:838xxxxxx]:80 root@192.168.100.1 sshでもIPv6の指定はcurlなど同じ [v6 addr]:port のように、ブラケ…

tcpdump で icmp (ping)のパケットを表示する

icmp で ping の受信を見たい tcpdump を使って届いてるパケットを見ることが出来る。 ping の応答が返ってこないしとしても、応答パケットのルーティング設定が間違っている可能性もある。 そのため、ping の宛先でパケットがちゃんと届いているかチェック…

initramfs の本体 init.rd を展開して、busybox をみたり、起動設定を見直してみる。

init.rd を展開してみる init.rd は initramfs を起動するためもの。/boot のパーティションに存在している。 update-initramfs で起動する。grub から起動される最小限のlinux。 展開してみる・・・? initrd ファイルはcpio なので 、cpio で展開しようと…

systemd.path で path(パス) を監視する。

systemd でパス監視機能を使う systemd.path を試していきます。 はじめに systemd でパスを監視することができる。 xxxx.path と xxxx.service をペアで作成し登録すればオッケ。 制限事項 再帰的(recursive)なパス監視はできない。 inotify を使っているの…

ubuntu を4kディスプレイで拡大率125%や150%などの任意解像度をwindowsやMacみたいに選ぶ

4K モニタを使っていると、しんどい。 ubuntu で 4k ディスプレイを使っていると、解像度が細かすぎてしんどい。 windows 10 からは拡大率150% などが選べるが、 ubuntu はデフォルト設定では 200%/100%しか選べなかった。 125%と150% を有効にする。 gsetti…

NetworkManagerがunmanaged(管理なし)になった問題を解決した

network-manager で管理できない。 network-manager で unmanaged になって、ubuntu desktop (gnome) からネットワークが管理できなかった。 依存関係が多くて、問題がわかりにくい。 ubuntu は 1年前から、 netplan が導入されているので、ubuntu server …

NetworkManager でDHCPで取得したDNSの設定を/etc/resolv.confに書き込む

ubuntu デスクトップのネットワーク設定は NetworkManagerから Ubuntu のネットワーク周りはカオス。というか、最近のLinuxのネットワーク周りはディストリ間でsystemdによる共通化を受容している段階なのでややこしい。 Ubuntuのデスクトップ版は主にNetwor…

gitでリモートブランチをローカルブランチにチェックアウトする。(githubプルリクを手元にコピー

リモートにあるブランチをローカルに持って来たい たとえば、github のプルリクなど、リモートのgit branch から自分の手元に、同じものを取り出したいときがあります。 git のリモートブランチを確認します。 git branch -a | \grep remote たとえば、次の…

systemd の タイマーは enable してもstart をしないと動かない

systemd でタイマーを作ってみたんですよ。タイマーが動かないので悩んでたんです。 systemd でタイマーを作って、enableして見たんだけど。動かないんですよ。 タイマーを作る手順 service 作って timer 作って service を起動する start してチェック enab…

laravel のmodel を 外部から使う

php

laravel の Eloquent のモデルを別のプロジェクトからぱぱっと使う。 Consoleとかあるし、API作れば実現はできる。でも既存のものと組み合わせるときは、DBを直接書き換えたほうが早い時がある。 本当はプロジェクトの外部から直接触るのは良くないと思うし…

シェルスクリプトで実行中の関数名を関数内部から知る(自分自身の関数名)

自分自身の関数の名前を知りたい。 関数名は、関数名を表す変数に入っている(BASHで確認) echo ${FUNCNAME[0]} これを使うと、自分自身の関数名を実行中に参照できる。 takuya@Desktop$ function sample() { echo ${FUNCNAME[0]} ; }; sample sample 便利…

nginx でSSHをプロキシして転送する 443 の再利用も可能

nginx でSSHの接続を転送することが出来ます。 nginx には ストリームをそのまま転送することが出来る機能があるので、TCP・IPのポートフォワードができて、ルーター的な動作が出来ます。 nginx.conf stream { upstream ssh { server 192.168.2.8:22; } serv…

lvm 関連のコマンドをsudo で使えるように sudoers を編集する

lvm 関連のコマンドは root のみ lvm コマンドを実行したいと思っても、root に制限されているので、使えないことがあり困ったので、一般ユーザーに開放することにした。 sudoers に許可したいコマンドのフルパスを列挙すればいい。 Cmnd_Alias LVM = /sbin/…

暗号化ディスクのcrypt-unlock をSSH経由でして、ロック解除する

ディスクの暗号化をする CPUにAES-NI の命令セットが載っているのに、ディスクを暗号化しないなんて、勿体無いとちょっと思ってるんです。 iPad / iPhone の iOS はもちろんのこと、Androidですらディスクは暗号化されているというのに、PCを使う我々は暗号…

lvmでディスクを追加拡張するときに詰まった

pvcreate でディスクを追加しようとしたらエラーになった。 pvcreate /dev/sdb ignoring or filtering なぜかエラーにメッセージが ignoring or filtering でディスクが追加できない 今回取った対策。 fdisk で適当なGPT/MBRのパーティションにして、その後 …

LVMで作った20TB のディスクをext4 で扱えない。

ext4 が16TiB以上のディスクにならない。 ext4 は エクサバイトを扱えるはずなのですが、resize2fs をしようとしたら、エラーになりました。 なぜかというと 32bit で利用されているディスクフォーマットだったらしい。 そういえば、もうずいぶん長いこと拡…

LVMの物理HDDを交換するときの手順

LVMでディスクを交換するときは最初にやるのはこれ 新しいディスクをLVMに接続し LVに割り当てる。 pvmove でディスク交換 vg から取り外し 物理的に取り出し vgから古いディスクの取り外し vg からディスクを外す前に pvmoveコマンドを先に実行する必要があ…

イオンカードのログインでワンタイムパスワードの送信画面をスキップする方法

イオンカードのログインにワンタイムパスワードの送信画面がめんどくさい イオンカードにPCからログインすると、ワンタイムパスワードの送信画面になる。 これは、リスクベース認証と呼ばれるものであり、リスクが高いアクセスは「追加認証」を要求するとい…

空白区切り文字列 を xargs で行へ展開-1行→複数行

xargs があるとすぐ出来ます。 xargs -n1 echo 例 空白区切りされた文字列をぱぱっと複数行にする。 xargs と echo を組み合わせると楽。 takuya@~$ echo hello world hello world hello world hello world | xargs -n1 echo hello world hello world hello …

laravel のマイグレーションで特定のmigration のファイル名指定して、一つだけ再度・何度も実行したい

laravel でmigrate するとき、特定のファイルだけを実行したい migrate refresh とかだと全部のテーブルが再生成されちゃうので、別のテーブルデータを消さずに特定のテーブルだけを再構築したい。 サンプル 指定したマイグレーションのファイルだけを実行す…

lvm で容量拡張

よく使うものだけ抜粋 lvm のアレコレはすっ飛ばして、よく使うコマンドだけを抜粋してメモに残します。 余っているpv から容量を追加する pv と vg に容量は割り当て済みとする。 sudo lvextend -L +10g vg/temp_cache 終わったら、ext4 をリサイズする。 s…

chrome で印刷プレビューのCSSをデバッグ表示するには

印刷プレビューのCSSを触りたい 印刷プレビューの media type print css をいじったりチェックしたり、デバッグしたり、表示おかしいので直したいときがあります。 CSSのプリントを印刷プレビューでチェックするのは途方も無い時間がかかる。 そこで、印刷プ…

PostgreSQLでtimestamp/now() を文字列にする char キャスト

PostgreSQL でタイムスタンプを文字列として取り出したい char にキャストするときに長さをつける now() の場合 select now()::char(30); 実行結果 sample> select now()::char(30); +--------------------------------+ | now | |-------------------------…

PostgreSQLでランダムなINTを生成する

ランダムなINTがほしい cast の場合はこれ select cast(random()*100 as integer); ::int を使ったキャストを使う場合はこんな感じ floor(random() * 1000 + 1)::int; 参考資料 https://www.postgresql.jp/document/9.4/html/functions-math.html

Chromeの開発ツールのネットワークから拡張機能のログを隠す

Google Chrome の開発ツールに拡張機能が邪魔 プライベート・ブラウズ・モードでアクセスすれば、拡張機能のリクエストログをを隠すことが出来るが。 わざわざ拡張機能のためにプライベートブラウズで悪世するのも面倒ですよね。 ネットワークのフィルタを使…

Mac でVPNを接続するコマンド。ついでに整理しておく

mac でVPNを接続する。 Macに標準のサービスを使って設定しているPPP系 LT2P over TLS のような設定だとnetworksetup から出来る scutil もいいけど、networksetup でもいい。私はこっち。 mac でVPNに接続するには networksetup -connectpppoeservice "$VPN…

sudo -e ( sudoedit ) でvimで保存しても反映されない

sudo -e (名前=sudoedit ) コマンドは一時ファイルで編集する sudo -e とは環境変数EDITORを使って、/tmp フォルダにファイルを作ってそれを開いてくれる。 エディタのプロセスを終了したら、元のファイルに上書きされる :w だけでは反映されない vim で開…

xvfb-run が標準エラーと標準出力を併せてしまう件

xvfb-run で実行すると stderr が取れない。 /usr/bin/xvfb-run を使えば楽ができる。 Xvfb を起動してDISPLAY変数をセットして、DISPLAY変数を渡して別途起動する、というプロセス管理をぱぱっとやってくれるシェルスクリプトです。 しかしstderr が取れな…