2020.8.12 水
Visual Sutudio Codeでdiffを取る方法です。比較した双方のファイルを編集できないという欠点はあるもののまずます。Macは機能の優れたDiffツールがないのでVS CODEでやるのが吉かなという今日この頃です。WindowsだとWinMerge一択ですかね。 ファイルを比較する(Diffを取る) コマンドパレットを[Command]+ [P]で開いて>compareを入力すると、途中ですでにDIFFのサジェストが現れると思います。 ファイル: アクティブファイルを比較しています… ファイル: 保存済みファイルと作業中のファイルを比較 ファイル: クリップボードとアクティブファイルを比較 マージの競合: 現在の競合比較 いろいろありますが、1...
2020.8.10 月
管理画面のパスワードを紛失した場合は、パスワードハッシュを一時的に平文に戻すことで、対処可能なようです。 $ vi app/config/eccube/packages/eccube.yaml (27行目あたりのeccube_auth_typeをPLAINに変更) eccube_auth_type: HMAC ↓ eccube_auth_type: PLAIN データベースの dtb_memberテーブルから暗号化されたpasswordとlogin_idをコピーします。 login_id: USER_ID password: xxxx4e6cxxxxf3d6xxxx1569xxxx72dcxxxx76f1xxxxea44xxxxc631xxxxf9f4 このパスワードをそのままパスワードとし...
2020.8.10 月
gitでこういうエラーになることがあります。 これをやります。 $ git merge --allow-unrelated-histories origin/master
2020.8.7 金
phpのモジュールでssh2が入っていればphpでssh接続できます。 $ php -m | grep ssh ssh2 入っていない場合はインストールしないと駄目です。これの続き # yum -y install --enablerepo=remi,remi-php73 php-pecl-ssh2 接続方法は、パスワードの場合はこんな感じ。 $connection = ssh2_connect("192.168.xxx.xxx", "22"); ssh2_auth_password($connection,"username", "xxxxxxxxx"); $sftp = ssh2_sftp($connection); $dh = opendir("ssh2.sftp://$sftp/va...
2020.8.4 火
結局Macも既存のPHPがなかなか使いづらいというところがあるので、Homebrewで新たにPHPをインストールしてそれを使うっていう方が格段に使いやすいという話になってしまうというお話です。 PHP7.3のインストール MacはデフォルトでPHPがインストールされていますが、モジュールを追加したりするには結構面倒なことをしないといけないので、brewでパッケージごと入れた方がいいです。 brewからインストールすると以下のパスにPHPが格納されますが、 $ which php /usr/local/opt/php@7.3/bin/php デフォルトのままだと以下に設定されています。 $ which php /usr/bin/php HomebrewからPHPをインストールする brewのア...
2020.8.3 月
というのも、データベースのコマンドとかでターミナル上とかで表示させるとフォーマットがひどい感じになる(特にOracleなんかはひどい)ってことがよくあるので、適当な区切りをタブフォーマットとかにしたいなと思っただけです。 ^(.+?)[\t\n\r\f\s ](.+?)$ となるっぽい。なので、 preg_match("/^(.+?)[\t\n\r\f\s ](.+?)$/",$str); とかかな。
2020.7.3 金
vscodeを開いて適当なmarkdownを書いて保存。 [Ctrl]+[Shift]+[V] でプレビューできます。 以上。
2020.7.2 木
PC内部のDNSキャッシュを削除する sudo killall -HUP mDNSResponder ChromeのDNSキャッシュを削除する chrome://net-internals/#dnsにアクセスしてclear host cacheボタンを押します。
2020.7.1 水
EC-CUBE4がSymfonyベースになってからDockerFileが付属するようになったので、それを使ってみます。(最初Silexだったけど、Silexが更新されなくなったことからSymfonyになったっぽいです。)むかしに比べてかなりいろいろな部分が新しくなったのでかなり開発しやすく且つ使いやすくなりました。 Dockerの環境とGitが使えるようにしておいてください。 Docker for EC-CUBE4 Dockerの動く環境まで移動して、git cloneでソースコード一式をダウンロードします。 $ cd /DOCKER_PROJECT/ $ git clone https://github.com/EC-CUBE/ec-cube.git $ cd ec-cube プロジェクト...
2020.6.26 金
コマンドラインでテキストは見れても画像が見れないのは非常に不便なので、コマンドラインからパスを指定すると画像が見れるようにします。 iTerm2 Build 3.3.11 で、可能です。たぶんiTerm2 v3以降だと問題なはず。 以下のソースコードを、 https://iterm2.com/utilities/imgcat /usr/local/bin/imgcatを作成して、貼り付けます。やっていることはBASE64でエンコードしているだけっぽいです。 実行権限をつけます。 $ sudo chmod +x /usr/local/bin/imgcat ($ chmod 755 /usr/local/bin/imgcat) 作業自体はこれで終わり。 実際に画像を表示してみます。 $ /usr...
2020.6.24 水
ときどきしか使わないけど、結構便利。データが大量すぎるときは適当な言語でスクリプト書いた方が速い。 検索時の引数は、 検索する値 検索する範囲 検索する範囲が何番目の列にあるか? false を設定します。
2020.6.24 水
あんまり使いすぎるとややこしくなるけど、書きかけのコードをまだコミットしたくないときに使えます。どうせ半端だから元にもどしたいときはgit checkout PATHが使えるけど相当量書いちゃった場合は、stashした方がいいかもです。 $ git stash save コミットしていないもの以外、つまりaddしているものもaddしていないものも両方stashされます。 コミットはせずに変更を退避したいとき
2020.6.24 水
そのリポジトリのみに反映させたいとき $ git config --local core.quotepath false すべてのリポジトリに反映させたいとき $ git config --global core.quotepath false ファイル名が日本語のものが、ちゃんと表示されるようになります。 Untracked files: (use "git add <file>..." to include in what will be committed) "test/\346\227\245\346\234\254\350\252\236\343\203\225\343\202\241\343\202\244\343\203\253test.md" ↓ Untracke...
2020.6.23 火
インストール時に管理画面アクセスのIP制限設定があるんですが、その設定は.envに ECCUBE_ADMIN_ALLOW_HOSTS='["12.34.56.78","90.12.34.56"]' と、記述されます。 DBなどには記述されていなくて、書き込まれる(保存される)のはここだけです。管理画面からセキュリティーの設定を見てもきちんと反映されるのでエディタで直接編集しても問題なしです。
2020.6.16 火
vs codeは無料なのにすごい使える。php stormもすごいけど有料。有料ゆえにという機能が満載だが、使い方によってはvs codeも引けをとらない。というようなエディタです。 検索 全文検索 プロジェクト内のすべてのファイル内を全文検索する際は、以下のコマンドで検索窓を表示させて文字列検索ます。 [command] + [shift] + [F] ディレクトリ以下の全文検索 ある程度限定して、部分的に一部のディレクトリ以下の検索をしたい場合は、vscodeの左メニューのエクスプロラー(ディレクトリツリー)から特定のフォルダーを選択して、右クリック、「フォルダー内を検索」をクリック。 または検索フォルダー(ディレクトリ)を選択してから、以下のコマンド。 [option] + [shif...
2020.6.13 土
Macの場合はDocker環境をつくるのは比較的容易です。(Windowsの場合はかなりつらい。)こういうときはMacでよかったなと思います。 公式ページ: https://www.docker.com/get-startedからMac用のパッケージをダウンロードします。 パッケージなのでそのまま手順に従ってインストールすればOKです。インストールが完了すると、デスクトップの上部バーに自動的にアイコンが登録されます。 Dockerのコマンド Dockerのコマンドがちゃんと使えるか確認します。バージョンが確認できたら使える状態になっています。 $ docker --version Docker version 19.03.8, build afacb8b 次に自分...
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...