それマグで!

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

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

linux

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…

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

自分自身の関数の名前を知りたい。 関数名は、関数名を表す変数に入っている(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コマンドを先に実行する必要があ…

空白区切り文字列 を 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 …

lvm で容量拡張

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

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 が取れな…

dockerがapt失敗する - dns の設定を見直してみる。

Docker で起動したUbuntuがネットに出られない。 docker コンテナ側からインターネットへのネットワークの疎通を確認する。 今回は、なぜか、通信ができなかったので、エラーになる。いきなり発生したので原因を探っておく。 疎通確認 docker run busybox pi…

nginx で 443 default_server を入れたら接続できなくなる

443 で default_server を入れたら通信がおかしくなる件 nginx でドメインをキャッチオールして、別サーバーのnginx へ丸投げする、多段nginx の設定を書いていたら、80 だと動くんだけど、443 で動かない。 listen 443 ssl https default_server をつけると…

s3互換 minio を使って AmazonS3 の実験コストを節約する

Aws の S3 の代替サーバーを使う。 s3 の設定をいちいちするのはめんどくさいので、使い捨ての s3 が欲しくなる。 minio オブジェクトストレージ minio というS3と同様のオブジェクトストレージが使えるサーバを使って、開発コスト(時間設定金銭)を下げて…

ファイルが作成されてから何秒経っているか?作成後指定秒経過したらなにかする。

ファイルが作成されてから何秒経っているか? このファイルが、作成されてから何秒経過したか。それ知りたいことありませんか? ファイルAがファイルBより古いときはファイルAを更新するとか 作成後(更新後)の経過秒数を知る echo $(( $(date +%s) - $(date…

nginx で proxy 時に header を除去する-CSP上書き削除書き換え

nginx で http header を上書き除去する。 nginx でアプリケーションへ reverse proxy してたんだけど、アプリケーション側にcontent-security-policy の設定が最新版のChromeと合わなかった。とくに blog/data add_header で csp を追記しようとしたけど、…

date コマンドでミリ秒→日付、int 秒 → 日付へそれぞれ数値を日付表記にフォーマットする

int 秒を日付にするには 引数 -d に @11234567 をつけます。 takuya@~$ date -d @1566808184 +"%F %T" 2019-08-26 17:29:44 ミリ秒の場合。 date コマンドはミリ秒を解釈しないので、いったんint へ数値計算してやる takuya@~$ date -d @$((1566808184122/10…

which コマンドでPATHにある同名のコマンドを全部列挙する

PATH の優先順位に悩まされるたときに which which コマンドを使うと 環境変数 PATH にあるコマンドのうち、最初に見つかったもの(実行されるもの)を表示してくれます。 which python どのコマンドが実行されるのか調べるのに便利ですし、よく使ってると思…

systemd のdaemon のサービスを定期的に再起動する unit ファイルの書き方

systemd のサービスを定期的に再起動する systemd で作ったサービスを定期的に再起動したい。 定期的に再起動する必要があるのか。と問われれば、私自身も答えに窮するのだけれど。 今回は pip install しているpython パッケージや npm run で起動している…

bash で三項演算子っぽく処理を書くには

bash でも三項演算子を使いたい かんたんな、初期値nullチェックとかで三項演算子的なことをよくやります。 bash でもやりたいなと思って調べててみたけど、なかった(あったので追記書きます。)。 条件分岐を使って原始的な手法がsh/bash で使えるのでご紹…