それマグで!

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

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

linux

exiftool でカラム表示で撮影日とファイル名を一覧する

exiftoolでファイル名とカラム表示したい ls -alt 的な感じでexiftools で写真のEXIFデータを見たい -T でカラム表示 exiftool -T にすると、カラム(タブ区切り)で表示できる ファイル名を表示したい exiftool -filename でファイル名を表示できる 写真の…

systemdでネットワーク待ちを何とかする。Failed to start Wait for Network to be Configured.

ubuntu が起動時にエラーを吐いてネットワーク待ちで時間がかかる。 Failed to start Wait for Network to be Configured. ネットワークを見てみる。 基本的に、networkdに管理させてないが、念のために確認する。 takuya@:~$ networkctl IDX LINK TYPE OPER…

ext4 → btrfs にファイルシステムを変換する。

ext4 → btrfs に変更 gitlabストレージに使ってるHDDが、よく考えたら大量のwordpressだらけで、はっきり言って容量の無駄使いなので、btrfs に変えて重複ファイルの排除機能を使えば節約になりそうな気がした。 手順1 fsck でエラーを修正しておく fsck /d…

gzip ファイルの圧縮率を変える。

圧縮率をbestに変えたい 圧縮率を変えるには、再圧縮が必要 gzip -cd old.gz | gzip > new.gz 伸長(展開)してからやるとストレージが無駄になる。 gzip -cd dump.gz gzip -best dump そこで、直接パイプしてあげればいい gzip -cd dump.gz | gzip > dump.g…

LXCのbtfsストレージの中身を見る

LXCのbtfsストレージの中身を見る LXCのストレージをマウントしてアクセスする。 btrfs は losetup 経由になっている。zfs の場合は違う。 lxc のストレージ情報を見る lxc storage list LXCストレージをマウントしてデータを取り出す。 lxc storage list | …

時間のかかる巨大ファイルコピーで進捗の状況を見ながら操作したい

長時間コピーがいつ終わるかわからない。 100GB を超えるストレージ・ダンプのコピーがいつ終わるか予想がつかない。 cp hdd.img /mnt/hdd.img 100GBとかいつ終わるの・・・ってなる 手軽な手段 rsync rsync -av --progress source hdd.img /mnt/hdd.img rsy…

NTFS のボリューム(HDD/SSD)をLinuxでメンテナンスする・練習する

ntfs のストレージをLinuxから操作したい Linuxに接続してNTFSのHDD/SSDをメンテナンスしたときのメモ 使うツール ntfsresize ntfsfix gdisk losetup ddrescue kpartx NTFSのディスクイメージを作る ddrescue で取り出せばおっけ ddrescue /dev/sda2 ntfs.im…

wireguardでVPN先のローカルドメインを参照する

wireguard接続時ローカルドメインをつかいたい できます。 wireguardの接続設定を書きます。 DNS=192.168.1.1, local2 , lan3 , example.tld DNSのあとに、カンマ区切りで列挙すると、ローカルドメインとして機能します。 記入例 参考資料 https://rakhesh.c…

GNU SCREEN の操作方法(キー操作一覧)を閲覧する

gnu screen でキーバインド一覧をみる 慣れていると、いつも同じキーしかつかわないので、たまに眺めてみて自分の操作方法を見つめ直す. 一覧の出し方 Ctrl-A ? で一覧が出ますね 一覧の読み方 例えば、SELECT は - なので Ctr-A - 例えば、ウインドウ一覧は…

GNU Screen で screenrc をリロードする方法

再起動なしで、screenrc を反映する gnu screen の設定を変えたいときに、すでに時間かかる処理を走らせてしまっていた。 GNU screen の 設定をreload したかった。調べたらあっさりした解決方法が出てきた。 :source ~/.screenrc Escape + : でコマンドモー…

rbash で制限付きのシェルを作って安全を確保する

bash で何でもされるのが怖い?なら rbashはどうですか? rbash は bash の機能の一つで 「機能制限をされたbash」を提供するためのものです。 rbash とは、制限付きのシェル(RESTRICTED SHELL) の略です。 rbash の正体 bash -r rbash コマンドは /usr/bin/…

ユーザのUIDを数字だけ取り出す / id

id コマンドでユーザを調べると $ id takuya uid=1001(takuya) gid=1001(takuya) groups=1001(takuya),27(sudo) この結果をついgrep / awk しちゃうが、ちゃんと id コマンドで取れますよ。ってことです。 int の数字だけがほしい オプションを付けます。 UI…

sar / sysstat で cpu 利用率を計測し計測値を記録し、調査する

grafana+prometheus でロードアベレージを監視してもいいんだけど ちょっとログを集めたいのに、あまりにもヘビィだと思うの。 sysstat / sar を使う 古のパッケージ sar コマンドで、CPU利用率を集計する sar / sysstat で cpu 利用率を詳しく調査する イン…

systemdのタイマーの実行予定・実行済を一覧表示する

systemd のタイマーの実行予定を俯瞰したい crontab と違って systemdは個別ファイルに実行予定を記載するため、全体の予定がわからない。 それを一覧で俯瞰したいなと思ったときどうするのか list-timersを使う sudo systemctl list-timers --all list-time…

シェルスクリプトで変数と文字列を展開(置換)する

変数を文字列に展開するenvsubst envsubst を使えば、文字列と変数を置換できる。つまり変数を展開できる。 利用サンプル echo "HELLO \${HELLO}" | HELLO=takuya envsubst テンプレートを作れる これを利用すれば、テンプレートを作って文字列を作成するの…

qcow2 のストレージを直接マウントする。(ループバックで接続経由し、losetupで使う。)

qcow2 ディスクイメージをマウントしようと思ったら、loop back で接続すればいいとわかった。 raw であれば、losetup -P -f /path/to/raw.imgでlosetupで手軽に扱えるが、qcow2の場合は、nbdを経由する。 qcow2 のディスクを接続する コネクトを使う。 sudo…

sslh で 443 ポートのUDP/TCP を振り分ける(openvpn/udpとwireguard/ udp を使う)

443 ポートを活用する 443 ポートで https / ssh / openvpn / wireguard を全部の待受ができたらいいなと思った。 フリーWiFiが443 / 53 /80 以外のポートを使わせてくれない事が非常に多い。公衆無線LANでポート監視やるのは流石にまずいと思うんだけど。実…

IPv6 での rsync のIPアドレス指定

v6 の場合、rsync のIPアドレス指定はめんどくさい rsync -avz sample.xml 'takuya@[2001::1:34]:~' ポイント v6 アドレスは[ ] で 囲む rsync -avz sample.xml takuya@[2001::1:34]:~ [ ] は bash に解釈されるので、クォートする rsync -avz sample.xml 't…

Explorer で Sambaを見るとファイル名がチルダの文字になる

チルダの文字なる Samba経由でLinuxのファイルを見ると、英数文字で5文字、チルダ、英数字のファイルになる。 再現方法 次のようなファイルを作ると、再現できる。 touch aaaa? 原因 Linuxのファイル文字とWindowsの使用禁止文字が異なるためらしい。 対応 …

linxuのターミナルで使えるグラフィカルかリソース監視 gtop

インストール cd npm i gtop 起動 npx gtop モニタリング フォントと縦横比をうまく調整すればきれいに表示ができる プロセス一覧 プロセス一覧は、c/m/p でCPU利用率・メモリ占有量・PIDの切り替えができる。mm/ccと二会押せば逆順になる。 終了 q / esc /c…

nginxで443ポートにssh/httpsを共有する

nginx で https と ssh をリッスンする nginx には $ssl_preread_protocol というStream設定が用意されている。これを使うとTLSプロトコルごとに、プロキシ先を変えることができる ただし443 はストリームが使うので、リッスン先をいい感じに帰る必要がある…

sedコマンドが、シンボリックリンク考慮しないが、gnu sedはなんとかなる

sedコマンドで置換すると、symlink が壊れる。 sed -i でファイルを置換するときのリンクファイルの扱い。 実験 echo xxx > a ln -sr a b sed -i "s|xxx|yyy|" a b # bは通常ファイルになる。 sed を使うときには絶対に知っておかなくてはいけない。 シンボ…

nginx でhttp/https をリダイレクトせずにバックエンドサーバに任せる。

nginx で http は http まま維持して、httpsはhttpsのままバックエンドサーバにリクエストを投げつけるとする。 cli =(http)=> nginx =(http)=> backend:80 cli =(https)=> nginx =(https)=> backend:443 ウェブを検索すると、大体の設定例は次のようになっ…

sshでパイプして vlc でテレビ番組TSを再生する

テレビを再生するだけなら sshで十分 BONDriverだとか bon proxy だとか、TVTestだとか、Windowsの人たちってパイプを使わないので面倒くさいことしてるなぁと思う。 面倒くさいことをするので、使うのがめんどくさくなるんだよ。サクッと使えるようにしてお…

crystal diskmarkと同じ様な速度測定をlinuxでやる

crystal diskmark と同じような調査をする 対応してないSDカードリーダーと対応しているSDカードリーダー 測定の開始 sudo apt install fio curl https://gist.githubusercontent.com/takuya/6599a4b012080f8aef36582b9efc2fed/raw/a8f179dc8e85b59a92116488…

ssh-agentをログイン時に起動する。

ssh-agentを使う 非暗号化ディスクにSSH鍵をパスフレーズ保護なしに保存するのは危険。 ストレージからSSHの秘密鍵を取られたら目も当てれない。 そして、known_hostsから接続先がわかってしまうと。もう最悪。 そのために、SSHを安全に扱うには、known_host…

bash でコマンドがエラー終了したことを検出する。

bash でコマンドがエラー終了を調べてなんとかする。 シェルスクリプトのコマンドでエラーが起きたら、エラー表示したり、コマンド失敗のエラー手続きを実行する なれてたら簡単なのですが、例外になれたプログラマや非表示の暗黙ステータスコードを使うのが…

linuxでシリアルコンソールへシェルから書き込みたい。

シリアルコンソールへシェルから書き込みたい。 tty デバイスに対して書き込むのは通常のソケットやファイルに書き込むのも変わらないのです。echo で書き込めます。ただし設定が必要。 事前にチェックすること ボーレート パーミッション 読み込み側で、待…

systemd の設定を上書きでゼロから書くのを避ける

systemd の上書き systemd のユニット定義は、上書きしたり、変数を定義したりで、似たような設定をまとめることが出来る。 変数を使う systemctl start serial-getty@ttyUSB0.service name@.service で定義されたサービスは name@VARIABLE.service と@以降…

linuxのログインに総当り対策する。(ロックアウトによる対策)

シリアルコンソールでのログイン シリアルコンソールでのログインを有効にした。ttyS0を非常用のポートとして確立することができた。 総当りの懸念 物理的にサーバーを強奪・押収されたとき、シリアルコンソール接続のメンテナンス専用機の乗っ取りなどで、…