windowsで入力した「~」とmacで入力した「〜」はUnicode文字コードが異なる
「〜」をwindowsで入力するとUnicode文字コードはU+FF5Eになり、macで入力するとU+301Cになる。
数値実体参照で言えばwindowsは~
、macは〜
となる。ドウシテコウナッタ…
詳しい説明は以下の記事にあった。
Oracleデータベースで、波ダッシュの文字化けはなぜ起きるのか?
今回ハマったのは、windowsで入力した「〜」を含む文字列を正規表現で抽出する際、正規表現をmacで書いていたため「〜」の文字コードがOS間で異なり、正しく抽出されないことだった。
解決策としてはwindowsで入力した「〜」をコピペして正規表現に記載した。すごくダサいので、もう少しスマートなやり方があれば良いのだが… 見た目には変わらないのでなぜ抽出できないのか小一時間悩んだためみなさんもお気をつけください。
Mac OSXで特定のディレクトリ配下の内容の変更を監視してコマンド実行する
launchctlを使うとお手軽に出来るみたいなのでメモ。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>hoge.huga</string> <key>ProgramArguments</key> <array> <string>/bin/bash</string> <string>any command</string> </array> <key>WatchPaths</key> <array> <string>any paths</string> </array> <key>StandardOutputPath</key> <string>any output path</string> <key>StandardErrorPath</key> <string>any error path</string> </dict> </plist>
- ProgramArguments : 実行したいコマンドを記述する。array内で、スペース区切りのコマンドをstringで記述する
- WatchPaths : 変更を監視したいディレクトリやファイルを記述する。
- StandardOutputPath : 標準出力のログを吐くパスを指定
- StandardErrorPath : エラーのログを吐くパスを指定
いろいろ調べててincronだったりfseventだったり出てきたけど、上手く動かなかったのとunloadの方法がよくわからなかったのでこれが一番お手軽かつ確実かと。
VagrantのCentOS7の仮想環境で、ansibleがデフォルトの状態では動かなかった
仮想環境の構成管理をchefからansibleに乗り換えようと決意したものの、 デフォルトだとansible -m ping
すら出来ない状況に。
以下の様なエラーが出ていた。
$ ansible development -m ping -i hosts -vvvv -c ssh <192.168.33.10> ESTABLISH CONNECTION FOR USER: vagrant <192.168.33.10> REMOTE_MODULE ping <192.168.33.10> EXEC ssh -C -tt -vvv -o ControlMaster=auto -o ControlPersist=60s -o ControlPath="/Users/jun_hashimoto/.ansible/cp/ansible-ssh-%h-%p-%r" -o Port=22 -o IdentityFile="/Users/jun_hashimoto/.ssh/vagrant_id_rsa" -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=vagrant -o ConnectTimeout=10 192.168.33.10 /bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1446302545.64-29176121780452 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1446302545.64-29176121780452 && echo $HOME/.ansible/tmp/ansible-tmp-1446302545.64-29176121780452' <192.168.33.10> PUT /var/folders/b1/xvrmxy3x5q144lzzrxg081jr0000gn/T/tmp8Y12_A TO /home/vagrant/.ansible/tmp/ansible-tmp-1446302545.64-29176121780452/ping 192.168.33.10 | FAILED => failed to transfer file to /home/vagrant/.ansible/tmp/ansible-tmp-1446302545.64-29176121780452/ping: Connection closed
イメージには puppetlabs/centos-7.0-64-puppet
を利用していたのだが、調べているとCentOS5, 6ではSFTPが無効になっているらしい。
立ち上げた仮想環境の /etc/ssh/sshd_config
の中身を見ると以下のように、sftpに関する記述があった。
# File is managed by Puppet AcceptEnv LANG LC_* ChallengeResponseAuthentication no GSSAPIAuthentication no PermitRootLogin yes PrintMotd no Subsystem sftp /usr/lib/openssh/sftp-server UseDNS no UsePAM yes X11Forwarding yes
記述があるにも関わらずpingが通らないのはおかしい、sftpのPATHはどうなってるのかと思って調べてみると、configに記載されているpathがなんと間違えていた。。
$ sudo find / -type f -name sftp-server /usr/libexec/openssh/sftp-server
lib
から libexec
に修正し、sshdを再起動したらping通った。
$ ansible development -m ping -i hosts -vvvv <192.168.33.10> ESTABLISH CONNECTION FOR USER: vagrant <192.168.33.10> REMOTE_MODULE ping <192.168.33.10> EXEC ssh -C -tt -vvv -o ControlMaster=auto -o ControlPersist=60s -o ControlPath="/Users/jun_hashimoto/.ansible/cp/ansible-ssh-%h-%p-%r" -o IdentityFile="/Users/jun_hashimoto/.ssh/vagrant_id_rsa" -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=vagrant -o ConnectTimeout=10 192.168.33.10 /bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1446303504.31-126139414242133 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1446303504.31-126139414242133 && echo $HOME/.ansible/tmp/ansible-tmp-1446303504.31-126139414242133' <192.168.33.10> PUT /var/folders/b1/xvrmxy3x5q144lzzrxg081jr0000gn/T/tmpjtkKIl TO /home/vagrant/.ansible/tmp/ansible-tmp-1446303504.31-126139414242133/ping <192.168.33.10> EXEC ssh -C -tt -vvv -o ControlMaster=auto -o ControlPersist=60s -o ControlPath="/Users/jun_hashimoto/.ansible/cp/ansible-ssh-%h-%p-%r" -o IdentityFile="/Users/jun_hashimoto/.ssh/vagrant_id_rsa" -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=vagrant -o ConnectTimeout=10 192.168.33.10 /bin/sh -c 'LANG=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 /usr/bin/python /home/vagrant/.ansible/tmp/ansible-tmp-1446303504.31-126139414242133/ping; rm -rf /home/vagrant/.ansible/tmp/ansible-tmp-1446303504.31-126139414242133/ >/dev/null 2>&1' 192.168.33.10 | success >> { "changed": false, "ping": "pong" }
んもー…
4年目の健康診断とか
一昨日だった。
- 身長 : 173.9cm 変化なし
- 体重 : 63.6kg +3.7kg
- 視力 : あんま変わらず両目1.2
- 実感として正直測定値ほど見えている気がしない
- 血圧 : 上がちょっと上がった。1回測定ミスってテンパったのかもしれない
内科の担当医のおっちゃんがそっけなさすぎてちょっと萎えた。 食生活ちょっと脂っこい方に寄ってるから血液検査が心配。 あと最近食後喉に食い物が少し詰まったような感覚あるから病院行ったほうが良いような気がしないでもない
前回書いていた陰陽座のラジオcron録音は上手く動いていた。 ただブログに書いてあった放送時間が間違っていて最後尻切れトンボになってた。20分じゃなくて25分らしい…