zuntan02のはてなブログ

備忘録的なものです。時々職場の技術者ブログにも転記してますが、メインはこちらで。

【Wordpress】サイトを総SSL化したらBackWPupが動作しなくなったけどNSS更新したら動いた

【内容】

タイトルの通り。
SSL化したWordpressでBackWPupが止まっていることに気づいた。

BackWPupの[情報]に曰く、

cURL のバージョン	7.19.7
cURL SSL のバージョン	NSS/3.27.1
WP-Cron URL:	https://hogehoge.com/wp-cron.php
サーバーの自己接続:	期待された HTTP レスポンスではありません:
WP Http エラー: cURL error 35: SSL connect error

実際にシェルからcurlで自URLをたたくと以下のエラーが出る

curl https://hogehoge.com/wp-cron.php
curl: (35) SSL connect error

【対策】

SSLサイトで、自分自身を呼び出している処理について、nss(Network Security Services)のバージョンが古くて自分自身が正常に呼び出せなかった模様。

yum update nss
# Updated:
#   nss.x86_64 0:3.28.4-4.el6_9
# 
# Dependency Updated:
#   nspr.x86_64 0:4.13.1-1.el6
#   nss-sysinit.x86_64 0:3.28.4-4.el6_9
#   nss-tools.x86_64 0:3.28.4-4.el6_9
#   nss-util.x86_64 0:3.28.4-1.el6_9

# 確認

curl https://hogehoge.com/wp-cron.php

→エラーは出なくなった

# BackWPupが動作するか?
php-fpmの再起動で動作するようになった。


【参照】

https://qiita.com/shunsuke_takahashi/items/a1c3655584530c76fbe0
CentOS6.xのlibcurlが古くてcurl: (35) SSL connect errorが発生する件

http://wpblogdiy.com/domain/1027sslbackwpuperror/
SSLを回避している人

http://thr3a.hatenablog.com/entry/20170623/1498159546
どうやらNSSが悪い

memcachedのアクセス制御

【問題】

さくらのVPSの開発環境のネットワーク送出がハネてるなとおもったらさくらから警告あり。
https://www.sakura.ad.jp/news/sakurainfo/newsentry.php?id=1885www.sakura.ad.jp

memcached のアクセス制御に関する注意喚起

memcached の設定によっては、意図せずインターネットからアクセス可能な状態になっており、
(中略)攻撃の踏み台にされたり、memcached が保持する情報へアクセスされたりする可能性があります。

【対策】

CentOS6環境だったので以下で対応

# 事前確認

netstat -nlp | grep memcached
tcp        0      0 0.0.0.0:11211               0.0.0.0:*                   LISTEN      1388/memcached
tcp        0      0 :::11211                    :::*                        LISTEN      1388/memcached
udp        0      0 0.0.0.0:11211               0.0.0.0:*                               1388/memcached
udp        0      0 :::11211                    :::*                                    1388/memcached


less /etc/init.d/memcached
→/etc/sysconfig/memcacehdの設定が後から読み込まれてたのでこちらを修正する

cp -p /etc/sysconfig/memcached /etc/sysconfig/memcached_bak
続きを読む

【Docker】メモリを使い尽くしてOS諸共死なないために

【概要】

Docker上で動かしていたcollabora onlineで巨大なスプレッドシートを開いたらメモリ+swapを一気に使い尽くしてOSごとお亡くなりになった。
dockerのメモリソフトリミット(--memory-reservation)セットして再挑戦したらいけた。

【参考】

knowledge.sakura.ad.jp

【メモ】

# メモリのソフトリミット1GB
docker run -td --memory-reservation 1g hogefuga

# 確認
dovker stats

CONTAINER           CPU %               MEM USAGE / LIMIT      MEM %               NET I/O             BLOCK I/O           PIDS
xxxxxxxxxxxx        0.78%               1.005 GiB / 3.86 GiB   26.03%              480 MB / 1.64 GB    28.9 GB / 761 MB    0

いけてる

【メモ】tarで一部のファイル/ディレクトリを除外してアーカイブする

■メモ
tarで一部のファイル/ディレクトリを除外してアーカイブする
d.hatena.ne.jp

とても役に立ったのでリブログ

# 除外リスト作成
続きを読む

【メモ】Linux:duでディレクトリサイズを比較したら同じはずなのにサイズが異なる

理由

duコマンドは、ファイルサイズではなくブロックサイズで表示するので正確な数値が表示されない。

【参考】

http://sonic64.com/2004-05-26.html
http://blue-red.ddo.jp/~ao/wiki/wiki.cgi?page=%A5%C7%A5%A3%A5%EC%A5%AF%A5%C8%A5%EA%A4%CE%CD%C6%CE%CC%A4%F2%C4%B4%A4%D9%A4%EB

find ./ -type f -printf "%s\n" |awk '{ sum += $1; }; END { print sum }'

で正確なファイルサイズの合計が表示される

現象例

du -hとしたらサーバAとBでサイズが違う

du -h

[サーバA]
8.0K    ./sample/jnlp/servlet/src/classes/jnlp/sample/jardiff/resources
52K     ./sample/jnlp/servlet/src/classes/jnlp/sample/jardiff
16K     ./sample/jnlp/servlet/src/classes/jnlp/sample/util
8.0K    ./sample/jnlp/servlet/src/classes/jnlp/sample/servlet/resources
124K    ./sample/jnlp/servlet/src/classes/jnlp/sample/servlet
196K    ./sample/jnlp/servlet/src/classes/jnlp/sample
200K    ./sample/jnlp/servlet/src/classes/jnlp
204K    ./sample/jnlp/servlet/src/classes
1.4M    ./sample

[サーバB]
16K     ./sample/jnlp/servlet/src/classes/jnlp/sample/jardiff/resources
80K     ./sample/jnlp/servlet/src/classes/jnlp/sample/jardiff
28K     ./sample/jnlp/servlet/src/classes/jnlp/sample/util
16K     ./sample/jnlp/servlet/src/classes/jnlp/sample/servlet/resources
184K    ./sample/jnlp/servlet/src/classes/jnlp/sample/servlet
300K    ./sample/jnlp/servlet/src/classes/jnlp/sample
308K    ./sample/jnlp/servlet/src/classes/jnlp
316K    ./sample/jnlp/servlet/src/classes
2.2M    ./sample

# 上記のfind+awkのコマンドで比較

find ./sample -type f -printf "%s\n" |awk '{ sum += $1; }; END { print sum }'

[サーバA]
861865

[サーバB]
861865

先人の知恵に感謝しつつリブログ

【コマンドメモ】大規模データの転送やインポートを時間測りつつ実施(nohup と timeコマンド)

例)MySQLのリストア

1)nohup time をつけてリストアを開始
nohup time mysql -uユーザ名 -p -h hogefuga.fugahoge.ap-northeast-1.rds.amazonaws.com databasename < database_dump.sql > nohup_database.out

→パスワードは普通に入力してリストア開始

2)[Ctrl+z]で一時停止
# ^Z
# [1]+  Stopped                 nohup time mysql (省略)
3)jobsで確認してBackgroundに回す
jobs -l
# [1]+ 17781 Stopped                 nohup time mysql (省略)

bg 1
# [1]+ nohup time mysql (省略) &

jobs -l
# [1]+ 17781 Running                 nohup time mysql (省略)&

SCPとかrsyncとかパスワード入力を求められるような場合は同じパターンで対応可能。
今更ですが、忘れがちなので。