Yuya Sato のアーカイブ

[MySQL]テーブルのデータをcsvで出力する

2017年9月22日

MySQLにあるデータをcsvファイルに出力する。 ``` mysql> SELECT * FROM hoge_table INTO OUTFILE '/tmp/output.csv' FIELDS TERMINATED BY ',' ```
続きを読む

iTerm2の不具合

2017年9月20日

詳しくはこちらの記事に書かれています。 https://applech2.com/archives/20170920-iterm-2-dns-lookup-issue.html iTerm2で入力されたパスワードが平文でDNSサーバに送られてしまう不具合のようです。 対処法はiTerm2の「Preferences->Advanced->Semantic History」から、「Perform DNS lookups to check it URLs are va
続きを読む

特定のS3のバケットにアクセスするIAM Roleの作成

2017年9月15日

特定のS3バケット(ここではhogeバケット)にアクセスする権限を持つIAM Roleを作成します。 以下のようなpolicyで設定します。 ``` { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": [
続きを読む

[Apache] RewriteCondのANDとORの優先順位

2017年9月8日

mod_rewriteで条件を指定するためのRewriteCondは複数指定することが出来ます。 デフォルトでは複数指定した場合条件はANDになりますが、末尾に[OR]を付けるとOR条件になります。 さらに、ANDとORがどちらもある場合、mod_rewriteではOR条件が優先されます。 例えば以下の例では、「条件A AND (条件B OR 条件C)」となります。 ``` RewriteEngine on RewriteCond %{HTTP_H
続きを読む

[MySQL] 大量のテストデータを作成

2017年9月6日

テストデータ用のテーブル作成 ``` mysql> CREATE TABLE item ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(10), description VARCHAR(30), price INT UNSIGNED, created_at DATETIME ); ``` テーブルに空データ挿入 ``` mysql> INSERT INTO item (
続きを読む

ファイル内に特定の文字列を含むものを検索する

2017年9月1日

特定の文字列を含むファイルがあるけれどそれがどこにあるのか分からない場合、 以下のコマンドで検索できる。 ``` $ find ./ -type f -print | xargs grep 'hogehoge' ``` 上のコマンドで、カレントディレクトリ配下にあるファイル群から「hogehoge」という文字列を含むファイルを検索する。
続きを読む

[Nginx] httpをhttpsにリダイレクトする

2017年9月1日

`return`を使用する。 ``` server { listen 80; server_name example.com; return 301 https://$host$request_uri; } server { listen 443; ssl on; ... } ```
続きを読む

[cron]特定の日時だけ除外する

2017年8月30日

cronで10分毎にスクリプトを実行する設定をしているが、諸々の事情で特定の時間だけ除外したい場合は以下のように設定する。 ここでは、午前8時にスクリプトを実行しないように設定している(それ以外の時間では10分毎にスクリプトが実行される)。 ``` */5 0-7,9-23 * * * /hogehoge/scripts/hogehoge.sh > /dev/null ```
続きを読む

[MySQL] スロークエリのログ出力設定

2017年8月25日

mysqlコンソール上から、以下を実行します。 ``` mysql> set global slow_query_log = ON; mysql> set global slow_query_log_file = /var/log/mysql/slow_query.log mysql> show variables like 'slow%'; +---------------------+-------------------------------+ | V
続きを読む

[MySQL] テスト用にスロークエリを生成します

2017年8月23日

テストなどでスロークエリログを収集するために、意図的にスロークエリを生成する必要があります。 その時は、以下のようにしてスロークエリを生成することができます。 ``` mysql> SELECT SLEEP(5); ```
続きを読む

awscliでEC2インスタンスを起動しステータスがrunningになるまで待つ

2017年8月18日

awscliからEC2インスタンスを起動するには`aws ec2 start-instances`コマンドを使用します。 これだけでもインスタンスは起動しますが、起動後ステータスがrunningになるまで多少時間がかかります。 スクリプトなどでEC2を起動した後に、インスタンスからファイルを取得するなど何らかの処理を続けている場合、思わぬエラーになる可能性があります。 ステータスがruninngになるまで待つには`aws ec2 wait instance-ru
続きを読む

[PostgreSQL] 対話形式でパスワードを入力しない

2017年8月16日

スクリプトでpsqlコマンドをワンライナーで実行したい時、PostgreSQLは対話形式でパスワードを聞いてきます。 また、MySQLのように`-p`オプションがありません。 PostgreSQLで対話形式でパスワードを入力しないようにするには、環境変数`PGPASSWORD`を設定します。 ``` $ export PGPASSWORD=hogehoge $ psql -U postgres -c "\encoding" ... ```
続きを読む

[PHP] preg_matchで日本語を使う

2017年8月4日

preg_matchで日本語を使うには、パターン修飾子を正規表現文字列に付加します。 ``` $search_string = '/検索する文字/u'; $target_string = '検索対象になっている文字列'; preg_match($search_string, $target_string); ... ```
続きを読む

[Crowi] MarkdownでかけるオンプレWikiサービス

2017年8月2日

[Crowi](http://site.crowi.wiki/)はMarkdownでWikiがかけるサービスです。 オンプレで構築でき、MongoDBとNode.jsが入っていることが前提条件です。 ``` # インストール $ git clone https://github.com/crowi/crowi.git $ cd crowi $ git checkout v1.6.0 $ sudo npm install # 環境変数設定 $ ex
続きを読む

awscliからSESでメールを送信する

2017年7月28日

send_email関数でメールを送信する。 http://boto3.readthedocs.io/en/latest/reference/services/ses.html ``` # -*- coding: utf-8 -*- import boto3 from boto3.session import Session FROM_ADDRESS = "hoge@example.com" TO_ADDRESS = "huga@example2
続きを読む

[RDS (MySQL)] Super権限操作で出たエラー

2017年7月26日

Amazon RDSを使用してMySQLを構築し、Super権限が必要な処理を実行しようとした所以下のようなエラーがでました。 ``` ERROR 1227 (42000) at line 8: Access denied; you need (at least one of) the SUPER privilege(s) for this operation ``` RDSではSuper権限が付与されたユーザはAWS側が管理用に確保しているrdsadminと
続きを読む

[Nginx] 画像などの静的ファイルのキャッシュ設定

2017年7月19日

jpgやcssなどの静的ファイルをキャッシュするようnginxに設定するにはserverディレクティブに以下のような設定をします。 ``` server { ... location ~ .*\.(html?|jpe?g|gif|pdf|png|css|js|ico|swf|inc) { expires 1d; access_log off; } ... } ```
続きを読む

[git] 強制的にgit pullする

2017年7月18日

リモートリポジトリをpullしたいが、ローカルで適当にした作業が原因でpull出来ない時、 ``` $ git fetch master $ git reset --hard origin/master ```
続きを読む

[PHP] SOAP APIを叩く

2017年7月12日

RESTではなくSOAP APIをスクリプトから叩こうと思い調べました。 Pythonなどではsuds-jurkoといった外部ライブラリが有りましたが開発が終わっているようでした。 PHPを使うとSOAP Clientモジュールを使用して簡単にSOAP APIを叩けました。 ``` # SOAP Clientモジュールが入っていない時 $ yum install php-soap ``` ``` ``` http://php.net/manu
続きを読む

[AmazonLinux] yumでPHP 7.1をインストール

2017年7月11日

amzn-mainリポジトリを明示的にdisableする必要があったり、CentOSにインストールする時と比べると手間がかかります。 ``` yum install http://rpms.famillecollet.com/enterprise/remi-release-6.rpm # 必要なライブラリ群 yum -y install libwebp --disablerepo=amzn-main --enablerepo=epel yum -y inst
続きを読む