それマグで!

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

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

linux

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

systemd でパス監視機能を使う systemd.path を試していきます。 パスの監視というと理解しくいかもしれませんが、フォルダの監視です。フォルダを監視してなんかやります。もちろんファイルも監視できます。 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 ファイルの書き方-timerを省略する

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

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

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

systemdのジョブの起動前、起動後に処理を記述する preExec / PostExec

systemd で自動起動するファイルを記述したが pip のアップデートで苦労する systemd でdaemon を起動しているのですが、pip 関連でアップデートが頻繁にあるモジュールだと、前もって更新してあげないとエラーになることがる。 systemd で事前処理・事後処…

ユーザー毎の systemd を使ってシステム全体設定と個人用設定を分ける。

systemd のユーザーごとの設定というのがあります。 systemd は sudo 権限がないと動かないと思ってませんか。 タイマーや自動起動、インスタンスやサービスはもう、ユーザー空間でできるのです。 ユーザーモードでの systemd というのがあります。 引数 --u…

ubuntu でもCtrl-Shift-ESC でタスクマネージャーを起動したい

Ctrl −Shift - Esc でタスクマネージャーを起動したい 強制終了をしたいときとか pkill で構わないんだけど、ついつい、癖で押しちゃうので、ショートカットにする ショートカットの設定画面 コマンドを指定する。 Gnome Desktop でWindowsのタスクマネージ…

gitサーバのgogs を使うことに

github だけがgit webじゃない。 git をWEBで閲覧するのには、github 以外にも git serverとして gitweb でもなんでもある。 gitlab は要求水準が高いし、prometheus がCPU食いまくる、またgitlab は複数のドメインで運用が面倒だ。*1 gitlab を複数インスタ…