それマグで!

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

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

linux

シェル(bash)の履歴を指定業だけど消す(間違えてパスワードを履歴に残した)

パスワードを打ち込んでエンターしてしてしまった。 パスワードなど、履歴を残したくない文字列を履歴に残してしまった場合。 たまに、やらかしますよね。複数ウインドウでフォーカスが違ってたとか。 takuya@:~$ 'MyP@$$word' -bash: MyP@$$word: コマンド…

ファイルを空っぽにするコマンド truncate

ファイルを空っぽにしたい exim4 にパニックログが残ってると、エラー監視ログが上がってくるんですね。ログファイルを空にしたい。 exim paniclog /var/log/exim4/paniclog on acid has non-zero size, mail system might be broken. The last 10 lines are…

dd のコピー進捗状況を表示する- progress

dd コマンドで進行状況を確認したい dd といえば、USRシグナルを送れば進捗状況が見えるのですが。 kill -USR1 $pid; sleep 1; kill $pid これは起動中にddコマンドに対してpidへシグナルを送ることで表示されるのですが。説明するのは大変ですよね。 かんた…

mac のdd / ddrescue が遅すぎる大問題に対処する。

mac で ddするとめっちゃ遅い 本当に遅い。 信じられないくらいに遅い。2MB/s程度しか出ない。32GBのraspi のSDカードをコピーに一晩中掛かってしまった。辟易した。調べたら mac はもともと遅いらしい・ rdisk を使う mac の /dev/diskX は遅すぎるので、…

ddrescue は レジューム機能がある 。途中で再起動しても大丈夫

ddrescue コマンドを実行中に再起動しちゃった。 macOS で dd / ddrescue するとすごく時間がかかるので、バックグラウンドで流してて、1日近く経過してた、ddrescue 実行中を忘れて再起動してしまいました。悲しい レジューム機能がある。 悲しいので、こ…

mac で ext4 など Linuxファイルシステムパーティションを扱うGNUコマンド

macOSでext4 をチェックしたい。 LinuxデスクトップにいちいちUSBをつなぎ直すのが面倒くさいので、普段使いのmacOSでext4 を操作してチェック(verify)修正をしたいなと思った。 e2fsprogs のGNUコマンドはbrewでインストールできます。 brew install e2fspr…

mac で linuxと同等のgdisk コマンドを使うには

mac でgdisk したい mac にもfdisk があり gpt コマンドで GPT のボリュームも扱えるのですが。「覚えるのが面倒くさい」 brew で gnuの gdisk コマンドをインストール linuxのgdisk コマンドと同じなら使い方も同じなので、覚えることが少ない。 brew insta…

lscpu コマンドが便利。 cat /proc/cpuinfo がメニーコアだと使いにくい

CPU マルチコア・マルチスレッド化 して情報を見にくい。 cat /proc/cpuinfo の出力が多すぎて見にくい。 表示は4コア2スレッドの合計8スレッドのCPUなんだけど、この数がどんどん増えていくんですよね。Ryzenとか買った日には、最大64個とかになるんで…

Intel のAESサポートが有効になっているか調べる

intel のAES処理が有効になっているか調べる カーネルの暗号化モジュールから、一覧を拾ってきて aesni が入ってれば大丈夫っぽい takuya@:~$ sort -u /proc/crypto | grep module 66:module : aes_x86_64 67:module : aesni_intel 68:module : crc32_pclmul…

tcpdump でパケットのサイズが指定以上より大きいものを取り出す。

tcpdumpで パケット長でフィルタを掛けたい 小さいパケットは無視したり、一定以上のサイズのものだけを取り出したい。 tcpdump -i eth0 greater 500 greater の条件を使うことで、パケットの長さを元にフィルタをかけることができる。逆は less 組み合わせ…

tcpdump で UDP のパケットを表示する

tcpdump を使って UDP を指定する tcp は syn ack があってパケットがたくさん出てきますが、 UDP はそうでもない。 tcpdump -i eth0 udp UDP の IPアドレスを指定する tcpdump のコマンドは、フィルタ単体というより、いくつかのフィルタを組み合わせて使う…

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…