Category "Backend"を表示しています。
2020.7.2 木
PC内部のDNSキャッシュを削除する sudo killall -HUP mDNSResponder ChromeのDNSキャッシュを削除する chrome://net-internals/#dnsにアクセスしてclear host cacheボタンを押します。
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.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.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.1 水
CentOS8がもう出てしましました。いろいろまた変わりました。変わらないところと変わっているところとあって、面倒くさいですね。 Installと初期設定 /etc/skel/の設定 .bash_profileにショートカットを登録する。これがないとすごい不便。/etc/skel/にある雛形に追加しておくと今後新規で追加した際にはこの雛形が反映されます。ちなみにこのディレクトリはユーザーが新規で作成されるたびに反映されるので、全く別のファイルを追加しておくこともできます。 # /etc/skel/.bash_profile # 以下追加
2019.12.23 月
SSHでのscpコマンドの使い方である程度基本的なことを書いたので、その応用編です。 SSHの踏み台(ポートフォワード)を使ってSCPする ssh/scp多段接続〜踏み台サーバを越えて〜
2019.12.11 水
ファイルの数をカウントする(ファイルの数を数える) ./と../、Toatal行が出るので3行抜いた数で計算しないと合わなくなります。 # ls -al ./DIR | wc -l この数からマイナス3をした数がファイル数です。(が、中にディレクトリがある場合は、それも加算されちゃうので、findでやった方がいいかも。)
2019.11.29 金
やること CentOS7でSMTPサーバー構築ではSSLを使っていなかったのですが、今回は無料SSLを使って暗号化したSMTPSサーバーを作ろうと思います。 利用するドメインのSSLを取得する – 無料SSLを取得する Let’s Encrypt Postfixの設定 サブミッションポートの設定 ポートの開放 エイリアスの設定 -SPFの設定 利用するドメインのSSLを取得する 無料SSLのLet’s encryptを取得するには、認証方法としてそのドメインを使ったWEBサーバーを作るのが一番簡単です。まずはじめにexample.comでアクセスできるWEBサーバーを作っておきましょう。 SSLの取得方法は無料SSLを取得する Let’s Encryptを参考にしてく...
2019.11.4 月
静的外部IPアドレスの予約 リージョン指定しない場合は--globalでどこでも使える静的外部IPを指定します。 $ gcloud compute addresses create [name] --global --ip-version IPV4 リージョンが予め決まっていてリージョン指定する場合は、--regionでリージョンを指定します。Terraformで指定するときにあらかじめリージョンが決まっているときなどはこの方法で予約しないとリージョンがないと言われてエラーになります。 $ gcloud compute addresses create [name] --region asia-northeast1 静的内部IPアドレスの予約 $ gcloud compute address...
2019.11.4 月
# yum list installed | grep postgresql Existing lock /var/run/yum.pid: another copy is running as pid 29910. Another app is currently holding the yum lock; waiting for it to exit... The other application is: yum Memory : 74 M RSS (396 MB VSZ) Started: Mon Nov 4 13:18:30 2019 - 00:02 ago State : Sleeping, pid: 29910 pidを削除してあげると、Lockが解除されます。 # rm -f...
2019.10.28 月
SSHの接続はいろいろセキュリティー上面倒な部分なので、そこらの部分含めると結構テクニカルなことになってしまうので割愛。 ポートの変更 既存のsshd_configのバックアップとっておきます。 # cd /etc/ssh # cp -p sshd_config sshd_config.org ポートを変更します。コメントアウトしてある場合は、外してください。 #Port 22 ↓ Port 2222 保存してからsshd -tで構文チェックしてください。 再起動。既存ポートでは接続できなくなるので十分注意してください。 # systemctl restart sshd.service
2019.10.19 土
Ansibleをまだ使ったことがない人が基本的な使い方ができるようになるまで解説します。 SSHでホストに接続できるようにしておく Ansibleの実行ユーザーとSSHの実行ユーザーを同じにしておくことを前提に、対象hostにSSHで接続できるようにしておきます。いつものように.ssh/configに接続情報を書いておきます。その接続情報をAnsibleで使うことになります。 接続先のホスト情報はインベントリ(在庫リスト)と呼ばれていますが、これは、Ansibleが複数のhostに対して実行できるため、こういった呼び名になっています。Ansibleが各hostへ接続するためには常にこのインベントリを使います。 対象ホストが複数台あるときは複数のHost情報をconfigに設定しておいてくださ...
2019.10.19 土
AnsibleでSSHの基本的な設定をします。ホストに接続できるようになっていることを前提としています。接続シていない場合は、対象のマシンに接続しておいてください。 Ansibleのインストールと基本的な使い方 SSHの設定 SSHの設定は、 チェック (ドライラン) $ ansible-playbook --check -i inventory/hosts sshd.yml 実行 ansible-playbook -i inventory/hosts sshd.yml Ansible でSSHのセキュリティ設定
2019.10.8 火
今どきこんな作業することになるとは。 # yum list | grep cvs cvs.x86_64 1.11.23-35.el7 @base なんかあるっぽい。安定版の最新が1.11.23。 # yum -y install cvs バージョン確認 # cvs --version Concurrent Versions System (CVS) 1.11.23 (client/server) 場所 # which cvs /usr/bin/cvs なるほど。 /home/cvsrootを使いたいので、対象ディレクトリで初期化。 私の場合は既存のcvsのファイルを別サーバーから移動してきて行いました。とくに問題なくinitできたようです。 # cvs -d /home/cvsroot in...
2019.10.4 金
Python3でAnsibleが使えるようにします。以下、参考。 MacにPythonの開発環境を作る Ansileのインストールと設定 Pythonをバージョンによって使い分ける ここでやること Macへansibleをインストール リモートホストへの接続 userでのHello world. root(sudo)でのHello world. Install Macにインストールするには、brew使うのがいちばんいいと思います。brewを更新、またはアップデートしておきます。Doctorもやっておいてエラーなどを解消しておいた方がいいです。 $ brew update $ brew doctor $ brew upgrade 現行でインストールできるansibleを確認します。 $ bre...
2019.10.2 水
CentOS7にAnsibleをインストールする例です。 # yum install epel-release # cd ~ # yum -y install ansible バージョン確認。ansible 2.8.5が入りました。 # ansible --version ansible 2.8.5 config file = /etc/ansible/ansible.cfg configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python2.7/s...
2019.9.21 土
source .bash_profileの実行し忘れというのではなく、起動するたびに設定が反映されていないときがありました。なんで? そもそもパスが通っていないのかもしれない。echo $HOMEとかで確認。 そもそもログインシェルが違うのかもしれない。 一度ログアウトしてからログインするとまた元に戻っていて設定が反映されていないという始末。再起動時も同じ。毎回source .bash_profileやsource .bashrcを実行するのは何か変。そもそもデーモン化したアプリとかはどうすんのよ。 ってのは、.bash_profileや.bashrcはログインシェルがbashのときに起動するということなので、ログインシェルとしてbashが起動していないという可能性が大きい。ログインシェルの...
2019.9.16 月
php artisan tinkerを実行すると以下のようなエラーで実行できないことがあります。 In Configuration.php line 363: [ErrorException] mkdir(): Permission denied -vvvvをつけて、デバックモードでコマンドを実行してみます。 $ php artisan tinker -vvvv In Configuration.php line 363: [ErrorException] mkdir(): Permission denied Exception trace: Illuminate\Foundation\Bootstrap\HandleExceptions->handleError() at n/a:n...
2019.5.7 火
バージョン確認 select * from v$version Oracle Database 11g Release 11.2.0.4.0 - 64bit Production PL/SQL Release 11.2.0.4.0 - Production CORE 11.2.0.4.0 Production TNS for Linux: Version 11.2.0.4.0 - Production NLSRTL Version 11.2.0.4.0 - Production テーブル一覧 select table_name from user_tables;