サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
2024年ランキング
genzouw.com
ゲンゾウ用ポストイット シェル / Bash / Linux / Kubernetes / Docker / Git / クラウドのtipsを発信。 はじめにDocker コンテナを運用する際、仮想化された環境内で動作するコンテナプロセスを最小限に抑えることで無駄なサーバーリソースの消費を抑え、コストダウンにつなげることができます。 しかし、場合によっては何もしないコンテナを起動しておき、そのままにしたいというケースがあります。 具体的には AWS ECS 環境や CKE 、Kubernetes 環境でコンテナを立ち上げ、アタッチ ( 接続 ) して運用作業を行いたい、といった場合です。 そんなときに役立つのが「永遠に終了せず何もしない」コンテナです。 毎回起動コマンドをどうしたらよいか悩むので、選択肢を整理するためにまとめてみました。 検証環境$ uname -moi arm64 unk
ゲンゾウ用ポストイット シェル / Bash / Linux / Kubernetes / Docker / Git / クラウドのtipsを発信。 はじめにgit prune コマンドは掃除用の Git サブコマンドです。 Git のコミット履歴の実体はハッシュ値を一意キーとする "Git オブジェクト" の集合体です。 Git オブジェクトのうち、到達不能(不要)になったものを掃除するために使用するのが git prune コマンドです。 ブランチ名やタグ名を起点として、コミットツリーからたどることができなくなった要素を 到達不能となった Git オブジェクト と呼びます。 git pruneは基本的に直接実行しません。 「ゴミ掃除コマンド」であり、git gc コマンドの 子コマンド ( git gc コマンドの中で実行されるコマング群の 1 つ ) です。 検証環境$ uname
ゲンゾウ用ポストイット シェル / Bash / Linux / Kubernetes / Docker / Git / クラウドのtipsを発信。 はじめにKubernetes のマニフェストファイル内に環境変数を埋め込み、出力内容を動的に変更したい場合がありました。 kustomize や helm といったツールを利用することで Kubernetes のマニフェストファイルに変数を埋め込むことはできます。 しかし、そこまで大層な仕組みを導入するような手間を掛けたくありません。 sed を使う方法もありますが、可読性は低くなります。 そんな場合、 envsubst コマンドを利用することで実現できました。 テキストファイルをテンプレートエンジンのとして利用できるシンプルで便利なコマンドです。 検証環境$ uname -moi x86_64 x86_64 GNU/Linux $ bash
はじめにsed コマンドで s 内部コマンドを使って置換処理を行った場合、 条件に該当する文字列が見つからず置換が行われなかったとしても、終了ステータス $? は 0 になります。 実際に置換されたのか?置換されなかったのか?を終了ステータス $? で判定する方法について紹介します。 検証環境$ uname -moi x86_64 MacBookPro11,4 Darwin $ sed --version | head -n 1 sed (GNU sed) 4.8準備サンプルテキストデータ動作確認のために置換処理に利用するテキストファイル ( test.txt ) を作成します。 cat <<EOF >test.txt この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。 EOFsedで置換が行われた場合、行われなかった場合の終了コードを確認sedで 置換が行
はじめにGit で誤って git reset 、 git rebase をしてしまって冷や汗が出たことがある方は少なくないはずです。 僕も何度自分のローカルブランチでやってしまったことか。 焦りながらも git reflog で最後の変更を見つけ出し、なんとかもとに戻せた! という場合もあれば、 うまく戻せずに結局最初から開発やり直し... となったこともあります。 git reflog の操作が難しいですよね。 変更がもっとかんたんにもとに戻せたら、と常々思っていましたが、そんな問題にぴったりのツールを見つけました。 検証環境$ uname -moi x86_64 MacBookPro16,1 Darwin $ zsh --version | head -n 1 zsh 5.8 (x86_64-apple-darwin19.6.0) $ git version git version 2
ゲンゾウ用ポストイット シェル / Bash / Linux / Kubernetes / Docker / Git / クラウドのtipsを発信。 はじめにKubernetesのマニフェストファイルやDockerのビルドファイル、Docker Composeの設定ファイルを閲覧、編集することが増えてきました。 それらのファイルの中で bash -c というコマンドが実行されていることがあります。 bash の新しいプロセスを立ち上げ、 -c オプションで渡されたコマンドを実行する命令になります。 ps コマンドを使い、実行中の bash -c プロセスを見ていたところ、プロセスツリーの表示が時々で異なっていたため不思議に思い調べてみました。 検証環境$ uname -moi x86_64 x86_64 GNU/Linux $ bash -version | head -n 1 GNU b
ゲンゾウ用ポストイット シェル / Bash / Linux / Kubernetes / Docker / Git / クラウドのtipsを発信。 はじめにシェルスクリプトはお世辞にも読みやすいコードとは言えません。 なのでできる限りシンプルに、短く記述したいのですが、工夫をしないと ログ出力 処理がごちゃごちゃしてしまいます。 例えば、すべての出力、エラー出力をログとして保存しようとすると以下のような記述ができます。 #!/usr/bin/env bash LOG_OUT=/tmp/stdout.log LOG_ERR=/tmp/stderr.log # 標準出力 echo foo1 >>$LOG_OUT 2>>$LOG_ERR echo foo2 >>$LOG_OUT 2>>$LOG_ERR echo foo3 >>$LOG_OUT 2>>$LOG_ERR # 標準エラー出力 ls
ゲンゾウ用ポストイット シェル / Bash / Linux / Kubernetes / Docker / Git / クラウドのtipsを発信。 はじめにDocker Compose の初回起動時のみ、ライブラリのインストールを実行したい場合があります。 NodeJS の場合 yarn install や npm installPHP の場合 composer installRuby on Rails の場合 bundle installいい方法が無いか考えた末、 docker-compose.yaml の command 属性に工夫して解決させてみました。 検証環境$ docker-compose --version docker-compose version 1.29.0, build 07737305Docker Compose 初回起動時にライブラリをインストールしておかない
ゲンゾウ用ポストイット シェル / Bash / Linux / Kubernetes / Docker / Git / クラウドのtipsを発信。 はじめにman 5 crontab を読んでいてたまたま見つけたので紹介。 crontab の実装の違いにより使える、使えないがあるが、システム起動時に 1 度だけコマンドが実行されるような設定をかんたんに追加できます。 検証環境$ uname -moi x86_64 unknown GNU/Linuxman ページに書かれているman 5 crontab をしたところ以下のように記述されています。 string meaning ------ ------- @reboot Run once, at startup. @yearly Run once a year, "0 0 1 1 *". @annually (same as @yearl
ゲンゾウ用ポストイット シェル / Bash / Linux / Kubernetes / Docker / Git / クラウドのtipsを発信。 はじめにUNIX 上で動作するスクリプトは、1 行目に #! から始まる 1 行を記述します。 これによりスクリプトの実行系を認識させることができます。 シェルスクリプトの場合は #!/bin/sh 、 #!/usr/bin/bash 、 #!/usr/bin/env bash と記述します。 Ruby スクリプトの場合は #!/usr/bin/ruby 、 #!/usr/bin/env ruby と記述することが多いでしょう。 この 1 行目の記述のことを「 シバン 」とか「 Shebang 」と呼びますが、今ひとつこのあたりの仕組が理解できてなかったため、シバンでいろいろ遊んでみることにしました。 検証環境$ uname -moi x86
ゲンゾウ用ポストイット シェル / Bash / Linux / Kubernetes / Docker / Git / クラウドのtipsを発信。 はじめに現職ではAWSよりもGCPにインフラリソースを多く配置しています。 gcloud コマンドを使って作業をする事が多いですが、更に最近ではGCPプロジェクトも複数またがって作業する事が増えてきました。 かんたんにGCPプロジェクトを切り替えられるかが作業の効率化のために重要です。 かんたんにGCPプロジェクトをスイッチし、Compute Engineインスタンスにssh接続するためのaliasを作成したので紹介します。 検証環境$ uname -moi x86_64 MacBookPro16,1 Darwin $ bash -version | head -n 1 GNU bash, version 5.0.18(1)-release
はじめに例えば、ログファイルから最新の情報を閲覧するための方法として tail コマンドが利用できます。 tail -f のようにオプションを指定することでログファイルを監視し、コンテンツが追加されたときに自動的にターミナル上に出力させることができます。 tail コマンドを使わず、 less コマンドでも同じような機能が提供されており、若干高機能です。 less コマンドの意外と知られていない機能を紹介します。 検証環境$ uname -moi x86_64 x86_64 GNU/Linux $ bash -version | head -n 1 GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu) $ less --version | head -n 2 less 458 (POSIX regular express
ゲンゾウ用ポストイット シェル / Bash / Linux / Kubernetes / Docker / Git / クラウドのtipsを発信。 はじめに最近Dockerfileを作成したときに、 RUN コマンド内で改行付き情報を echo したかったのですが、多少ハマってしまったので共有します。 「2019-07-17 追記」コメント欄よりコメントを下さった Nig さん、ありがとうございます。勉強になりました。 以下のような構文を利用する際に、シングルクォーテーション( ' )で記述しないといけない部分がダブルクォーテーション( " )になっていたことが原因とのことでした。 *※debian系のLinuxOSを利用している場合、シングルクォーテーションの前の $ を削除しないといけないようです。不要な $ が出力されてしまいました。 FROM centos:centos7 RUN
ゲンゾウ用ポストイット シェル / Bash / Linux / Kubernetes / Docker / Git / クラウドのtipsを発信。 はじめに仕事ではGoogle Kubernetes Engine (GKE)を使ってのKubernetesクラスタ構築をしています。 仕事以外の時間でもKubernetesクラスタをゴリゴリ触ってみたいと思いました。 そこで、家の使っていない古いPCを使ってKubernetesクラスタをいちから作成してみることにしました。 (2020-01-26 追記) 当エントリでまとめたセットアップ手順をシンプルなシェルスクリプトにまとめ、公開しました。 GitHub - genzouw/standalone_kubernetes_cluster: This simple shell script helps build a "standalone" K
ゲンゾウ用ポストイット シェル / Bash / Linux / Kubernetes / Docker / Git / クラウドのtipsを発信。 はじめに最近、Bash で特定の文字 ( あるいは文字列 ) で連結されている文字列を分割して配列に代入したい場合の方法について聞かれることがあったのでまとめました。 検証環境$ uname -moi x86_64 x86_64 GNU/Linux $ bash -version | head -n 1 GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)大きく 2 つのケースを考えてみる文字列の分割 ( split ) について、大きく 2 つのケースを考えてみます。 単一の文字で分割複数の文字 ( 文字列 ) で分割単一の文字で分割する方法1.変数参照時に置換するBas
ゲンゾウ用ポストイット シェル / Bash / Linux / Kubernetes / Docker / Git / クラウドのtipsを発信。 はじめにプロジェクトで大量のファイルを扱う必要があり、 ファイルディスクリプタの話が出てきたので整理してみました。 検証環境$ uname -moi x86_64 x86_64 GNU/Linux $ cat /etc/os-release NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="7" PRETTY_NAME="CentOS Linux 7 (Core)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:centos:centos:7" HOME_URL="https://www.centos
ゲンゾウ用ポストイット シェル / Bash / Linux / Kubernetes / Docker / Git / クラウドのtipsを発信。 はじめにChromeでjQueryを使用していないページを開デバッグしている時の話です。 開発者ツールの「コンソール」パネルを開きながら $ を入力すると、何やらオートコンプリート機能により候補がでてきます。 $("body") と入力するとオブジェクトが取得できています。 ずっと不思議に思ってはいたのですが、調べてみました。 検証環境Version 81.0.4044.138 (Official Build) (64-bit) Chromeの開発者ツール独自の機能だったChromeの開発者ツール、特にコンソールページに関するドキュメントサイトにかかれていました。 上記のサイトを参考に $ に関わる機能を見ていきます。 $_$_ は最後に評価
ゲンゾウ用ポストイット シェル / Bash / Linux / Kubernetes / Docker / Git / クラウドのtipsを発信。 はじめにdocker run コマンドや docker exec コマンドを実行する際に -i オプションと -t オプションを付与することが多いですが、 理解をしていないとパイプとつなぐ際に思わぬ挙動をするので整理しました。 検証環境$ bash -version | head -n 1 GNU bash, バージョン 5.0.7(1)-release (x86_64-apple-darwin18.5.0) $ docker --version Docker version 18.09.2, build 6247962各種オプションの有無での挙動の違い-i オプション有り、 -t オプション有りまずは -it オプションつきでDockerコ
ゲンゾウ用ポストイット シェル / Bash / Linux / Kubernetes / Docker / Git / クラウドのtipsを発信。 はじめに以前、シェルスクリプトからhtmlのスクレイピングをしたときの方法を共有します。 Go言語で作られたpupというツールを使いました。 検証環境$ uname -moi x86_64 x86_64 GNU/Linux $ bash -version GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)pup とはコマンドラインの HTML 解析ツールです。 標準入力から情報を読み込み、標準出力に結果を出力します。 それだけだと cat と同じなのですが、 HTML の要素をフィルタリングすることができます。フィルタリングのための HTML 要素指定方法として、一般的に
ゲンゾウ用ポストイット シェル / Bash / Linux / Kubernetes / Docker / Git / クラウドのtipsを発信。
ゲンゾウ用ポストイット シェル / Bash / Linux / Kubernetes / Docker / Git / クラウドのtipsを発信。 はじめに既存の Web アプリで「Amazon Cognito」認証を利用する(その1:処理フローの整理) | ゲンゾウ用ポストイット で「Cognito」の認証の流れを整理しました。 ここからは、PHP のサンプルプログラムを実装してより具体的に理解を深めていきたいと思います。 早速進めて行こうと思います。 ちなみに、 PHPのサンプルプログラムはGithubで公開しているので、参考にしていただければと思います。 ( 実行するだけであれば、 「Docker Compose」 がインストールされていれば動きます。 ) GitHub - genzouw/aws-cognito-exampleAWS Cognito の作成、設定まずは AWS 側
このページを最初にブックマークしてみませんか?
『ゲンゾウ用ポストイット | シェル / Bash / Linux / Kubernetes / Docker / Git / ...』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く