SQLでテーブルを大量削除する方法
SQLで_tmp_
を含むテーブルを大量に削除する方法を教えてもらったので、メモする。
echo 'show tables;' | mysql -uroot [db名] | grep '_tmp_' > list for x in `cat list`;do echo "drop table $x;" ;done > drop.sql cat drop.sql cat drop.sql | mysql -uroot [db名]
where句で"OR"を使いたい場合(index)
MySQLで"OR"を用いる時のインデックスがわからない。 結局、UNIONでがっちゃんこするしかなさそう。
mysql> SELECT COUNT(*) FROM table WHERE columnA = value1 OR columnB = value2; +----------+ | COUNT(*) | +----------+ | 1616 | +----------+ 1 row in set (9.92 sec) mysql> SELECT COUNT(*) FROM (SELECT * FROM table WHERE columnA = value1 UNION SELECT * FROM table WHERE columnB = value2) T; +----------+ | COUNT(*) | +----------+ | 1616 | +----------+ 1 row in set (0.17 sec)
git tagのいろいろについて
git tagを使う。
git flow release start rev20170620_1 git flow release finish rev20170620_1 git push --tags git tag premaster_`date +%Y%m%d`_rev1 git tag | grep premaster_ # git tagで見れる。
AWSのサーバにSFTP通信を行う。
インフラエンジニアがよく使うコマンド
インフラエンジニアがよく使うコマンドをまとめたページ。 貼っておいて後読もう。
ps axuww # プロセス確認 free -h # メモリ使用率の確認 df -h # ディスク使用率の確認 df -i # i-node確認 top -d1 # 実行中のプロセス確認 sar # CPU使用率の確認 sar -q # ロードアベレージの確認 sar -r # メモリの確認 sar -S # スワップの確認 sar -b # I/Oの確認 sar -n DEV -s 04:00:00 -e 07:30:00 | grep 'eth0' # ネットワークの確認
grepとかawkとかsortとかuniqueとか(niceも)
アクセスログのファイルに「/content」含まれないばあいにのIPアドレスだけ出力して、 ソートした後に集約して件数出して、その件数でソート(降順)して上位10件を出す。 にたいして、処理が重いので優先順位を下げる。
知らないコマンドとgrepの知らないオプションが使われていたので、メモする。
$ nice -n 19 grep -F '[19/Jun/2017:21:' access_log.20170619 | grep -Fv '/content' | awk -F '"' '{print $8}' | sort | uniq -c | sort -nr | head -10
Linuxコマンド集 - 【 nice 】 優先順位を決めてコマンドを実行する:ITpro
classにタグを埋め込んでクリック数を分析するのはGTMってのでやるらしい。
HTMLのclass属性に何かしら値をいれて、クリック数を計測する方法がある。