ギャバンITサービス
お菓子の家が作れるシステムエンジニアです

リダイレクトとパイプ

これも忘れそうなのでメモ。 標準入力から標準出力と標準エラー出力 リダイレクトで使うのは、標準入出力。 イメージ湧かせてみる。 stdin/stdout/stderrには0/1/2ってファイルディスクリプタがついてる。 キーボードが標準入力で、 画面出力が標準出力と標準エラー出力。 1 2 3 4 5 6 +------------+ +----------+ +-----------+ +---------+ -> | 1 - stdout | | keyboard | -> | 0 - stdin | -> | command | +------------+ +----------+ +-----------+ | | +------------+ +---------+ -> | 2 - stderr | +------------+ ゼロから入力されて、1と2に出力される。 ...

 ⭐️

docker-composeよ、さらば(dockerでV2利用)

docker-composeが非推奨になってEOLになってるの忘れてた。 代わりにdocker compose使えってか。 時間かかるかなぁって構えてたけど、あっさり終わった。 さらば、docker-compose。 もうバージョン上げることもない。 何が変わったんやろ GAっていう言い方で解説されてる方がいた。 作者さんありがとう。 Docker Compose V2(Version 2) GA のまとめ #docker-compose - Qiita qiita.com そういえば、今年の春頃、何気にaptしてたらdockerのバージョンが20から23に上がってたことあったな。 なんでか知らんけどコンテナの名前が勝手に変わってた。 作者さんのサイトによると、 コマンドラインが、V1はdocker-composeで次のV2はdocker compose コンテナ名の命名規則が Compose V1 の「_」(アンスコ)から、Compose V2 は「-」(ハイフン)に変わる V1のdocker-compose.ymlファイルは、V2用にcompose.ymlに変更する必要あるけど、今はdocker-compose.ymlでも受け付ける 英文やけど、違いの解説もあった。 Migrate to Compose v2 | Docker Docs docs.docker.com --scaleとか--compatibilityの差があるでって書いてあるけど、使ってへんし関係なさそうやな。 自分の場合は運用シェル作って使ってるから、シェル本来の機能が使えるようにするだけでええ。 変更対処 春頃にコンテナの名前が変わったなって気づいたとき、dockerにcomposeの機能がくっついたのは知らんかった。 バージョン番号が23やったかと思ったら今は24みたい。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 nari@nafslinux-ubu22:/docker$ docker version Client: Docker Engine - Community Version: 24.0.5 API version: 1.43 Go version: go1.20.6 Git commit: ced0996 Built: Fri Jul 21 20:35:18 2023 OS/Arch: linux/amd64 Context: default Server: Docker Engine - Community Engine: Version: 24.0.5 API version: 1.43 (minimum version 1.12) Go version: go1.20.6 Git commit: a61e2b4 Built: Fri Jul 21 20:35:18 2023 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.6.22 GitCommit: 8165feabfdfe38c65b599c4993d227328c231fca runc: Version: 1.1.8 GitCommit: v1.1.8-0-g82f18fe docker-init: Version: 0.19.0 GitCommit: de40ad0 nari@nafslinux-ubu22:/docker$ docker composeにもバージョンがある。 ...

Dockerサービスのコンテナ作り直し

理由はわからんけど、たまにコンテナの挙動がおかしくなったり、ディスク食いすぎて領域不足になることもある。 dockerそのもののバージョンアップでエラーあったから、イメージ初期化とコンテナの作り直しやってみた。 今までは記憶に頼って作り直してたけど、忘れそうになってきたのでメモしとく。 バージョン上がってた 昨日気づいたらdockerのバージョンが20から23に上がってた。 21と22飛ばしてるのは、oracleとかみたいにリリース年の末尾2桁使ってるってことか。 先週にローカルvmで定期apt実行してたら、docker起動でエラー出たから原因探してコンテナ作り直した。 aptするときに更新対象が表示されるけど、ローカルvmは躊躇せず全部上げてくようにしてる。 このトラブル解決がええ勉強になる。 自分のlinuxにはローカルvmの中で動いてるものと、gcpで動いているものがある。 gcpが本番、ローカルvmが実験とか検証用。 ローカルvmで問題解決してからgcpの分もコンテナ作成しなおした。 今回はストレージドライバが原因 ローカルvmのはテキスト残すの忘れたけどdevicemapper使ってて、gcpで動いてるのはこんな感じでoverlayってなってた。 1 2 3 4 5 6 7 8 9 10 11 12 :(中略) Server: Containers: 5 Running: 0 Paused: 0 Stopped: 5 Images: 43 Server Version: 20.10.23 Storage Driver: overlay Backing Filesystem: extfs Supports d_type: true :(中略) エラーをjournalctl -xeu docker.serviceで確認してみた。 このメッセージ横に長くてめっちゃ貼り付けにくかった。 ...

aptでエラー

珍しくエラーになった 2023年1月になって急に更新できんくなった。 その後、年に1回やないかもしれなんけど、たまーに発生する。 めんどくさいけどcurlでキーを取り直したらええ。 1 2 3 取得:2 https://packages.cloud.google.com/apt cloud-sdk InRelease [6,361 B] エラー:2 https://packages.cloud.google.com/apt cloud-sdk InRelease 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY B53DC80D13EDEF05 こういうエラーメッセージも表示された。 1 2 3 W: 署名照合中にエラーが発生しました。リポジトリは更新されず、過去のインデックスファイルが使われます。GPG エラー: https://packages.cloud.google.com/apt cloud-sdk InRelease: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY B53DC80D13EDEF05 W: https://packages.cloud.google.com/apt/dists/cloud-sdk/InRelease の取得に失敗しました 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY B53DC80D13EDEF05 W: いくつかのインデックスファイルのダウンロードに失敗しました。これらは無視されるか、古いものが代わりに使われます。 インデックスファイルとか古いの使うのやめてほしいなぁ。 googleのcloudSDKでなんかうまく行ってへん。 NO_PUBKEYに続くキーは人によって違うのかも。 キーがあかんらしい キーが足りんのやったら足せばええんちゃうんか。 # apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B53DC80D13EDEF05 それでもまだaptで同じエラー表示される。 ...

 ⭐️

システムの起動状態確認スクリプト

unix/linuxは1番目のプロセスが起動してから、ツリー構造でいっぱい処理が起動してく。花火がパーっと上がる感じ。 その1つ1つを追いかけるのはけっこうたいへん。 見落としそうにもなるし。 なるべく直観的に、なるべく素早く状況をつかむためのスクリプト。 sshしたらほぼ必ず結果見る。 結論 sshしたコマンドラインでonlchkって入力すると、サービスが動いているかどうかを教えてくれて、そのバージョンも拾う。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 nari@nafslinux-ubu22:/gvis/script/proc$ onlchk ... linux CHECK END Description: Ubuntu 22.04.1 LTS ... httpd CHECK END Server version: Apache/2.4.52 (Ubuntu) ... smb CHECK END Version 4.15.9-Ubuntu ... docker CHECK END Docker version 20.10.17, build 100c701 === Google STATUS=== ...rtx1210-status > ...rtx1210-status Current status is disabled. ...Google -status ...Google -status jelly-fslinux us-east1-b e2-standard-8 192.168.100.218 xx.xx.xx.xx RUNNING === SSH Tunnel STATUS=== nafslinux.intra.gavann-it.com:43306:gcp-gvis-dklinux.intra.gavann-it.com:3306 nafslinux.intra.gavann-it.com:50022:gcp-gvis-dklinux.intra.gavann-it.com:20022 nafslinux.intra.gavann-it.com:53389:gcp-gvis-dklinux.intra.gavann-it.com:23389 nafslinux.intra.gavann-it.com:63389:gcp-gvis-dklinux.intra.gavann-it.com:33389 === Docker Container STATUS=== docker-cl_red8-1: redhat:8gvis Up 2 hours docker-cl_red9-1: redhat:9gvis Up 2 hours docker-cl_ubu22-1: ubu:22gvis Up 2 hours docker-sv_django-1: sv_django:4 Up 2 hours docker-sv_https-portal-1: steveltn/https-portal:1 Up 2 hours docker-sv_mariadb-1: mariadb:10.5.7 Up 2 hours docker-sv_php74-1: docker_sv_php74 Up 2 hours docker-sv_web118-1: nginx:1.18.0-alpine Up 2 hours svldap-admin: osixia/phpldapadmin:latest Up 2 hours svldap-server: osixia/openldap:latest Up 2 hours nari@nafslinux-ubu22:/gvis/script/proc$ 自分にとってはローカルlinuxは母艦みたいなもんで、その役割状態が今どうなってるのかがわかるようになってて欲しい。 ...

 ⭐️