Redisのslave-read-only設定の挙動

概要 Redisのレプリケーション設定にslave-read-only設定がある。 デフォルトはyesになっていてslaveにデータは書き込めないようになっている。 設定をnoにするとslaveにデータが書き込めるようになるがそのデータはそのslaveサーバーにしか存在しない状態に…

ブログ楽しいですよ

はじめに この記事はwrite-blog-every-week Advent Calendar 2018 16日目の記事です。私が常日頃ブログについて考えていることなどを書いてみたいと思います。 ブログを書くようになったきっかけ ブログを書き始めたきっかけは技術的に困ってググったときに…

TerraformでGCSのライフサイクル設定

概要 GCPのGCS(ストレージ)でライフサイクルをTerraformで設定する例です。 例 バケット内のオブジェクトが365日経過後に自動削除されるよう設定しています。 resource "google_storage_bucket" "image-store" { name = "image-store-bucket" location = "as…

UbuntuでOS再起動後もiptablesの設定を有効化させる方法

概要 UbuntuでOS再起動後iptablesの情報が読み込まれずハマった。 インストール apt-get install iptables-persistentこのパッケージを入れると設定ファイルに書き出してくれる。依存関係で netfilter-persistent パッケージがインストールされる。 /etc/ipt…

rsyncの時ユーザ名を明示しないと出るエラー

rsyncを行う際にユーザ名を指定しないとエラーが出ることがある。 その際はユーザを指定することでrsyncが実行出来る。 エラー $ rsync -avz example.com:/tmp/ . usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_add…

Gitの設定を仕事用、個人用で分ける

概要 1台のPCで仕事用、個人用それぞれのGitリポジトリに接続する場合、 git configの設定を都度行うのは面倒です。そこで~/.gitconfigにディレクトリ毎に仕事用、個人用の設定を行うことで、 ~/work/以下にcloneしたリポジトリなら仕事用の設定 ~/personal/…

Macのhosts切り替えアプリ『Gas Mask』

Mac

概要 Macで/etc/hostsを書き換えて開発環境をブラウザで開くことが多々あります。 毎回Vimなどで書き換えるのが面倒だなと思っていたところGasMaskという便利なソフトウェアがありました。事前にhostsファイルを登録しておくと数クリックでhostsを切り替える…

UbuntuでIPMIのアドレスを確認する手順

概要 OSのコマンドでIPMIのアドレスを確認する手順です。 IPMIアドレスが不明の場合でもOSが起動している状態のままIPMIのアドレスを確認することが出来ます。 準備 インストール ipmiコマンドを使えるようにパッケージをインストールします。 apt-get updat…

シェルスクリプトでのインクリメント

#!/usr/bin/env bash COUNT=1 while : do echo $((COUNT++)) sleep 1 done; COUNT=0 にすると 0 1 2 3となるため、 =1 にしておく。

Jenkinsで特定の文字が含まれているジョブを検索

Jenkinsのジョブで特定の文字が入っているものを検索したい時がある。例えば docker コマンドを使っているジョブを検索する場合、 Jenkinsサーバーで以下コマンドで検索出来る。 find /var/lib/jenkins/jobs/ -maxdepth 2 type f -name config.xml | sed 's/…

CLIでGistにファイルをアップロード

概要 GitHubのスニペットサービスのGistにターミナルからアップロードする手順です。 インストール brew install gist 初期設定 gist --login以下のようにログインプロンプトが出ますのでログインします。 $ gist --login Obtaining OAuth2 access_token fro…

GitHub Issueリーダーの『Jasper』が超絶便利

Jasper jasperapp.io 概要 最近GitHub Issueベースで業務を行っています。 複数のリポジトリで各リポジトリ毎にIssueが立てられるのでブラウザだけでは大変見づらい状況になってきました。 メールで通知やSlackへ通知を飛ばしたりでなんとかやりくりしていた…

/usr/lib/systemd/system/と/etc/systemd/system/

概要 /usr/lib/systemd/system/ ※CentOSの場合 /lib/systemd/system/ ※Ubuntuの場合 と /etc/systemd/system/ のUnit設定ファイルは同名ファイルがある場合 /etc/systemd/system/が優先される。 使い分け デーモンの起動オプションを変更する場合/usr/lib/sy…

aptのリポジトリ操作

リポジトリファイル保存ディレクトリ /etc/apt/sources.list.d/ apt-key一覧表示 apt-key list リポジトリを削除する場合 apt-keyから該当のキーを削除する。 apt-key listからIDを取得して apt-key del xxxxxで削除可能次に該当リポジトリファイルを削除 /e…

Dockerのmulti-stage builds

業務でAerospikeのPrometheusのexporterを使う機会があり、 そのDockerfileを見てみたところFROMが2個書いてありなんだろうと思っていましたが Docker17.05系からサポートされたmulti-stage buildsという機能でした。asprom/Dockerfile at master · alicebob…

dateコマンドのゼロパディングオプション指定

$ date "+%Y/%m/%d %H:%M" 2018/01/01 00:01上記のようにdateコマンドのオプションでフォーマットを指定して出力が出来るが、 例えば0時や1時などの1桁の場合、00、01とゼロパディング(0埋め)して表示してくれる。 だが0、1とゼロパディングせず表示してほし…

MongoDBパッケージ置き場メモ

Release note Release Notes — MongoDB Manual Ubuntu https://repo.mongodb.org/apt/ubuntu/dists/ CentOS https://repo.mongodb.org/yum/

.ymlなのか.yamlなのか

1. Is there an official extension for YAML files? Please use ".yaml" when possible. 参考:http://yaml.org/faq.html.yamlらしい。

Public DNS

DNS

IPv4 IPv6 運営元 8.8.8.88.8.4.4 2001:4860:4860::88882001:4860:4860::8844 Google 1.1.1.11.0.0.1 2606:4700:4700::11112606:4700:4700::1001 Cloudflare 64.6.64.664.6.65.6 2620:74:1b::1:12620:74:1c::2:2 Verisign 208.67.222.222208.67.220.220 2620…

Ubuntuでsarコマンドを使えるようにする

概要 $ sar Cannot open /var/log/sysstat/sa07: No such file or directory Please check if data collecting is enabled $こういったメッセージが表示されてしまう。 対処法 /etc/default/sysstatを以下のように書き換える。 ENABLED="false"↓ ENABLED="tr…

chef-clientのdry-run

chef-client -Wもしくは chef-client --why-run

PostgreSQLレプリケーションのマスター/スレーブ確認

概要 PostgreSQLでレプリケーションを組んでいるときマスター/スレーブを確認する方法以下のSQLで判断可能 SELECT pg_is_in_recovery(); マスターの場合 postgres=# SELECT pg_is_in_recovery(); pg_is_in_recovery ------------------- f (1 row) postgres=…

trickleを使って帯域制限をかけてvnstatで帯域状態をモニタリング

trickle 帯域制限をおこないたいコマンドの前にこのコマンドをつけて実行すると帯域制限がかけられる。 インストール apt-get install trickle 実行 trickle -s -d 128 -u 128 curl -L -O http://ftp.riken.jp/Linux/ubuntu-releases/16.04/ubuntu-16.04.3-s…

Zabbixのアイテムキー『proc.num』のプロセス数監視パラメータ

概要 Treasure Data社のOSSワークフローエンジン『Digdag』のプロセス数をZabbixで監視させようした際、 同じサーバーに別のJavaのプロセスがあったのでDigdagのプロセス数だけを監視させるにはどうしたもんかなーと悩みました。 が、ドキュメントを見たら設…

UbuntuでIPを変更したのに反映されない問題の対処法

環境 Ubuntu 16.04.3 LTS 概要 /etc/network/interfacesでネットワークの設定を行ってIPアドレス10.0.0.1で稼働させた後、 10.0.0.2へIPアドレスを変更したがIPが変わらなかった。 設定を変更してnetworkingデーモンを再起動してもIPアドレスが変わらなかっ…

Docker CEパッケージ置き場メモ

Docker CE Release note Docker CE release notes | Docker Documentation Ubuntu(Bionic Beaver 18.04 LTS) https://download.docker.com/linux/ubuntu/dists/bionic/pool/stable/amd64/ https://download.docker.com/linux/ubuntu/dists/bionic/pool/edge/…

Linuxコマンドとパッケージ名対応表

概要 Dockerイメージなどミニマルな環境だといつものコマンドが使えないときがある。 イメージ容量を考えると不要なパッケージが入っていないほうが良いのだが困るときもある。 そんなとき用のメモ 対応表 コマンド パッケージ名(CentOS) パッケージ名(Ubunt…

Dockerのデーモン設定ファイルでコンテナのデフォルト/etc/resolv.conf設定

概要 Dockerコンテナの/etc/resolv.confはDockerホストのファイルがそのまま引き継がれる。 DockerホストとDockerコンテナで名前解決の設定を変更したい場合はdocker runのときに--dnsオプションを指定することで個別に変更が出来る。とはいえ毎回docker run…

Ubuntuはデフォルトでbackupユーザが存在する

LDAP上の「backup」というユーザ名の一般ユーザで各CentOSサーバーにログインして回りデータをリモートバックアップしていた。ところがUbuntuサーバーに対して同様のリモートバックアップを行おうと思ったところLDAPの「backup」ユーザでログインできなかっ…

BINDのレコードでホスト名にアンダースコア(アンダーバー)は使えない

概要 Let's Encryptでdns01モードでチャレンジしようとしたところチャレンジ失敗どころかレコードが引けなくなってしまった。 _acme-challenge.example.comこういったサブドメインを設定する必要がある。 _acme-challenge IN TXT "xxxxxxxxxxxxxxxxxxx"BIND…