INU(M)1(@tokuma_japan)RT(43)##INU
INU(M)1(@tokuma_japan)RT(43)##INU
2020.5.12 火
diffコマンドとか1ファイルだったらまだいいけど、塊として見る場合はクソなので、gitで差分をまるっと確かめるという方法です。 ブランチ間の差分を見てみる ブランチ間のdiffは`git diff BRANCH-A BRANCH-Bで確認できるのだけど、ファイル数がやたらと多く、どのファイルに差分があるかのみ見たい場合はファイルパスだけ表示するようにします。 $ git diff BRANCH-A BRANCH-B --name-only
2020.3.14 土
リモートホストからアクセスする redis-cli -h #{ホスト名} -p #{ポート番号} -n #{DB番号}
2020.3.4 水
障害時っていうのは「まずは原因がわからない」っていうところが起点になるので、そこからはじめます。たいていの場合、運用者・管理者はだいたいの予想がつくということもあるのだけど、それでも「何もわからない」というのを起点にした方がいいです。障害は何かしらの機能不全ということだと思うので、その機能不全の原因を探ります。 目に見える機能不全とある条件下のみで発生する機能不全もあるので一概には言えませんが、いろいろな角度から探りを入れます。コンピューターの嫌なところは全体を俯瞰できないというところで結局は細々と自分で具y帯的なところを洗い出して最終的に(総合的に)俯瞰図を頭の中で作成してそれを見ながら判断するということになります。 基本的な確認(HDDストレージの容量・メモリ・CPUロードアベレージ) ...
2020.3.4 水
KVMのイメージなどからVMインスタンスを立ち上げた際にeth1やeth2に割り振られてしまうときがあります。イメージが元々あったデータセンターでのNICが残ってしまっていて、新しいNICに新しいVMインスタンスが割り当てられてしまうようです。ip aで見てみてると何故かeth2に割り当てられている。 $ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet 192.168.60.20/32 brd 192.16...
2020.3.1 日
GCPのVMインスタンスは恒久的に25番ポートの利用ができない上に自身のVMで「注: ポート 25 は常にブロックされており、G Suite を使用した SMTP リレーを介したとしても利用できません。」となっております。AWSは申請制度でユーザーの審査が通れば25ポートを使うことができますがGCPは無理っぽい。 インスタンスからのメールの送信 じゃ、どうすればいいかというと、外部のSMTPサーバーにサブミッションポート587で送信を委譲するかたちにしないといけないということで結構面倒です。 ここではGmailアカウントでSMTPサーバーを使えるように設定してから、postfixの設定したVMインスタンスでGmailのSMTPを使って送信できるように設定します。 GoogleアカウントでSM...
2020.3.1 日
まずそもそもtcpdumpのコマンドがインストールされていないことが多いので、使えない場合はインストールから。 # which tcpdump /usr/bin/which: no tcpdump in (/sbin:/bin:/usr/sbin:/usr/bin) yum -y install tcpdump インストールできたら、とりあえず、 tcpdump とやってみます。目まぐるしいアクセスでバーっとログが出てくるんですが、これがtcpの通信をdumpしている状態です。この状態は量が多すぎて何もわからないので、ある程度フィルタリングしたりして使うのが普通です。 - インターフェイスを選ぶ - ホストを限定する ### インターフェイスを選ぶ `ip a`などでネットワークのインターフ...
2020.3.1 日
Linuxマシン自身がメモリ不足でシステムがダウンする事態になると、メモリ不足を検知してメモリを消費しているプロセスを強制的に停止してLinuxマシン自体の存続を試みようとします。Linuxマシンが倒れるよりも個々のプロセスが倒れた方がシステムとしてはまだマシという考え方がコンセプトになっているようです。 謎にDNSサーバーが落ちる自体が数回あって、いろいろ調べてみました。 # systemctl status named-chroot -- 中略 -- Active: failed (Result: exit-code) since 日 2020-03-01 02:13:59 JST; 11h ago -- 中略 -- Process: 7389 ExecStart=/usr/sbin/n...
2020.2.28 金
普通に使う場合はこれ。 $ dig example.com そのマシンのネットワークに設定されているDNSを使って名前解決します。通常は外にforwardされている感じになります。社内などの閉じられた環境では、社内のDNSを引いて、そこで解決できなければforwardするみたいな設定になっているはずです。 名前解決するホストを明示的にする際は、@hostを使います。 $ dig example.com @192.168.2.5 詳しくデバックするとき $ dig +trace example.com @host かなり詳しい名前解決ができます。ローカルとグローバルで違うAレコードを持っている場合でも両方の名前解決を出力します。
2020.2.24 月
zsh: command not found: brew おーそういうことですか。 zshはbrewがデフォルトで使えなくなっているようです。というかそもそもインストールしていない場合は、これ。(そもそもインストールしてなかった!) /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 途中でrootのパスワードを求められるので入力。滞りなく終了します。 Macの開発環境をzshで良い感じにする
2020.2.23 日
多少今更感があるmonogoです。mysqlとかpoatgresqlとかと比べて大きく違うところは、 テーブルのjoinとかそういうのは不得意というかむしろできない。 いわゆるカラム構造がjsoライクなので入れ子にできる。 テーブルをコレクションと呼ぶ。 こんなところでしょうか。 mongodbのインストール mongodbの移動。わけあって全然しらんmongodbをデータごと移行するときに調べたこと。mongo自体が新しいものなのでOSはCentOS7で64bitだったので助かった。yumでインストールしたものなのか調べてみる。 # yum list installed | grep mongo mongodb-org.x86_64 2.6.12-1 @mongodb-org-2.6 mo...
2020.2.22 土
LAN内でしか動かないWEBシステムを見るときには非常に便利。VPNなどが最も楽であるのは事実なのですが設備を導入すること自体が非常に敷居が高いし設定するまで手間がかかるので、SSHさえ接続できれば踏み台サーバーから中に入ってブラウザーで見ることができるっつうやつです。まずは踏み台サーバーがすでにあることを前提としているので踏み台サーバーにアクセスできるところから始めます。 正確にいうとPort Forwardとか言うのだけど、このあたりの説明は他のサイトでも図解で詳しく説明してくれているので割愛。 コマンドラインで行う場合は、 $ ssh -v -N -L localhost:8888:192.168.0.3:80 -i /SSHKEY/ -p 1206 user@123.456.789....
2020.2.18 火
GCPのVMインスタンスの多段認証で、 $ ssh foobar channel 0: open failed: connect failed: Connection refused stdio forwarding failed ssh_exchange_identification: Connection closed by remote host というエラーが出るときがある。いろいろ解決方法があるのだけど、GCPのVMインスタンスの場合、しばらく待っていると治っていることがある。いや、しばらく放っておくとほとんど場合治る。
2020.2.13 木
ログレベルを3以上にしていると、大量にログが出るのでローテートしてないとダメ。 /var/log/samba/log.%m すごい量になってる。 /etc/smb.conf (/usr/local/samba/etc/smb.conf) とかあたりにconfigファイルがあるので、それを修正。log level = 3をlog level = 2以下に修正します。 # --------------------------- Logging Options ----------------------------- log level = 2 log file = /var/log/samba/log.%m max log size = 5000
2020.2.12 水
ディスクの追加をしたあとにコマンドラインでマウントしないと使えません。 ゾーン永続ディスクの追加またはサイズ変更 コンソールまたはgcloudコマンドでディスクを追加した後に、該当VMインスタンスにログインしてrootユーザーにて以下のコマンドで、ディスクが正しく作られているか確認します。 # sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 10G 0 disk └─sda1 8:1 0 10G 0 part / sdb 8:16 0 500G 0 disk ←これ /devの中にもいるので確認しておくとよいです。 # ls -al /dev ... brw-rw----. 1 root disk 8, 0 12月 2...
2020.1.30 木
Gmailはデフォルトでは同じタイトルのメールはスレッド形式になっていて、常に連結されています。便利なときもあるのですが、スレッドが入れ子になってしまうと非常に見づらいのと、スレッドの途中の該当の内容を検索してもなかなか見つからないというのがあります。 スレッド表示をOFFにして通常のメールのように一通は一通で表示するようにするには、設定(右上の歯車マーク)をクリックして、スレッド表示の項目を探してOFFにします。 スレッド形式での表示を解除
2020.1.27 月
現在のジョブを確認。何もない $ jobs -l 一度普通にSCPを実行する。 $ scp -p -P 22 /foo/bar.txt user@xxx.xxx.xxx.xxx:/tmp/foo/bar.txt [commnad]+[Z]でいったん止める。するとjob番号が出てくるので、 $ [1]+ Stopped scp -p -P 22 /foo/bar.txt user@xxx.xxx.xxx.xxx:/tmp/foo/bar.txt そのジョブ番号で、バックグラウンド実行を登録します。 $ bg 1 [1]+ scp -p -P 22 /foo/bar.txt user@xxx.xxx.xxx.xxx:/tmp/foo/bar.txt & 登録すると、バックグラウンドの実行...
2020.1.24 金
このエラーが出たのは、Linux系の適当なサーバーからrsyncでCloud Strageにダウンロードした際におきたものです。 rsync: close failed on "/home/hoge/.00008101_1.jpg.4kABMr": Input/output error (5) rsync error: error in file IO (code 11) at receiver.c(859) [receiver=3.1.2] rsyncのエラーでめずらしいものが出た。バックアップ先のHDDフォーマットはFATじゃない。バックアップ先のストレージが足りなくなったわけではない。 FATフォーマットのHDDは一度に書き込める量が FAT16: 2G FAT32: 4G ということ...
2020.1.17 金
ルーティングの設定 Default gateway: 192.168.0.254 Route: 192.168.50.0/24 Subnetmask: 255.255.255.0 Macのルーティングの設定はコマンドラインで行っても再起動したら設定が消えて永続化できてないので、別の設定しないとダメっぽい。ちまたで見かける # route add -net [宛先アドレス(CIDR)] [ゲートウェイのアドレス] # route add -net 192.168.50.0/24 192.168.0.254というコマンドは一時的なものなのでネットワークの設定に永続化されないです。ですので、これを保存しておかないとダメというわけです。これを永続化させるには、 # networksetup -set...
2020.1.16 木
GCEのVMインスタンスのHDD容量を拡張する際の手順です。何かとHDDの容量が不足して、いつもこの作業やることになる。 公式ドキュメントはこちら。 ゾーン永続ディスクのサイズ変更 VMインスタンスのディスク拡張 まずはディスクを拡張したいVMインスタンスを確認しておきます。GCPのコンソール上で操作します。GCEのディスクのメニューに移動します。 ディスクに移動して、該当のディスクをクリックします。 詳細ページの上部にある編集ボタンをおして編集ページに移動。 サイズを変更の項目で現行のサイズよりも大きいサイズに変更します。変更したら保存。 コンソールの操作はここまででOK。ディスクをサイズ変更したら、VMインスタンスにログインして、オペレーティング システムが追加の容量にアクセスできるよう...
2020.1.1 水
CentOS8がもう出てしましました。いろいろまた変わりました。変わらないところと変わっているところとあって、面倒くさいですね。 Installと初期設定 /etc/skel/の設定 .bash_profileにショートカットを登録する。これがないとすごい不便。/etc/skel/にある雛形に追加しておくと今後新規で追加した際にはこの雛形が反映されます。ちなみにこのディレクトリはユーザーが新規で作成されるたびに反映されるので、全く別のファイルを追加しておくこともできます。 # /etc/skel/.bash_profile # 以下追加
2019.12.26 木
Postgresの権限設定のベストプラクティスというか方針はどうするのがよいのか?というところなのすが、実際は何でもいいです。ですが、おおよそのベストプラクティスとしては、 Loacalからのアクセスはpeerかidentでやるのがいい。 認証方式
2019.12.25 水
Cloud DNSはデフォルトでは外部のDNSの機能しかもっていなくて、内部、つまりGCPでいうところのVPC内の閉じたネットワークの名前解決はできないことになっています。自分でDNSサーバーを作成する際にはExternalとInternalでロケーションを分けて記述できるので、当然Cloude DNSでもできるだろうというのがあるのでいろいろ調べると「限定公開ゾーン」というやり方があるようです。 foo.example.comに対して、内部では192.168.0.5(ローカルIP)を引けるようにして、外部では123.456.789.xxx(グローバルIP)を引けるようにするということになります。基本的な外部の名前解決はすでにできるようになっていることが前提で解説します。 foo.examp...
2019.12.24 火
既存のVMインスタンスのイメージを作成して、別のVMインスタンスとして起動するまでの手順です。 日々のバックアップだったらスナップショットを使うのがベストプラクティスです。しかしある程度カスタマイズしてすでに構築してあるサーバーを同じようにもう一台構築したいといった場合にはイメージの作成が向いています。バックアップとしてイメージを使うこともできますが、あんまりスマートではないです。イメージの作成が役にたつのは、 同じVMインスタンスをもう一台作成したいとき。 VMインスタンスの設定・データを含めた完璧なバックアップ。(バックアップできないのはネットワークだけ) 基本的なミドルウエアなどを設定して、VMインスタンスの雛形として使う場合。 などです。スナップショットは基本的には差分を抽出してバッ...
2019.12.23 月
SSHでのscpコマンドの使い方である程度基本的なことを書いたので、その応用編です。 SSHの踏み台(ポートフォワード)を使ってSCPする ssh/scp多段接続〜踏み台サーバを越えて〜
2019.12.21 土
Google Cloud StorageはTransmitでも接続ができます。Amazon S3とほぼ同じプロトコル(なのか、そこらあたりを強引に合わせているのか)はわからないけど、Transmitでも接続できます。 Transmitを利用してGoogle Cloud Storageに接続するには Cloude Storageにアカウントを紐付けます。 アドレスはこれを設定する https://storage.googleapis.com 認証情報は、 Access ID: Secret Key: Cloud Storage の認証
2019.12.21 土
マウス使うと仕事遅いよ。 アプリケーションを選択する [control] + [tab] *tabを連打で選択 戻るときは ( [control] + [shift] ) + [tab] スクリーンショット 選択範囲をスクリーンショット (選択範囲をドラッグして離す) [command] + [shift] + 4 画面全体 [command] + [shift] + 3 スクリーンショットの方法を選択する(すべてのスクリーンショットのとり方を選択できる) [command] + [shift] + 5
2019.12.20 金
MacでSSHトンネルをする (Coccinellida)を使うのも鬱陶しくなってきたので、コマンドでやることにしました。接続先の例はこんな感じ。 接続先ホスト host: xxx.xxx.xxx.xxx user: suser port: 22 key: /MYKEY 中継(踏み台)ホスト host: zzz.zzz.zzz.zzz user: buser port: 2222 key: /MYKEY こういうコマンドになる。1234というダミーのポートを使うのがコツです。 $ ssh -L 1234:xxx.xxx.xxx.xxx:22 buser@zzz.zzz.zzz.zzz -p 2222 ターミナル上でプロンプト待ちみたいな感じになるので、そこからTransmitとかでlocal...
2019.12.20 金
ちょっと気を抜いていたのですが、こういう事態に気が付かなったです。GCEのVMインスタンスは外部IPアドレスを持たない場合はVPCの中に閉じられた状態になるので、そのまんまだと、外部との通信ができなくなってしまいます。通常のネットワークではデフォルト・ゲートウェイが外向けに設定されているので、LANの中でも普通にインターネットができますが、GCPではそのような仕組みを自分でつくってくださいということになっているので、何らかのかたちで作成しないといけない。 公式ドキュメントでは、VM インスタンスへの安全な接続の中で外部IPをもたないVMインスタンスをどうするか?ということについて、いくつかの方法を載せてあります。どれもこれも一長一短ではありますが、どのような場合にどのような方法がよいのか考え...
2019.12.20 金
Githubの公開鍵はネット上に常に公開されています。私の場合はこのような形。複数登録している場合は複数個表示されます。 https://github.com/osamthing.keys 形式は以下の通り。 https://github.com/ACCOUNT_NAME.keys
2019.12.19 木
アップロード中にエラーが発生しました。後ほどもう一度お試しください。 というメッセージと共に画像がアップロードできない、またはアップロードされているが編集画面でうまくメディアを呼び出すことができないなどなど。WordPressの「メディアの追加」が効かなくなった時の諸々の対象方法。 しょぼい記述ミス。 パーミッションの問題。uploads以下のディレクトリを777にしておくなど。 admin-ajax.phpのバグである説。アップロード時の形式の問題。ワードプレスのメディアが読み込まれない!その解決方法を解説 プラグインの影響 (すべてのプラグインを止めて試してみる) テーマの影響 (デフォルトのテーマに戻してみる) function.phpの影響 (中身をコメントアウトしてみる) キャッシ...