Yuya Sato のアーカイブ

[Python] マルチプロセス処理

2017年3月22日

Pythonでマルチプロセス処理を行うときはmultiprocessingモジュールを使用する。 ``` from multiprocessing import Process def childProcess(data): print "Hello, " + data if __name__ == '__main__': datas = ["Rick", "Carl", "Daryl"] jobs = []
続きを読む

[PHP] 歯抜けの配列のインデックスを連番にする

2017年3月22日

PHPでarray_diff()関数などを使用していると返り値の配列が歯抜けの場合がある。 このような配列は、array_merge()関数で連番のインデックスに直すことができる。 ``` 出力結果: array(3) { [0]=> string(4) "Rick" [1]=> string(4) "carl" [2]=> string(5) "daryl" } ```
続きを読む

[Python] print出力先の変更

2017年3月15日

Pythonのprint文は通常標準出力に出力されますが、これをファイルに変更します。 ``` f = open("hoge.txt", 'w') print >> f, "hogehoge to file" f.close() ```
続きを読む

VimでEscを使わない

2017年3月8日

vimを操作する時、インサートモードからノーマルモードに遷移する際にはEscキーを使用しますが、キーボードに置いている手の位置を大きく動かさないといけないのでなにかと億劫です。 vimではデフォルトでEscの代わりに以下のコマンドでノーマルモードに遷移することが出来ます。 ``` ## インサートモードの時に Ctrl + [ ```
続きを読む

SNSでメールを送信

2017年3月3日

Lambdaなどで処理を実行した後に簡易的にSNSメールを用いて通知を行う場合が多々あるので、 テンプレート用に作りました。 ``` import boto3 def send_mail(region_name, topic_arn, subject, message): sns = boto3.resource('sns', region_name) try: response = sns.Topic(t
続きを読む

Nginxでリバースプロキシを構築する

2017年3月1日

Apacheで動かしているWEBサイトの上にNginxをリバースプロキシとして動作させます。 さらに、リクエストURLをrewrite機能を使って書き換えます。 ### Nginxの設定 `upstream`にApacheで動作しているWEBサーバを指定します。Apacheはポート81で動作しているものとします。 また、`proxy_set_header...`の項目はApacheのログの設定をしています。Nginxをプロキシにしているので、この設定をしな
続きを読む

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
続きを読む