日に日に分からんことが増えていく…

プログラマー初心者としての日々を学んでいることを記録していく。

CentOS7とかにPython3.6.1をinstallする方法

この方法だと /usr/local/bin配下にインストールしてくれる。 tecadmin.net https://stackoverflow.com/questions/38913502/how-do-i-install-a-python-package-to-usr-local-bin unix.stackexchange.com

hostnameというよりプロンプトを変える方法(AWS)

bashのプロンプトを変更するには qiita.com

AWSにアカウント追加するときに苦労したこと

AWSに自分のアカウントを追加するときにやったこと。 www.task-notes.com qiita.com

SQLでテーブルを大量削除する方法

SQLで_tmp_を含むテーブルを大量に削除する方法を教えてもらったので、メモする。 echo 'show tables;' | mysql -uroot [table名] | grep '_tmp_' > list for x in `cat list`;do echo "drop table $x;" ;done > drop.sql cat drop.sql cat drop.sql | mysql…

where句で"OR"を使いたい場合(index)

SQL

MySQLで"OR"を用いる時のインデックスがわからない。 結局、UNIONでがっちゃんこするしかなさそう。 mysql> SELECT COUNT(*) FROM table WHERE columnA = value1 OR columnB = value2; +----------+ | COUNT(*) | +----------+ | 1616 | +----------+ 1 row …

git tagのいろいろについて

Git

git tagを使う。 git flow release start rev20170620_1 git flow release finish rev20170620_1 git push --tags git tag | grep rev20170620_1 # git tagで見れる。 qiita.com buchi.hatenablog.com

AWSのサーバにSFTP通信を行う。

AWSのインスタンスのセキュリティグループからどのIPアドレスを弾いているか確認している。 AWSにSFTPで接続するサーバを管理するために見たが、SFTPコマンドって受送信できるんだっけということで確認した。 ちなみに、公開鍵の登録も必要。 webkaru.net セ…

インフラエンジニアがよく使うコマンド

インフラエンジニアがよく使うコマンドをまとめたページ。 貼っておいて後読もう。 qiita.com

grepとかawkとかsortとかuniqueとか(niceも)

アクセスログのファイルに「/content」含まれないばあいにのIPアドレスだけ出力して、 ソートした後に集約して件数出して、その件数でソート(降順)して上位10件を出す。 にたいして、処理が重いので優先順位を下げる。 知らないコマンドとgrepの知らないオ…

classにタグを埋め込んでクリック数を分析するのはGTMってのでやるらしい。

HTMLのclass属性に何かしら値をいれて、クリック数を計測する方法がある。 www.trass.co.jp

行動履歴の取得方法について

行動履歴のログ取得、つまり、アクセスの解析には以下のやり方があるらしい。 ‘'アクセス解析ツールの測定方式は時代とともに変遷してきた。まず、一番古くからあるのが、Webサーバーのログを解析する「サーバーログ取得型」だ。それから、HTMLファイルにJav…

scikit-learnとかいうライブラリ(機械学習)

pythonのSVMにはこれを使うらしい。 qiita.com

データベースのテーブル数算出とAolrグルーピングの仕様について

データベースのテーブル数算出する。 mysql> select count(*) from `information_schema`.`tables` where `table_schema` = 'database名'; +----------+ | count(*) | +----------+ | 34 | +----------+ 1 row in set (0.00 sec) teratail.com また、Solrに…

7zのファイルについて解凍

圧縮ファイルで「… .7z」というものがあった。 macのデフォルトのコマンドでは対応していないので、p7zipをinstallする必要がある。 # ディレクトリの圧縮 $ 7z u -r [ディレクトリ名].7z [ディレクトリ名] # 解凍 $ 7z x [ファイル名].7z yuyunko.hatenablo…

SFTPサーバに接続

sftpで実行するためには以下のようにする。 $ sftp -P port user@domain ## historyの時間確認 $ export HISTTIMEFORMAT='%F %T ' $ history | less ## lsコマンドで時間確認 $ ls -alt

git flowでdevelopが更新されていた場合の処理

Git

一旦featureをpushしてdevelopにマージさせる。 $ git checkout feature/[name] $ git push $ git checkout develop $ git diff $ git diff origin/develop $ git pull $ git merge origin/feature/[name] $ git checkout feature/[name] ## git pullする前…

踏み台サーバなどを用いて、多段階接続をするとき(ssh -W)

Proxycommandをssh configに登録して、 ssh -Wから対応することができる。 dev.classmethod.jp

svnのあれこれをvimの折りたたみ解除

svnをgitでいうpushする時、svnはcommitで完了する。 $ svn add [ファイル名] $ svn commit -m "[コミット文言]" svnでgit pull的な挙動は、 $ svn stat # fileみてMや!などの表記がある。 # ファイルを変更前に戻す。 $ svn revert [ファイル名] # git pull…

Python3とsystemd-tmpfiles.dの便利なサイト

Python3ではsendとthrowについてわからなかったので参考にしたサイト。 iteratorについてはこんな使い方があるのかと感動した。 あと、systemd-tmpfiles.dにて /tmp/ or /var/の定期的削除に関して、 systemd-tmpfiles-clean.serviceで削除をしている。その…

ファイルが置かれた瞬間にimport開始する

課題 (1) ファイルが置かれた瞬間にimport開始する(今回は空処理)仕組みの作成 /var/data/xxx.logみたいな場所に元ファイルが複数存在する。 db_importerバッチが、複数同時動作しても大丈夫なように(同じ元ファイルを重複してimportしないように)する。…

サブバージョンのgit clone的なやつ

以下でなんのブランチ舞があるか確認できる。大概trunk、branches、tagだけ。 $ svn ls svn+ssh://svnserve@[ドメイン名など]/ $ svn checkout svn+ssh://svnserve@[ドメイン名など]/branches/ . 以下で変更点が確認できる。 $ svn log [file名] $ svn diff …

Gitの変更履歴確認(ファイル指定)

Git

以下のコマンドでGitの変更履歴(ファイル指定ができる) git log -p [file名] 行指定する場合は以下。。 git log -L start,finish:[file名] qiita.com

Djangoのソースを見るにはGithubを確認

githubのコードを確認すればいい。 github.com

WebアクセスSQL挿入について考える(課題)。

(1) webページへのアクセスを、mysqlに保存するとしたら、どんなcreate tableにするか。 principal的なのものはcookie、対象はurl、あとはアクセス時間が、このドメインで必要な情報 アクセステーブルには、この3つの情報とテーブルへのinsert日時を保存。あ…

サイトマップについて

WebサイトをGoogleにうまく検索結果として出力させるために、 サイトマップを作る必要がある。 サイトマップにはHTMLサイトマップとxmlサイトマップがあって、 前者は人用で後者はロボット(crawl)用なのかな。。知らんけど。 良さげな記事があったので、メ…

マルチインデックスという考え方

SQL

MySQLで大量データに対してクエリを投げる時、WHERE配下のカラム名にマルチインデックスを適応すればサクサクいく。 これ関してはEXPLAIN句で確認すればいい。 mysql> ALTER TABLE landing_pages ADD INDEX index_name(user_id, created) qiita.com phpjavas…

Gitで戻したい時

Git

Gitのmasterにマージしたいけど戻したい時、 $ git revert --hard HEAD $ git diff HEAD..HEAD^ とすると、一個まえに戻る。ちなみにHEAD^の帽子の数だけ前に戻っていく。

処理中のプロセスをバックグラウンドで回す

「Ctr + z」で一時停止をし、jobsで確認し、bg %~で対応する。 $ zcat db.sql.gz | mysql -u root db ^Z [1]+ 停止 zcat db.sql.gz | mysql -u root db $ jobs [1]+ 停止 zcat db.sql.gz | mysql -u root db $ bg %1 [1]+ zcat db.sql.gz | mysql -u root db…

Solrの最終更新日時の確認

これだけ。。admincommandは覚える必要がある。 $ curl 'http://localhost:8983/solr/admin/cores?action=STATUS&core=[core名]&indent=on'

PackerとAnsibleはめちゃ便利

dev.classmethod.jp

BOLB/TEXTでインデックスを貼る。

SQL

最初の100文字のみインデックスとして使うみたいな指定が必要。 ERROR 1170 (42000): BLOB/TEXT column 'text_field' used in key specification without a key length create index new_index on table_name(text_field(100)); www.deftrash.com

Solrのelevate.xmlを確認する方法

elevate.xmlへの変更をtsvに出力。 import xml.etree.ElementTree as ETにて処理。 最初urllib2でとってきていたが、socketのエラーとかでデータが飛ぶので、requestsに変更。正規表現とかも意外に苦労した。 # -*- coding: utf-8 -*- # vim:tabstop=4:shift…

Excelをpythonで操作めちゃ便利(unicodeに変換してくれる)

以下のように使えて、めちゃ便利。 ただし、cell(0, 0) がexcelのA1に対応しており、そこの注意のみ必要。 import csvのようにunicode変換に悩むこともない。 import xlrd book = xlrd.open_workbook('test.xls') print book.name sheet1 = book.sheet_by_in…

MySQL5.6から5.7に変更する際に起こったエラーについて

vagrantsで今までMySQL5.6を使ってたが、速度が3倍になるということで5.7に変更。 はじめ以下の手順で確かめていた。うまくインストールできない。 # エラーの出る手順 [root # ] yum remove mariadb-libs [root # ] rm -rf /var/lib/mysql/ [root # ] yum l…

MYSQLを勉強するときに便利なサイト

SQL

www.dbonline.jp

SFTPのみ接続可。sshでのシェルは排除。

設定は以下のようにする。 # groupadd sftp_users # usermod -G sftp_users mokyu # vi /etc/ssh/sshd_config 147行目コメント化にしてその下に追記します # override default of no subsystems #Subsystem sftp /usr/libexec/openssh/sftp-server Subsystem…

vimの文字列置換

:%s/置換前文字列/置換後文字列/gc すると一つずつチェックしてくれる。 www.ksknet.net

references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use themが出た

SQL

このメッセージが出た場合は最初のcreatetableの際に変な設定が入っていることがある。 具体的に言うと後で全部の権限をuserに付与しても中のテーブルは特定のユーザしか見れなくなっている。 dumpしてloadした後にこのようなメッセージが出れば、以下の動作…

ミドルウェアとは何か

ミドルウェアって何って思って検索した。DBサーバとして動かすときに使うMySQLや Webサーバとして使うapacheなどらしい。 qiita.com

Apacheのアクセス制限について

そもそもアクセス制限について、Apacheの制御もしくはファイヤーウォールなどの外部機器での制御(iptable)がある。 ファイヤーウォールはインフラに含まれるんだなあと思いました。 mod_authz_core - Apache HTTP Server Version 2.4

tupleプルプル

tupleは一旦作成すると、値を変更できないけど、 "%s, %s" % tuple("hoge", "koge") のようについ変えられる。 追加で、ディレクトリを再帰的に取得するには下のようにすればいい。便利 $ grep -r 検索文字列 ディレクトリ tigawa.github.io

Mysqlのデータを変更する(MySQL-python==1.2.5)

データベースのqueryを整形する。データベースに突っ込む前に"をつけるのが必要なのとないのがあって訳わからん。 ついでにutf-8に変換しないといけないのと、conn.commit()しないとinsertが反映されないということでばりつまづいた。 # -*- coding: utf-8 -…

Webの反応を理解する(REQUEST_METHOD)。

GETやPOST以外にもHEAD、PUTなどのリスエストメソッドが存在する。 以下のstackoverflowで知った。 stackoverflow.com HTTP入門

SQLとSolrの情報を削除する方法

簡単な処理をバッチ化した。MySQLにアクセスする方法がわかったことが大きな収穫。 # -*- coding: utf-8 -*- # vim:tabstop=4:shiftwidth=4:expandtab import sys import MySQLdb import json import urllib2 import argparse from datetime import datetime…

Apacheのアクセスログはこんな感じでコマンドから調べられる。

切り取ってしまえば、調べが簡単 $ cut -d " " -f 1-8 access_log | grep "google" | grep -ve "10.0.0.1" -vEe "10\.0\.0\.(4[8-9]|5[0-9]|6[0-3])" | wc -l ossfan.net orangain.hatenablog.com ksmzn.hatenablog.com +α帯域制限をかけながらscpなどは行っ…

リストから重複した要素を削除したい

リストの中のリストの一部が重複した場合の処理 datas = [['111111', ], ['111111', ], ] seen = set() seen_add = seen.add datas = [x for x in datas if x[0] not in seen and not seen_add(x[0])] print datas # [['111111']] www.lifewithpython.com

日本語のcsvを取り扱う際便利(python2)

csvのunicode変換は手間取るけど、良さげな変換をクラスにしてまとめている人がいたので拝借した。 import csv import sys import tempfile import shutil import os calendar_dict = { "January": "1", "February": "2", "March": "3", "April": "4", "May"…

インデックスを理解する。

SQL

MySQLはインデックスを使うとうまくチューニングできるらしい。 なんかいいサイトないかと探していると発見。 qiita.com リンク先に一つずつアクセスして行って、学んでいこうとしてる。

ApacheでYou don't have permission to access / on this serverが出た。

要は権限の問題。作業ディレクトリに権限を渡してあげればいい。 akiniwa.hatenablog.jp

mysqldump: [Warning] unknown variable 'loose-local-infile=1'について

SQL

以下のERROR、、ではなくてWarningが出たので、対処した。 mysqldump: [Warning] unknown variable 'loose-local-infile=1' 以下のサイトを読むと、これは[Error] unknown variableを出さないための裏技っぽい。 んなこと知らんがな。どうなっとんじゃ。 gih…