Yuya Sato のアーカイブ

WordPressの.htaccessを編集する

2017年2月24日

WordPressでは、パーマリンクなどの設定をWordPress管理画面上から行うと.htaccessを自動で書き換えます。 管理者が独自の設定を.htaccessに行いたい場合、この自動書き換えにより独自に設定した項目が上書きされてしまうため、設定を工夫する必要があります。 ``` # BEGIN WordPress RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] Rewri
続きを読む

boto3を使いdynamoDBに上書きさせずにデータを保存

2017年2月22日

boto3を用いてDynamoDBにデータを保存させる時、put_item()関数を使用すると既存のデータが存在した場合上書きを行ってしまう。 ``` # {key: "hoge", value: "hoge"}がすでにDynamoDB上に存在 table.put_item( Item={ 'key': "hoge", 'value': "piyo" } ) # 上を実行すると既存のデータが{key: "h
続きを読む

特定の行から特定の行までを抽出する

2017年2月15日

テキストファイルを操作する場合や複数行の文字列を操作する時、awkコマンドを用いることである特定の文字列が含まれる行から別の特定の文字列が含まれる行までを抽出することができます。 例えば、BEGINが含まれる行からENDが含まれる行までを抽出したいときは、以下のようにします。 ``` $ cat hogehoge.txt | awk '/BEGIN/,/END/' ```
続きを読む

tmux

2017年2月10日

ssh越しにサーバで作業をする時、複数の作業を行いたかったり何個かウィンドウを表示してコードを片方に出しておき作業したかったりする場合があります。 この場合ターミナルを複数立ち上げて都度sshアクセスする必要がありますが、tmuxを使用すると一つのsshアクセスでウィンドウを複数立ち上げることが出来ます。 http://qiita.com/vintersnow/items/be4b29652ff665c45198
続きを読む

PowerShellでdiffもどき

2017年2月3日

Linuxでは2つのファイルの差分を見たい時にdiffを使用しますが、windowsのPowerShellではdiffがありません。 そこで、Get-ContentとCompare-Objectを使ってdiffもどきをします。 ``` > $A = Get-Content > $B = Get-Content > Compare-Object $A $B ```
続きを読む

[Linux]タイムゾーンの変更

2017年2月1日

AWS EC2などでインスタンスを立ち上げると、デフォルトで時刻がUTCになっている場合があります。 そこで、UTCで設定されている時刻をJSTに合わせます。 ### タイムゾーンファイルの変更 ``` $ ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime ``` ### 再起動対応 上の設定だけだとサーバを再起動後に時刻が再びUTCに戻ってしまうので、/etc/sysconfig/cloc
続きを読む

NTPで時刻同期

2017年2月1日

AWS EC2などのクラウドでは初期状態で時刻同期ができていますが、自前で構築した場合にはntpをインストールして時刻同期を設定する必要があります。 ### NTPのインストール ``` yum install ntp ``` ### NTPの設定 /etc/ntp.confの設定をします。 ``` server 0.centos.pool.ntp.org server 1.centos.pool.ntp.org server 2.
続きを読む

HAProxyでmysql負荷分散

2017年1月27日

master, slave構成のMySQLをHAProxyで負荷分散します。 WEBサーバにHAProxyをインストールし、別に運用しているmasterDBサーバ1(node1)、slaveDBサーバ2(node2)を負荷分散します。 インストール ``` $ yum install haproxy ``` 設定ファイルを編集(/etc/haproxy/haproxy.cfg) ``` #----------------------
続きを読む

AWSでmulticast

2017年1月25日

AWSのEC2-VPCでは不要な通信トラフィックを抑えるためにマルチキャスト/ブロードキャストが禁止されています。 keepalivedなどのmulticastを必要とするソフトでは特殊な設定が必要になります。 https://moomindani.wordpress.com/2014/07/08/ec2-vpc_multicast_broadcast_1/
続きを読む

【MySQL】 テーブル・カラム毎に権限を変更する

2016年12月28日

MySQLにおいて、特定のユーザに対して * usersテーブルには読み込みだけ(select) * postsテーブルには読み書き両方(select, insert, update, delete) と言った風にテーブル毎に権限を変更したい場合は、 ``` GRANT 権限 ON db_name.table_name TO user; ``` のようにして権限を変更することができます。 具体的には、 ``` mysql> GR
続きを読む

sendmailバージョン確認

2016年12月21日

sendmailのバージョンは「-v」や「--version」オプションではなく以下によって確認します。 ``` $ /usr/sbin/sendmail -d0.101 ```
続きを読む

RemoteDesktopでローカルのファイルを共有する

2016年12月16日

Microsoft Remote Desktopを使用してWindowsマシンを操作している時にローカルマシンにあるファイルを送信したい時があります。 FTPなどには専用のソフトをインストールする必要があるので、Remote Desktopの機能を使用してローカルのファイルをWindowsに共有します。 設定したいDesktopの項目を右クリックし「編集」を選択。 「Redirection」の項目で、共有したいファイル・ディレクトリを追加します。 [リモー
続きを読む

PowerShellでcurlもどき

2016年12月16日

LinuxではCLI上でWebリクエストを送信したい時にcurlを使用しますが、windowsのPowerShellではcurlがありません。 そこで、PowerShell上でInvoke-RestMethodを使用しcurlもどきをして、Webリクエストを送信します。 ``` GETリクエストを送信 C:¥> Invoke-RestMethod -Uri "http://hogehoge.com" -Method GET POSTリクエストを送信 C
続きを読む

PowerShellでtelnetもどき

2016年12月14日

Linuxではサーバのポートが開いているか確認する時にtelnetを使用しますが、windowsのPowerShellではtelnetがありません。 そこで、PowerShell上でtelnetもどきをして、ポートが開いているか確認します。 ``` TCPクライアントオブジェクトを生成 C:¥> $tc = New-Object System.Net.Sockets.TcpClient 確認したいサーバに接続 C:¥> $tc.connect("1
続きを読む

htopコマンド

2016年12月9日

Linux環境上でCPU使用率などを確認する時にはtopコマンドを使用しますが、htopコマンドの方が見やすく、様々な設定も可能です。 ``` yum install htop (epelリポジトリを有効にする必要あり) ``` htopコマンドではCPU使用率やMem使用率などがグラフ上で表示されます。 また、F2キーを押して表示させる内容を好みの設定にすることができます。 [参考文献](https://orebibou.com/2016/05/
続きを読む

大量ファイルの転送

2016年11月30日

大量のファイルをリモートに転送する時に普通にscpなどで転送すると時間がかかります。 そこで一旦tarに圧縮して転送という方法も考えられますが、今度はtarの圧縮に時間がかかってしまいます。 リモートに直接ファイルを書き込み、リモートで展開するようにすると、無駄なI/Oを削減できます。 ``` $ tar -zc [path] | ssh remote-server "tar -zx -C [destination]" ```
続きを読む

knife soloで「Cannot find sub command for ‘solo’」というエラー

2016年11月9日

原因として2つのknifeコマンドが共存している状態にあるため、knifeからsoloサブコマンドが見えなくなってしまっているためエラーが発生します。 解決策として、 ``` sudo /opt/chef/embedded/bin/gem install knife-solo ``` などとして、soloが見えていない方にknife-soloをインストールすると解決します。
続きを読む

Webアクセス解析ツール3タイプ

2016年11月2日

Webサイトなどのアクセス解析をするツールは主に3つのタイプに分けることができます。 ### サーバログ取得型 サーバログ取得型は、apacheのアクセスログなどのログファイルに記録されたものからアクセス数や日時を解析するタイプです。 AWStatsやvisitorsなどといった解析ツールがこれに当たります。 ### Webビーコン型 Webビーコン型は、htmlに記述されたJavascriptのタグが動作することによってアクセスデータを解析
続きを読む

【PHP】パスワード付きzipファイルの生成

2016年10月26日

通常PHPでzipファイルを作成するときには以下のようにしてZipArchiveクラスを使用して作成すると思います。 ``` $zip = new ZipArchive(); $res = $zip->open('./zip/hoge.zip', ZipArchive::CREATE); if ($res === true) { $zip->addFile('hoge.png'); $zip->addFile('hoge.jpg');
続きを読む

mysql冗長化

2016年10月12日

mysqlをマスター・スレイブ構成にして冗長化を図るときには以下のような設定を行います。 ### マスター側の設定 /etc/my.cnfに以下を追加し再起動 ``` server-id = 1 log-bin = /var/lib/mysql/mysql-bin ``` レプリケーション用のユーザを作成し、replication slave権限を追加 ``` CREATE USER 'repl'@'(スレーブのIP)' IDENTIFI
続きを読む