ip netns でブリッジを作成する

Linuxで動かしながら学ぶTCP/IPネットワーク入門 を読んでいます。 この本の中で登場した ip netns コマンドの使い方をメモしておきます。 ブリッジを作成する

「DNSがよくわかる教科書」を読んだメモ

TLD TLD には ccTLD(Country code top-level domain) と gTLD(Generic top-level domain) がある ccTLD: .jp や .uk などの国や地域に割り当てられる gTLD: 国や地域の制限は無い。 .com や .net など。ただし .edu や .gov などには利用制限がある スタブリ…

iPad から Ubuntu の Vino に接続する

Vino を使うと、実際のデスクトップ画面に接続できます。 環境 Ubuntu 20.04.2 LTS iPad Air Ubuntu の設定 設定 > 共有 > 画面共有 から Vino を有効にしてください。 Vino が起動していないときは /usr/lib/vino/vino-server で手動起動できます。 iPad の…

ip netns でネットワークセグメントを作成する

Linuxで動かしながら学ぶTCP/IPネットワーク入門 を読んでいます。 この本の中で登場した ip netns コマンドの使い方をメモしておきます。 ネットワークセグメントを 2 つ作成し、通信できるようにする 動作確認 $ sudo ./create_netns.sh $ sudo ip netns e…

golang で ping コマンドを作る

golang と raw socket の勉強のために ping コマンドを作りました。 自分がつまずいた ICMP の受信処理について書いておきます。 勉強用なので golang.org/x/net/icmp などは使っていません。 リポジトリ: https://github.com/hiroygo/goping 環境: Ubuntu 2…

「Linuxで動かしながら学ぶTCP/IPネットワーク入門」用の Vagrantfile

Linuxで動かしながら学ぶTCP/IPネットワーク入門 を読んでいます。 勉強用仮想マシンの Vagrantfile を作ったので貼っておきます。 # -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |config| config.vm.box = "generic/ubuntu2004" con…

docker コンテナで crond を使い aws cli を定期的に実行する

docker-compose で起動させたコンテナ上で定期的に aws cli を実行させたかったので試してみました。 ファイル構成 $ ls Dockerfile crontab docker-compose.yml Dockerfile 定期的な処理には busybox crond を使います。 update-ca-certificates しているの…

join コマンドの練習

join コマンドを使ったファイルの結合を練習してみます。 テスト用にファイル breeds と dogs を用意しました。 2 つとも 1 行目はヘッダです。データはソートされていないです。 $ cat breeds id breed 4 maltese 1 poodle 3 frenchbulldog 2 pomeranian 5 …

サービスのログが journald に収集されるか試す

journald について勉強しています。systemd が起動するサービスの標準出力と標準エラー出力が journald に収集されるか、 テスト用のログを出力するサービスを作り、試してみました。 テスト用のログ出力スクリプト 以下のスクリプトを /home/pi/testsh/test…

「Linuxのしくみ」を読んだメモ

試して理解 Linuxのしくみ 実験と図解で学ぶOSとハードウェアの基礎知識 第3刷 を読み終えました。自分用に整理したメモを残しておきます。 勉強用リポジトリ: https://github.com/hiroygo/linux-in-practice 調査用のコマンドやファイル /proc/cpuinfo ファ…

Ubuntu でパーティションを作成した時のメモ

1GB のディスク /dev/sdb に 256MB のパーティションを 新規作成し、システムにマウントします。 パーティション作成には fdisk を使います。 ファイルシステム作成には mkfs を使います。 /dev/sdb の情報 $ sudo fdisk -l /dev/sdb Disk /dev/sdb: 1 GiB, …

Vagrant から VM にディスクを追加する

環境 $ VBoxManage -v 6.1.18r142142 $ vagrant -v Vagrant 2.2.14 Vagrantfile Vagrantfile に設定を記述することで、 VM にディスクを追加します。 ENV["VAGRANT_EXPERIMENTAL"] = "disks" と config.vm.disk :disk, name: "backup", size: "1GB" で設定し…

CentOS7 に Vagrant をインストールしたときのメモ

マシン設定を変更する BIOS から Intel(R) VT-d を有効にした VirtualBox のインストール 参考: https://phoenixnap.com/kb/how-to-install-virtualbox-centos-7 正しく動作していたら sudo systemctl status vboxdrv で Active: active となるはずです $ su…

minikube をいじった時のメモ

minikube コマンド minikube 起動: sudo /usr/local/bin/minikube start --vm-driver=none minikube 停止: sudo /usr/local/bin/minikube stop kubectl コマンド 詳細: https://kubernetes.io/ja/docs/reference/kubectl/cheatsheet/ オブジェクト作成: kube…

nmcli コマンド

固定IPなども設定できて、便利です。 参考リンク www.winin.tokyo

YAMAHA ルータで RIP を使用する

2台のルータを RIP でルーティングします。 RT1 と RT2 はどちらも RTX810 です。 設定は簡単で rip use on するだけで動作します。 たぶん以下は RIPv1 で動作するはずです。 RT1 console prompt RT1 ip lan1 address 192.168.1.1/24 ip lan1 rip send off …

Docker Compose で WordPress を構築

さわって学ぶクラウドインフラ docker基礎からのコンテナ構築 の 第7章 複数コンテナをまとめて起動するDocker Compose を ラズパイで試しました。mysql の Official Images に linux/arm がなかったので hypriot/rpi-mysql を使いました。

Google Cloud Platform と golang で画像掲示板を作る

作成した画像掲示板 概要 リポジトリ: https://github.com/hiroygo/gcpbbs Google Cloud Platform、Web API、golang を勉強するために画像掲示板を作ってみました。 使用する Google Cloud Platform ホスティング: App Engine(golang) 投稿の保存: Cloud SQL…

Raspberry Pi 上の Ubuntu コンテナで apt update すると The repository 'http...' is not signed. が発生する

現象 $ docker run --rm -it ubuntu:21.04 root@f35370427219:/# date Thu Jan 1 00:00:00 UTC 1970 root@f35370427219:/# apt update Get:1 http://ports.ubuntu.com/ubuntu-ports hirsute InRelease [269 kB] Get:2 http://ports.ubuntu.com/ubuntu-ports …

ローカル環境から Cloud SQL に Unix ソケットで接続する

詳細な解説 https://cloud.google.com/sql/docs/mysql/quickstart-proxy-test https://cloud.google.com/sql/docs/mysql/connect-admin-proxy?hl=ja#unix-sockets Google Cloud Console から Cloud SQL Admin API を有効にする Cloud SQL への接続例 $ wget …

golang で URL を結合する

golang で URL を結合する url.Parse と path.Join を使う path.Join だけだと正しく結合できない場合がある1 実行結果の https:/golang.org/pkg/net/url のようにスラッシュが削除される サンプルコード The Go Playground で実行 package main import ( "f…

golang で UUID を使う

golang で UUID を使う ライブラリは https://github.com/google/uuid を使います GoDoc: https://pkg.go.dev/github.com/google/uuid サンプルコード package main import ( "fmt" "github.com/google/uuid" ) func main() { // uuid.NewRandom() はランダ…

Raspberry Pi 4 でローカル DNS サーバを立てる

Raspberry Pi 4 と BIND 9 で自宅ネットワーク用の DNS サーバを立てました。 ラズパイに sv.homenetwork というドメイン名を付けてみます。 ラズパイ情報 $ cat /etc/os-release PRETTY_NAME="Raspbian GNU/Linux 10 (buster)" NAME="Raspbian GNU/Linux" V…

Raspberry Pi 4 のセットアップ

Raspberry Pi 4 のセットアップ ラズパイ4スターターキット 4GB版 を秋月電子で購入しました 行った設定などを書いておきます OS 情報 ラズパイ4スターターキット 4GB版 には Raspbian インストール済 microSD が付属してます そのため OS は付属の …

golang でシグナルを扱う

golang でシグナルを扱う Go でシグナルを扱うには singal.Notify を使う 以下のサンプルコードでは SIGINT = ^C を受信するとアプリケーションが停止する sigC := make(chan os.Signal, 1) のように必ずバッファありチャネルが必要 os.Interrupt と os.Kill…

Go言語による並行処理 を読み終えました

Go言語による並行処理 を読み終えました かなり詳しく解説されてます。おすすめです context.Context などについて知識を深めることができました 自分用のサンプルコードリポジトリ https://github.com/hiroygo/concurrency_in_go

sed で置換する

実行例 名前が チ で終わる犬に忠犬をつける $ cat sample.xml <root> <dog name="ソフィア" age="7" /> <dog name="ポチ" age="5" /> <dog name="コロ" age="10" /> <dog name="ハチ" age="5" /> </root> $ sed -i -E 's/([ア-ン]+チ)/忠犬\1/g' sample.xml $ cat sample.xml

Real World HTTP を読み終えました

感想 https://www.oreilly.co.jp/books/9784873119038/ Web 技術の勉強のために読みました。 Go によるサンプルコードも掲載されています。 サンプルコードを見ながら自分でも実装することで かなり勉強になったと思います。 curl の使い方も詳しくなりまし…

VLC が終了しないときに kill するワンライナー

ps h -C vlc | awk '{print $1}' | xargs kill -9 シグナル一覧はこれ: https://man7.org/linux/man-pages/man7/signal.7.html エイリアスにしておいた alias killvlc='ps h -C vlc | awk '\''{print $1}'\'' | xargs kill -9'

Ubuntu から Kindle にファイル転送できない場合の直し方

Ubuntu から Kindle にファイル転送できない場合の直し方 現象 Ubuntu から Kindle に USB 経由でファイル転送できない 以下は表示されるメッセージ $ cp ~/test.pdf /media/hoge/Kindle/documents cp: 通常ファイル '/media/hoge/Kindle/documents/test.pdf…