のぴぴのメモ

自分用のLinuxとかの技術メモ

Amazon Linux2にdockerをセットアップする手順

Amazon Linux2上にdocker環境を作った時のメモです。 手順 インスタンスを立ち上げて、sshログインしてからの手順です。 (1)dockerのインストール sudo yum -y update sudo yum -y install docker (2)dockerサービスの起動 最初の"start"でdockerサービスを…

EC2でnetconsoleを使ってカーネルメッセージを取得する

EC2インスタンス(Amazon Linux2)で、netconsoleを使ってカーネルメッセージを別サーバに飛ばして見る設定のメモです。ncatを利用しnetconsoleサーバを一時的に作る方法とsyslogサーバに飛ばす方法の両方を説明します。

Linuxのテスト用に、ハングアップやパニック状態にするカーネルモジュールを作ってみた

テストのために、AWSのAmazon Linuxのインスタンスをカーネルレベルでハングアップさせたかったので、テスト用のカーネルモジュールを作ってみました。 できること カーネルのハングアップ(ping応答もできないレベル。プリエンプションをdisableにして実現) …

AWS CLIのセットアップ(RHEL/Mac)

RHELとmacの、AWS CLIのセットアップ手順です。公式ドキュメントに記載されてなくてハマった点を中心に記載しています。ちなみに、Amazon linuxはプリインストールされているので不要です。

MacでVisual Studio CodeをインストールしGit連携するまでの手順

MacにVisual Studio Code(以下、VS Code)をセットアップして、Git連携するまでの手順メモです。

AWS CodeCommitを使ってみた

AWS

1.AWS CodeCommitとは? 2.使ってみる 2.1 リポジトリを作ってみる 2.2 gitアクセス用のIAMアカウントを作ってみる 設定内容 手順 2.3 gitコマンドでcloneしてみる gitの初期設定 CodeCommitと接続しリポジトリをcloneする 3.gitコマンドでの、HTTPS Git認証…

clock_gettime()で負荷をかけたEC2をNetflix FlameScopeでのぞいてみた

はじめに FlameScopeとは この記事で書いていること セットアップ手順①(MacにFlameScopeをセットアップする) (1)前提パッケージのセットアップ (a)gitコマンドのセットアップ (b)pipコマンドのセットアップ (2)FlameScopeのセットアップ セットアップ手順②(…

subprocessでコマンド実行し、例外処理でOSErrorとコマンドのリターンコードの非ゼロ(エラー)をそれぞれハンドルするサンプル

サンプルコード 私自身の勉強用です。コードは、python2.7ベースです。 #!/usr/bin/env python # -*- coding: utf-8 -*- import sys import subprocess def call_subprocess(cmd): try: r = subprocess.check_output( cmd, stderr=subprocess.STDOUT ) sys.s…

プロセスのVSZ,RSSとfree,meminfoの関係を実機で確認する

psコマンドのVSZ(仮想メモリ)、RSS(物理メモリ)の挙動について質問を受けたので、簡単な検証プログラムを作ってmalloc/freeのメモリ確保/解放や、データの読み込み・書き込みとVSZ/RSSの関係性及び、freeコマンドとmeminfo情報でシステムワイドなメモリの挙…

Linuxのclock_gettime()でナノ秒の時刻取得をするCのサンプル

1.はじめに 2.コードと実行例 (1)コード (2)実行例 3.説明 (1)clock_gettime(CLOCK_REALTIME, &ts) (2)localtime_r( &ts.tv_sec, &tm) (3)printfで出力 1.はじめに clock_gettime()で時刻を取得し時刻をナノ秒で表示するサンプルです。時刻取得といえばgetti…

最小構成でmanがない場合の対処方法->man-pagesをインストール

結論 タイトル通りですが、備忘録です。 CentOSやRHELで最小構成でインストールした場合、最小限のコマンドマニュアルしかなくて、man(2)、man(3)・・・は、入っていないのですね。 結論から言うと、そんな時は"man-pages"(日本語も必要な場合は、man-pages-…

freeコマンドとmeminfoを取得してCSV形式で保存するシェルスクリプト

はじめに ツール説明 シェルスクリプト 使い方 出力結果 はじめに 昔作った/proc/meminfoを取得時刻情報取得スクリプトを改造して作った、freeコマンド+/proc/meminfoを取得して、CSV形式で出力するシェルスクリプトです。 nopipi.hatenablog.com ツール説明…

"LB + Web x 2 + RDB"マルチAZ”でWordPressをインストールするCloudFormation

はじめに 構成概要 CloudFormationコード はじめに 前にAWSさんの体験ハンズオンで経験した"LB + Web x 2 + DB x 2"環境構築して、そこに動作確認としてWordPressをインストールして動かすところまでの手順を、CloudFormationを使って自動化して見ました。Wo…

SRPM展開&Gun global解析&squashfs化する自作ツールの説明

1.ツールができること 2.インストール方法 2.1 前提環境 2.2 前提パッケージ 2.3 Gnu Globalのインストール 2.4 ツールのセットアップ 2.5 ディレクトリの準備 2.6 sudo設定 3.使い方 3.1 簡単な使い方 3.2 引数の説明 1.ツールができること "srpm2html.py"…

SRPMインストール先を指定する方法

1.普通にSRPMをインストールした場合 2.インストール先ディレクトリを指定する方法 2.1 RPMのマクロ定義ファイル("~/.rpmmacros")で指定 (1)マクロ定義ファイルの設定 (2)SRPMのインストール 2.2 コマンド引数でインストール先ディレクトリを指定する方法 3.…

cloudformation VPC(PubSub x 2, PrivateSub x 2) + 1 Instance(t2.micro, AmazonLinux) を作るテンプレート

AWS

概要 自分用のメモです。"一つ前の記事"のVPCのPublicASubにインスタンスを一つ追加したテンプレートです。 作成されるもの VPC × 1 サブネット × 4 PubASub CIDR:10.0.1.0/24, AZ: ap-northeast-1a ルートテーブル: インターネットへのルーティングあり Pub…

cloudformation VPC(2つのパブリックsub+2つのプライベートsub)を作るテンプレート

AWS

概要 自分用のメモです。下記のようなvpcを作るテンプレートです。 作成されるもの VPC × 1 サブネット × 4 PubASub CIDR:10.0.1.0/24, AZ: ap-northeast-1a ルートテーブル: インターネットへのルーティングあり PubBSub CIDR:10.0.2.0/24, AZ: ap-northeas…

ubuntuで古いカーネルを削除する方法(/bootの空きが足りない時とか)

1.はじめに 2.対処方法(古いkernelの削除) (1)現在のカーネルバージョンの確認 (2)インストール済みカーネルのバージョン一覧を確認 (3)コマンドをテスト実行確認(DryーRun) (4)パッケージを削除する (5)削除されたか確認 3.参考 1.はじめに ubuntuで「ソフ…

ansibleのベストプラクティスなplaybookレイアウトを作るシェル

ansibleのベストプラクティスなplaybookディスクレイアウトがあります。 Best Practices — Ansible Documentation このディレクトリを手動で作成するのが面倒なので簡単なシェルを作成しました。 こんなディレクトリレイアウトとmain.ymlの空ファイルを作成…

gitの初期設定をしてGitHubからレポジトリをcloneするまでの手順

git

はじめに git初期設定 ユーザ設定&pushモード設定 git認証情報の自動保存設定 git Proxy設定(必要があれば) git を使いやすくする設定 コミットログを見やすくするコマンドのエリアス SSH秘密鍵設定 シェル設定 シェルのプロンプトにブランチ名を表示する G…

KickStartその3(ネットワーク構成例 -vlan、bonding構成も)

0.関連記事一覧 1.はじめに 2.ネットワーク構成例 2.1静的IP構成 (1)構成イメージ (2)KickStart設定例 2.2DHCP設定の場合 (1)構成イメージ (2)KickStart設定例 2.3複数セグメント設定 (1)構成イメージ (2)KickStart設定例 2.4VLAN設定 (1)構成…

KickStartその2(ks.cfg設定ファイルの説明)

0.関連記事一覧 1.はじめに 2.ネットワーク設定 (1)スタティック設定例 (2)DHCP設定例 3.ディスク設定 (1)ブートディスク構成例*1 (2)上記構成例の場合のKickStart設定 4.インストールパッケージ設定 5.ユーザ設定 (1)rootユーザのパスワード設…

KickStartその1(KickStartによるLinux自動インストール概要)

0.関連記事一覧 1.はじめに 1.1KickStartとは 1.2ざっくりした使い方 2.利用手順 2.1ファイル(ks.cfg)の編集 2.2ファイル検証 2.3インストーラを起動しキックスタートをローディングする 2.4インストール完了 3.補足(kickstartフ…

Macbook Air(2010/A1370)にUbuntu16.04 LTS(Xenial Xerus)を入れてみた

1.はじめに 2.準備(インストールメディア) インストールメディアを用意 USBメモリブートメディア作成 3.インストール 4.MacBook用のubuntu設定 ファンクションキーの反転 マウス変更 5.使いやすくするために ランチャーへの登録 アップデート GUIから実…

gccのインラインアセンブラで使えるx86系の汎用レジスタの制御子(Constraints)

一覧 インラインアセンブラ制御子レジスタ名称 x86(32bit)x86_64(64bit) aeaxrax bebxrbx cecxrcx dedxrdx Sesirsi Dedirdi r8-r8 r9-r9 r10-r10 r11-r11 r12-r12 r13-r13 r14-r14 r15-r15 ネタ gccのマニュアル(6.44.3 Constraints for asm Operands) IntelのCPU…

32bitアプリの2038年問題に対してglibc介さずシステムコールを直接呼べば何とかなるかなという浅はかな考えがやっぱり浅はかだった件

はじめに 32bitアプリの2038年問題回避方法 今回の実験の安直な発想 実験のコード コードの説明 コード(time.c) 実行結果 64bit環境 32bit環境 カーネル挙動を確認する ftrace(trace-cmd)での確認方法 トレース結果 64bitアプリからのカーネルトレース(…

(linux)x86(32bit)でアセンブラでシステムコールを呼び出す方法。

はじめに 2015.12.28追記 アセンブラでシステムコールを呼びだす方法 参考 はじめに 標準Cライブラリ(Linuxではglibc)に頼らず、システムコールを呼びして見たいなとの思いから、勉強がてらアセンブラでシステムコールを呼びだす方法をまとめてみました。 20…

32bitと64bitプロセスのtime_tのbitsを実機確認してみる

サンプルプログラム 実機確認 32bitプロセスの場合 64bitプロセスの場合 蛇足 32bitプロセスと64bitプロセスで、glibcのtime_t変数のビット数がどう違うのか確認してみました。 サンプルプログラム #include <stdio.h> #include <stdlib.h> #include <sys/time.h> #define sizeof_bits(x) (i</sys/time.h></stdlib.h></stdio.h>…

(ftrace)trace-cmdでfunction_graphを使ってみる

はじめに ftraceを使うためのセットアップ (1)kenelのリビルド (2)debugfsの/sys/kernel/debugへのマウント (3)trace-cmdのインストール。 trace-cmdを使う 基本的な使い方(trace-cmdからコマンドを実行する) 実行中のプロセスのトレースを取得する はじめに…

データ圧縮アルゴリズムを整理してみた

データ圧縮(可逆圧縮)方式についてまとめました。 まとめ 可逆圧縮の実用的アルゴリズムのほとんどは、LZ法を元にしている LZは、ジェイコブ・ジヴ(Jacob Ziv)とエイブラハム・レンペル(Abraham Lempel)が開発した圧縮アルゴリズム LZ法は、LZ77と、LZ78…