それマグで!

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

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

linux

マルチコアのCPUを使い切って圧縮を速くする

gzip の限界 = CPU 1コア マルチコア・マルチスレッドのCPUがあるのに、gzip や lzma(xz)や bzipといったメジャーな圧縮は、CPUを1コアで処理するんですね。 CPU使用率を見てみたら、CPU利用率は100%を超えないんですね。 HDD・SSDの書き込み速度に限界が…

cloudflare 以外からのアクセスを拒否する/ipsetとiptablesで

linux のFWで特定のアクセス元だけを許可する。 たとえば、cloudflare からのアクセスを許可して、通常のアクセスは全部拒否する。 アクセス元IPで接続を限定する。 クラウドのVPSにデータを置くときには、アクセス制限をキッチリやらないから、情報漏洩が起…

chgrp で Operation not permittedになる場合の対処

事象 Linuxでファイルの所属グループを変更したいが、Operation not permitted になって権限が足りずにできない。 chgrp www-data virtualhosts/prod/test.com chgrp: changing group of 'virtualhosts/prod/test.com': Operation not permitted 対応1:sud…

gsuite のアカウント増やさずにメアドだけ増やして mailcow で管理する。

概要 GSuite(google workspace) 宛のメールを、独自のメールホストへ転送してGoogle アカウント管理下にないメールアドレスを使う。 前提条件 課金済み 重大な前提条件 Google Workspaceで課金済み。 課金しているGsuiteが必要です。歴史的経緯の無償版Gsuit…

curl でSMTP経由のメール送信

curl で smtp 経由でメールを送信する。 curl -v --url 'smtp://192.168.1.1:2525' \ --upload-file sample-mail.txt \ --mail-from takuya@example.com \ --mail-rcpt takuya@example.com curl で送信できるわこれ。 smtp をTELNETで接続してメール送信テス…

Postfixが ssh ログインして、メールをリレー配送する設定を入れる。

動機: ssh 経由でsendmail を使えると気づいたので応用してみた。 ローカル postfix に sshさせ、SSHで別サーバーからメール送信させたい。 得られるメリット 1つのPostfixをSSH経由で使い回す。 設定と覚えることがシンプル パスワードを平文保存しなくて…

sendmail コマンドを ssh 経由で呼び出せることに気づいた。

sendmail でメールを送ろうとして苦労してた。 webの問い合わせフォームだとか、php のsendmail をサーバでは使えるが、ローカルでは smart-relay な postfix を設定して試していた。 実にめんどくさいことだった。或る日、コマンドを眺めていて、ふと気づい…

windows のIPアドレスの確認 ・変更( netshと ip の比較 )

windows のIPアドレスの確認 ( netsh ) Windowsには netsh コマンドがあって、IPアドレス関連の各種設定ができる。 netsh の使い方をまとめておく コマンド linux windows IPアドレス確認 ip addr show eth0 netsh interface ipv4 show addresses eth0 v6ア…

LXC のストレージサイズ変更(拡張・縮小)する。

LXC のストレージサイズが足りない。 LXC のストレージのりサイズをなんとかしたいです。容量不足になって困らないようにしたい。調べました。 lxdのリサイズはストレージのフォーマットに従う。 lxd のbtrfsを拡大する場合 lxd のストレージ一覧 bt01 / btr…

dig がエラーを出した。

dig がエラーになってた 名前解決ができない。 dig: isc_nm_udpconnect: network unreachable なんのエラーかと思って調べてたら、v6 で経路が見つからない。というv6ルーティングやv6アドレスのエラーだった。 無理やりv6を指定して、v4 ネームサーバーを指…

lsof でIPを指定する

lsof でIPを指定する lsof で探すときに、指定したIPでリッスンしているものを見たいときにどうするのか、複数のIPがあると明示的に指定したいですね。 ip を@マークで指定する。 lsof では @マークで ip アドレスを指定することができる。 アドレス指定 lso…

aptインストールを速くする(no-install をデフォルト設定とする)

急いでいるときに、すこしでもaptを速くしたい apt の src を高速なミラーとかローカルミラーを使えば少し早くなる。んだけど、それだけだとまだ足りない。 Aptで余計なものを入れなければいいんだと思うんですよね。 apt.conf にrecommends と suggestを除…

tpm デバイスでパスワード入力省略でcryptrootをブートさせられる。

tpmデバイスをLinuxでも使いたい。 TPM搭載されてるんだ。だからWindowsのbitlocker的な暗号化デバイスのパスワード入力レスの起動をやりたかった。 ずっとやりたかった。でもあまりに手間が多かったので見送っていた。 いま気づいたら、専用のツールが公開…

wget が ipv6 につないでしまう。aliasでIPv4 に限定する

wget が v6アドレスを使ってしまう。 wgetで、v6アドレスを呼びに行ってしまう。NTTの壊れたフレッツ v6 ネットワークで大問題が起きている。 IPoEに早く対応させたほうがいいけど。v6のアドレスをIoT家電が山盛りの家庭内に頒布するのは躊躇われる。 wget …

ロケール(地域言語)を設定する(dpkg-reconfigureの対話ダイアログなし)

言語・地域のロケール設定がめんどくさい。 LXCで新規インスタンスを起動したり、dockerfile や インストールスクリプトを書いていると、ロケール設定がめんどくさい。手作業でやっていると、dpkg-reconfigure を使えばいいんですけど、不便。起動までコピペ…

デプロイやバックアップ用のSFTPアクセスだけを許可する、公開鍵を使う。

SFTP だけができるユーザーを作ると。 バックアップ用やデプロイ用に、ユーザーを作るのがめんどくさい。 ちょっとしたコマンドは実行できなくてSFTPさえできればいいときに、デプロイ用のユーザを作って /etc/ssh/sshd_config で管理するのも面倒 そこで、w…

systemd で引数を使う(@:アットマーク)ユニットのテンプレート化で似たようなサービスをまとめる。

systemd で引数を使う @:アットマークを使えば、ユニットのテンプレート化で似たようなサービスをまとめることができる。 systemd の list-units をすると、user@1001.service のように、ユニット名@値 でいくつも起動しているので、自分でもそれを作って…

コマンドが存在するか調査するコマンド、その名もcommand

コマンド存在スルか調査するコマンドに command が使えます。 $ command -v ls ; echo $? alias ls='ls --color=auto' 0 シェルの実行結果は 1/0 で戻されています。 echo $? は直前のシェルの実行結果$? を出力しています。正常終了なら0 異常終了なら $? >…

ssh の秘密鍵は何ビットやFingerprintのプロパティ情報を見る

SSHの秘密鍵が何ビットだったか忘れた 随分前に作った秘密鍵なので、これが1024 / 2048 なのかすっかり忘れていました。 ssh-keygen で秘密鍵の情報を確認 秘密鍵の情報をみるには、ssh-keygenコマンドでやります。 ssh-keygen -l -f ~/.ssh/id_rsa このコマ…

シェル ( /bin/sh ) での正規表現マッチ。

以前、bash の正規表現について書いた。 今回は、今更だけど、あえて、bash/zsh で使われている [[ を使わずに、正規表現を使おうとしてみた。 expr よりは bash の機能を使ったほうがいい。 以前書いた記事にある。bash/zsh の正規表現を使う方法が個人的に…

qcow2へ raw(qcowのnon-sparse) イメージを変換して sparse にする virt-sparsify

non-sparse から sparse なファイルにコピーする qemu で使える raw image なnon sparseな hdd イメージを qcow2 形式の sparse なファイルにする。 生イメージだとどうしてもディスク容量が節約できないので動的にディスク容量を確保するほうが良いよね。 v…

lxc 間の通信で ホスト名を使って直IPを避ける

LXC コンテナ間の通信でホスト名を使いたい。 LXC のコンテナ間の通信で、IPアドレスをいちいち調べるのがめんどくさい。 docker-compose に記載したホスト間なら、ホスト名でアクセスできるので、おなじことをLXCでやりたいなと思ったら。 調べたら→出来る …

qemu - qcow2 のイメージに 変換する。

VirtualBoxのイメージを変換する。 まぁそのままでも動くんだけど、管理を統一したいので qcow2 にする。 パフォーマンス云々はあるだろうけど。そこま気にしないことにする。 qemu コマンド qemu-img convert 実際の例 マイクロソフトが配布する MSEged 用…

shutdown コマンドについて調べました。

なんとなく使っているshutdown Ubuntu デスクトップを使っていと、なんとなく、reboot だとか shutdown コマンドを打ち込んでるんですよね。 今すぐシャットダウン shutdown -h now 強制シャットダウンをわりと気軽に打ち込んでるんだけど、shutdown コマン…

apt で v6 を使わせない。IP v4 に限定して、aptを使う設定。

NTT の壊れた閉域IPv6網 NTTの壊れたv6を使っていると、IPoEを設定しない限り、外向きの通信ができない。 v6の設定をあれこれ触っていたりすると、v6 で apt 出来たり出来なかったりするので、とたんに不便になる。 まじ困る。 apt がv6 フォールバック待ち…

空白を含むパス名を含むコマンド文字列をシェル(bash)で処理する

" program files " のような空白を含むパス名を持ったコマンド全体を、変数に保持しててそれを実行したい時 そのままだと動かない。 ## これが実行できない。 cmd='ls ~/Library/Application\ Support/' $cmd 空白を含むパス名を入れたコマンドを文字列とし…

qemu の仮想マシンのイメージのディスクサイズを変更する。

libvirtのkvmでつかうqemu 用マシンのサイズを変更したい 通常のディスクであれば、ddしたイメージファイルのサイズを変えてあげれば済むのだけれど、qcow2 のイメージファイルはsparse ファイルになっています。 なので、仮想マシンから見えるディスクサイ…

ディレクトリの中のファイルを「時刻」でソートする find と lsをつかって、最新のファイルだけを取り出す。

ls コマンドの場合 ls -t | head -n1 ls コマンドで、時刻順に並べることができるので、これを head と組み合わせれば出来る。 takuya@Gitlab:~$ sudo ls -lt /var/opt/gitlab/backups/ total 92268132 -rw------- 1 git git 43629199360 Apr 25 02:20 15877…

systemd タイマーの書き方。OnCalendarのtimer 設定の記述方法とチェック方法をおさらいする。cronの代替にするサンプル集

systemd の timer サービスの書き方で時間の指定が困る。 cron で日付や時間の指定をようやく覚えて自由自在に作ってたのに、systemd timer だと onCalendar です。覚え直しです。 書式が違うんですよね。onCalendarは独自です。 systemd.timer の例 OnCalen…

splatnet2statinkで stat.inkへアップロードをsystemd で自動化する。

splatnet2statink で戦績を保存したい。 かれこれ2ヶ月くらいスプラトゥーン2から離れている takuya ですこんばんは。 2020年のコロナウイルス感染症騒動で、ちょっと暇になってしまったので、スプラトゥーンを復活しようと思っています。リングフィットア…